我有一个 MPI 程序(Fortran,MPICH),我需要将它转换成一个脚本,然后启动它自己的 MPI 程序(使用mpirun
)。到目前为止,我已经将 shell out ( system
) 命令封装在一个if(system_num .eq. root_system_num)
东西中,因此只有一个 MPI 进程运行该脚本。但是,这会导致一系列HYDU_create_process
错误。
我考虑过使用MPI_Comm_spawn
,但有类似“MPI 没有说明如果您启动的程序是一个 shell 脚本并且那个 shell 脚本启动一个调用的程序会发生什么”的警告MPI_INIT
,所以这似乎也不理想。
几点:
- shell脚本中调用的程序根本不需要与调用程序交互。调用程序只需要等到该过程完成。
- 没有一种简单的方法可以将 shell 脚本转换为单独的可执行文件(大量的环境变量设置等)。
- 理想情况下,这应该适用于 MPICH 和Open MPI。
有没有办法做到这一点?