使用 MPI 停止的正确方法

发布于 2024-10-08 04:39:38 字数 169 浏览 0 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天赋异禀 2024-10-15 04:39:39

在灾难性错误情况下,通常的退出方法是调用 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 an MPI_Finalize.

过气美图社 2024-10-15 04:39:39

看一下 MPI_Abort

MPI_ABORT 的行为
(通讯,错误代码),对于 MPI_COMM_WORLD 之外的通讯,
是依赖于实现的。另一方面,呼吁
MPI_ABORT(MPI_COMM_WORLD, errorcode) 应该始终导致所有
MPI_COMM_WORLD 组中的进程要中止

Take a look at MPI_Abort:

The behavior of MPI_ABORT
(comm, errorcode),for comm other then MPI_COMM_WORLD,
is implementation-dependent. One the other hand, a call to
MPI_ABORT(MPI_COMM_WORLD, errorcode) should always cause all
processes in the group of MPI_COMM_WORLD to abort
.

情深缘浅 2024-10-15 04:39:39

在 NERSC 超级计算机上进行测试,我发现

call MPI_FINALIZE(ierr)
stop

无法停止整个程序。以下作品:

 call MPI_Abort(MPI_COMM_WORLD, errcode, ierr)
 stop

Testing this on NERSC supercomupters, I found that

call MPI_FINALIZE(ierr)
stop

can not stop the whole program. The following works:

 call MPI_Abort(MPI_COMM_WORLD, errcode, ierr)
 stop
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文