使用 MPI 停止的正确方法
我正在使用 MPI,并且在某些时候想要使用 STOP(或其他方法)来退出程序并显示错误消息。
现在,我正在做这样的事情:
STOP 'Error'
但我有一种感觉我做错了什么。我需要先调用 MPI_FINALIZE 吗?还有其他事情要做吗?
I'm using MPI, and at some points want to use STOP (or another method), to exit the program with an error message.
Right now, I'm doing something like this:
STOP 'Error'
But I have a feeling I'm doing something wrong. Do I need to call MPI_FINALIZE first? Is there something else to be doing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在灾难性错误情况下,通常的退出方法是
调用 MPI_Abort(MPI_COMM_WORLD, errcode, ierr)
。在大多数实现中,这将杀死所有任务。在不太严重的情况下,您可以确保所有任务都知道该情况,然后使用MPI_Finalize
让它们都更加优雅地激发。In a catastrophic error condition, the usual way to exit is
call MPI_Abort(MPI_COMM_WORLD, errcode, ierr)
. In most implementations, this will kill all tasks. In less drastic situations you could make sure all the tasks know of the condition and then have them all excit more gracefully with anMPI_Finalize
.看一下 MPI_Abort:
Take a look at MPI_Abort:
在 NERSC 超级计算机上进行测试,我发现
无法停止整个程序。以下作品:
Testing this on NERSC supercomupters, I found that
can not stop the whole program. The following works: