FORTRAN自启动MPI计划

时间:2013-01-08 12:58:13

标签: ssh fortran cluster-computing mpi

有没有办法在FORTRAN程序中调用mprirun?我正在通过ssh处理公共linux集群,主要思想是在程序执行结束后自动将程序入队。

我试着在程序结束时写这样的东西:

CALL system('mpirun -np 16 -maxtime 100 TestNP')

但收到了这个错误:

sh: mpirun: command not found

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题是缺少路径前缀,因此指定mpirun的绝对路径应该会有所帮助。但是,您的方法存在一些问题:

  • 如果每个MPI进程都执行它,您将运行太多实例,因此只有一个节点(例如主节点)应该执行它。

  • 原始程序将无法完成,直到通过system()调用调用的程序未完成。因此,如果您的队列受到时钟限制,那么您根本无法获得任何收益。

通常,这样的任务是通过shell脚本完成的。例如。在Bash你会写一些类似的东西:

while true; do
  mpirun your_program
done

这将继续重新调用mpirun直到没有被你或排队系统杀死。 (所以要小心吧!)