0

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

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

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

但收到此错误:

sh: mpirun: command not found

有任何想法吗 ?

4

1 回答 1

2

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

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

  • 原始程序不会完成,直到通过 system() 调用调用的程序没有完成。因此,如果您的队列受挂钟限制,您将一无所获。

通常,像这样的任务是通过 shell 脚本完成的。例如,在 Bash 中,您会编写如下内容:

while true; do
  mpirun your_program
done

这将不断地重新调用 mpirun 直到未被您或排队系统杀死。(所以要小心!)

于 2013-01-09T12:12:52.020 回答