Fortran mpi 运行时错误

Fortran mpi runtime error

我正在尝试了解使用 MPI 从 Fortran 代码写入并行数据。我从 here.

找到了一个简单的程序

我使用 MPI 编译器编译并 运行 程序并得到以下错误:

sathish@HP-EliteBook:~/Desktop$ mpif90 test.F90 -o test
sathish@HP-EliteBook:~/Desktop$ mpirun -np 4 test
-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.
-------------------------------------------------------

我在其他论坛上看到类似的问题,提到这是由于错误的 mpi 安装位置等。以下是建议使用 LD_PRELOAD 的解决方案之一:

sathish@HP-EliteBook:~/Desktop$ mpirun -x LD_PRELOAD=libmpi.so -np 4 test
-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.
-------------------------------------------------------

问题仍然存在。我想不出这么简单的程序出了什么问题。

简答: 运行 作为

mpirun -np 4 ./test

而不是:

mpirun -np 4 test

详情: 这是当您的工作目录不在您的路径中时发生的常见问题。简单的解决方案是将完整路径添加到可执行文件。另一种选择可能是将当前目录添加到 path 变量中。但是,在这种情况下,即使将当前目录添加到路径中,顺序也很重要。 Linux 系统(这似乎是你的情况)通常带有一个名为 test 的程序,默认情况下通常在 path 中。

发生的事情是你没有直接启动 mpi 程序,而是启动 mpirun 来启动 mpi 机器,然后启动你的程序来使用该机器. mpirun 必须找到您的程序。还有我上面建议的两个选项:可执行文件的完整路径或将目录添加到搜索 path.