我要自动检查很多可执行文件是否在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代码是否成功?
谢谢。
答案 0 :(得分:2)
一个编写良好的MPI程序应
-成功后:请所有任务调用MPI_Finalize()
并结束exit(0)
-失败:调用MPI_Abort()
并以非零错误代码结束exit(rc)
(请注意,即使{{1} }永远不会被调用。
然后由MPI库决定,MPI_Abort()
退出时成功状态为零错误,失败时状态为非零错误。
最重要的是,如果exit()
写得很好,那么它是否为MPI应用程序也没关系。