小编cfr*_*ied的帖子

“mpirun”调用的 Bash 脚本调用另一个 MPI 可执行文件并崩溃,退出代码为 13

我有两个可执行文件:prog1prog2.

这些可执行文件读取输入数据,然后对其进行一些计算。根据输入数据的“类型”,必须使用prog1或。prog2

我想为只需要调用 的用户简化这一点prog,这是一个 shell 脚本,

  1. 检查数据(通过运行prog1),
  2. 运行prog1prog2exec.

对于串行程序(无 MPI),这种方法效果很好。对于 MPI,我想prog使用mpirun -n 2 prog. 然后,两个进程调用 shell 脚本。如果步骤 (1) 涉及运行另一个 MPI 可执行文件,则此操作会失败。

一个简单的解决方案是编译prog1(用于步骤 1)的串行版本并使用此版本。然而,如果我可以使用已有的 MPI 可执行文件,那么对我来说会简单得多。

下面,我给出一个非常简单的测试用例。


我在互联网上发现了类似的问题,但没有一个真正对我有帮助。

最接近的一个来自英特尔论坛: https://software.intel.com/en-us/forums/intel-clusters-and-hpc-technology/topic/754976 (不幸的是没有回复)

这是一个最小的 MPI 程序 ( run.f90):

program run

use mpi

implicit none

integer::num_process,rank,ierr;

call MPI_Init(ierr);
call MPI_Comm_rank(MPI_COMM_WORLD, rank,ierr);
call MPI_Comm_size(MPI_COMM_WORLD, num_process,ierr);

write(*,*) 'I am',rank

call MPI_Finalize(ierr);

end …
Run Code Online (Sandbox Code Playgroud)

mpi exit-code sh

5
推荐指数
0
解决办法
706
查看次数

标签 统计

exit-code ×1

mpi ×1

sh ×1