【问题标题】:Does MPI blocking call (MPI_Send/Recv) have a time limit?MPI 阻塞调用 (MPI_Send/Recv) 有时间限制吗?
【发布时间】:2011-11-17 14:09:52
【问题描述】:

我正在我的大学集群上提交 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 秒)然后导致异常。或者,计算机可能内存不足。当我的本地机器内存不足时,我会收到非常详细的内存不足警告,但我不知道远程机器上发生了什么。任何想法这可能意味着什么?

【问题讨论】:

    标签: mpi blocking


    【解决方案1】:

    绝对不是超时。 MPI 例程没有这样的例外。如果您的集群具有不同的 MPI 库(或使用不同编译器编译的相同 MPI 库)或启动机制,请尝试一下。这可能是库的问题(或您的程序中的错误)。

    【讨论】:

    • 那么在这种情况下可能是内存问题。
    • 很有可能,尝试使用符号编译,使用 ulimit -c unlimited 运行,看看它是否会转储内核。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多