我正在我的大学集群上提交MPI工作。对于较大的程序,我注意到在我的最后一个通信例程中,我的程序崩溃时几乎没有任何有用的错误消息。
mpirun noticed that process rank 0 with PID 5466 on node red0005 exited on signal 9 (Killed).
唯一有用的是排名0导致问题。由于此最终通信例程的工作方式如下(其中<-->
表示MPI_Send/Recv
)
rank 0 rank 1 rank 2 rank 3 ... rank n
| <--> <--> <--> <-->
|
|
|
|
|
|
|
V
----------------------MPI_Barrier()------------------
我的猜测是等级0命中MPI_Barrier()
等待很长时间(570-1200秒)然后导致异常。或者,计算机可能会耗尽内存。当我的本地机器内存不足时,我得到一个非常详细的内存不足警告,但我不知道远程机器上发生了什么。任何想法可能意味着什么?
答案 0 :(得分:2)
绝对不是暂停。 MPI例程没有这样的例外。如果您的集群具有不同的MPI库(或使用不同编译器编译的相同MPI库)或启动机制,请尝试一下。它可能是库的问题(或程序中的错误)。