【问题标题】:Caught a fatal signal: SIGBUS(7) on node 2/32捕获到致命信号:节点 2/32 上的 SIGBUS(7)
【发布时间】:2011-03-22 00:20:05
【问题描述】:

我正在尝试在 32 节点集群上运行 NAS-UPC 基准测试。

在问题规模较小的情况下它工作得很好。当我毕业到更大的问题规模(CLASS D)时,我得到了这个错误(对于 MG 基准)

*** Caught a fatal signal: SIGBUS(7) on node 2/32
 p4_error: latest msg from perror: Bad file descriptor
*** Caught a signal: SIGPIPE(13) on node 0/32
    p4_error: latest msg from perror: Bad file descriptor
   p4_error: latest msg from perror: Bad file descriptor

*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** Caught a signal: SIGPIPE(13) on node 27/32
*** Caught a signal: SIGPIPE(13) on node 20/32
*** Caught a signal: SIGPIPE(13) on node 21/32
    p4_error: latest msg from perror: Bad file descriptor
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** Caught a signal: SIGPIPE(13) on node 16/32
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit

任何人都可以解释为什么会发生这种情况,如果有人以前看到过这个错误并修复它?

编辑:发现这是一个与内存相关的问题。但我无法在编译时为应用程序分配适量的内存

【问题讨论】:

    标签: mpi sigpipe sigbus


    【解决方案1】:

    检查dmesg 输出 - 这可能是内存不足问题。或者,再次,它可以是来自ulimit -a 的一些命中,例如堆栈大小(对于某些 NAS 任务,默认堆栈大小太小)。

    如果您在任何机器上的dmesg 输出中有类似“Out of Memory: Killed process ###”这样的行 - 这意味着您的程序需要(并试图使用)大量内存,大于您的操作系统可以提供给应用程序。内存有几个限制:

    1. ulimit -v - 虚拟内存大小的用户限制。检查所有ulimit -a 限制,但似乎你的情况不是这样
    2. 您使用的内存不能超过总 RAM 和所有交换大小(使用 free 命令检查)。但是,如果您的应用程序使用的内存大于 RAM 大小,并开始进行交换 - 性能会很差(在大多数情况下)。
    3. 存在最大内存的架构限制,允许单个进程拥有。对于 32 位节点,此限制可以从 1(非常罕见的情况)到 2、3、4 GB。即使您的 32 位系统具有 >4 GB 的内存,例如使用 PAE - 没有一个进程可以占用 > 4 Gb。操作系统也占用了 4Gb 虚拟空间的很大一部分(从数百 MB 到 GB)。

    【讨论】:

    • 我将堆栈设置为无限制,但问题仍然存在。 (ulimit -s unlimited).. 有什么办法可以解决这个内存不足的问题吗?
    • @Sharat Chandra,在验证失败后您是否检查了dmesg 输出实际上是 OOM(内存不足)还是其他什么?
    • 我做了,但我不知道如何解释输出。你能告诉我我应该从那个输出中寻找什么吗?你应该原谅我在这件事上的无知:(
    • 在 dmesg 或系统日志(/var/log/* 中的 grep)中是否有类似“Out of Memory: Killed process ...”的行?
    【解决方案2】:

    我认为基准测试需要比我在编译期间分配的更多内存是一个问题。

    【讨论】:

    • 当您接受自己的答案时,它们不会被移到顶部,并且不会给予 +2 声望。
    猜你喜欢
    • 2012-10-16
    • 2014-07-09
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多