如何在bash中检查mpi代码是否成功?

时间:2019-07-13 05:57:24

标签: bash mpi

我要自动检查很多可执行文件是否在bash中运行成功。

假设我有一个可执行文件a.out

我可以通过bash检查它是否成功

./a.out
if [ "$?" -ne "0" ]; then
    echo "code error!"
fi

如果可执行文件由mpi运行

mpirun -np 4 ./a.out // run the code by 4 processes

我无法以上述相同方式检查可执行文件是否正常。因为在这种情况下,$?指示mpirun成功与否。

那么如何在bash中检查mpi代码是否成功?

谢谢。

1 个答案:

答案 0 :(得分:2)

一个编写良好的MPI程序应  -成功后:请所有任务调用MPI_Finalize()并结束exit(0)  -失败:调用MPI_Abort()并以非零错误代码结束exit(rc)(请注意,即使{{1} }永远不会被调用。

然后由MPI库决定,MPI_Abort()退出时成功状态为零错误,失败时状态为非零错误。

最重要的是,如果exit()写得很好,那么它是否为MPI应用程序也没关系。

相关问题