Mpi 捕获到致命信号:节点2/32上的SIGBUS(7)

Mpi 捕获到致命信号:节点2/32上的SIGBUS(7),mpi,sigpipe,sigbus,Mpi,Sigpipe,Sigbus,我正在尝试在32节点集群上运行NAS-UPC基准测试 在问题规模较小的情况下,它可以正常工作。当我毕业到一个更大的问题规模(D类)时,我得到了这个错误(对于MG基准) 有人能解释为什么会发生这种情况吗?有没有人以前见过这种错误并修复了它 编辑:发现这是一个与内存相关的问题。但我无法在编译时为应用程序分配正确的内存量检查dmesg输出-这可能是内存不足的问题。或者,它也可以是一个some fromulimit-ahitted,例如stacksize(默认堆栈大小对于某些NAS任务来说太小) 如果您

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

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

有人能解释为什么会发生这种情况吗?有没有人以前见过这种错误并修复了它


编辑:发现这是一个与内存相关的问题。但我无法在编译时为应用程序分配正确的内存量检查
dmesg
输出-这可能是内存不足的问题。或者,它也可以是一个some from
ulimit-a
hitted,例如stacksize(默认堆栈大小对于某些NAS任务来说太小)

如果您在任何机器上的
dmesg
输出中都有类似“内存不足:进程被终止”这样的行,这意味着您的程序需要(并试图使用)大量内存,比您的操作系统能够提供给应用程序的内存都要大。内存有几个限制:

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

  • 我认为基准测试需要的内存比我在编译时分配的内存多,这是一个问题

    我将stack设置为unlimited,但问题仍然存在。(ulimit-s unlimited)。。有什么办法可以解决这个内存不足的问题吗?@Sharat Chandra,在一次失败后,你是否检查了一个
    dmesg
    输出,以验证它实际上是一个OOM(内存不足)还是其他什么?我检查了,但我不知道如何解释输出。你能告诉我我应该从输出中寻找什么吗?请原谅我在这件事上的无知:(在dmesg或系统日志(grep in
    /var/log/*
    )中是否有类似“内存不足:进程已终止…”这样的行?当您接受自己的答案时,它们不会被移到顶部,并且不会获得+2声誉。
    *** 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