mpi4py 查明分段错误期间的错误排名

mpi4py pinpointing the erroneous rank during segmentation fault

我的问题与任何具体代码无关。相反,它是通用的。我目前 运行 在 Python 中使用 MPI 并行化代码,我偶尔会遇到分段错误。每当发生段错误时,我都会收到一条错误消息(如下所示)并且代码退出 -

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 173577 RUNNING AT whatever_node
=   EXIT CODE: 139
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================

我的问题是 - 如何查明导致此错误的等级?退出消息仅提及 PID。我可以用它来找出错误的排名吗?

PS : 上述代码不是我自己的 - 我只是 运行 它并报告错误。

或许您可以在您的代码中添加一个像这样的简单打印:

import os
print("Rank %d on %s, Process PID for worker = %d" %(MPI.COMM_WORLD.Get_rank(),MPI.Get_processor_name(),os.getpid()))