Is there any way to call mprirun inside FORTRAN program? I’m working on public linux cluster via ssh and the main idea is to automatically enqueue program after its execution is over.
I tried to write something like this at the end of the program:
CALL system('mpirun -np 16 -maxtime 100 TestNP')
But recieved this error:
sh: mpirun: command not found
Any ideas ?
The problem is the missing path prefix, so specifying an absolute path for mpirun should help. However there are several problems with your approach:
If every MPI process executes it, you would have too many instances running, so only one of the nodes (e.g. the master node) should execute it.
The original program won’t be finished, until the one called via the system() call did not finish. So, if your queue is wall-clock limited, you don’t gain anything at all.
Typically, tasks like this are done via shell-scripts. E.g. in Bash you would write something like:
This would re-invoke mpirun continuously until not killed by you or the queuing system. (So be careful with it!)