【问题标题】:MPI run error "caused collective abort of all ranks"MPI 运行错误“导致所有级别的集体中止”
【发布时间】:2012-12-13 06:30:36
【问题描述】:

我正在尝试在 C 中使用 MPI 编写并行程序。但是,当我运行我的程序时,我收到该消息并且我的程序被终止。我不知道该错误消息的原因

警告:无法读取 mpd.hosts 或未提供主机列表。 MPI 作业将仅在当前机器上运行。

解决方案开始

作业 1 server_name_60409 中的 7 级导致所有等级集体中止 7级退出状态:返回码0

job 1 server_name_60409 中的rank 6 导致所有rank 集体中止 等级6的退出状态:返回码0

job 1 server_name_60409 中的rank 4 导致所有rank 集体中止 rank 4的退出状态:被信号9杀死

job 1 server_name_60409 中的rank 3 导致所有rank 集体中止 rank 3的退出状态:被信号9杀死

job 1 server_name_60409 中的rank 2 导致所有rank 集体中止 rank 2的退出状态:返回码0

job 1 server_name_60409 中的rank 0 导致所有rank 集体中止 rank 0的退出状态:返回码0

【问题讨论】:

  • 假设您正在运行 Unix,信号 9 是 SIGKILL。它通常由无效的内存访问触发(例如,尝试读取/写入/释放它不拥有的内存的错误代码)。但是,在没有看到您的代码的情况下,我们无法告诉您更多信息。
  • @suszterpatt,无效的内存访问触发 SIGSEGV(信号 11),而不是 SIGKILL
  • 由于所有进程都在同一个节点上运行,您可能会耗尽内存或达到 CPU 时间限制。如果任何 rank 异常死亡(例如,由于 CPU 或内存限制受到影响),MPI 启动器将通过向剩余的 rank 发送信号来终止剩余的 rank,通常是SIGKILL (9)。

标签: c mpi


【解决方案1】:

我的程序因类似的通信而中止:

rank 3 in job 58409  vnode-01_39157   caused collective abort of all ranks
  exit status of rank 3: killed by signal 9 
rank 1 in job 58409  vnode-01_39157   caused collective abort of all ranks
  exit status of rank 1: killed by signal 11 

由于分配的堆栈内存过多。
切换到堆有帮助。

【讨论】:

    【解决方案2】:

    如果你在使用MPI后错过了MPI_Finalize(),也会产生如下错误:

    作业 98 n01_44763 中的排名 3 导致所有级别的集体中止
    rank 3的退出状态:返回码0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多