使用MPI正确停止的方法

Ric*_*lor 6 fortran mpi

我正在使用MPI,并且在某些时候想要使用STOP(或其他方法),以退出程序并显示错误消息.

现在,我正在做这样的事情:

STOP 'Error'
Run Code Online (Sandbox Code Playgroud)

但我有一种感觉,我做错了什么.我需要先调用MPI_FINALIZE吗?还有其他事情要做吗?

Jon*_*rsi 9

在灾难性的错误情况下,通常的退出方式是call MPI_Abort(MPI_COMM_WORLD, errcode, ierr).在大多数实现中,这将终止所有任务.在不那么激烈的情况下,你可以确保所有的任务都知道了这个状况,然后用一个优雅的方式让他们更加优雅MPI_Finalize.


sus*_*att 6

看看MPI_Abort:

对于除MPI_COMM_WORLD以外的comm的MPI_ABORT(comm,errorcode)的行为是依赖于实现的.另一方面,对MPI_ABORT(MPI_COMM_WORLD,错误代码)的调用应始终导致MPI_COMM_WORLD组中的所有进程中止.