Mpi 捕获到致命信号:节点2/32上的SIGBUS(7)
我正在尝试在32节点集群上运行NAS-UPC基准测试 在问题规模较小的情况下,它可以正常工作。当我毕业到一个更大的问题规模(D类)时,我得到了这个错误(对于MG基准) 有人能解释为什么会发生这种情况吗?有没有人以前见过这种错误并修复了它Mpi 捕获到致命信号:节点2/32上的SIGBUS(7),mpi,sigpipe,sigbus,Mpi,Sigpipe,Sigbus,我正在尝试在32节点集群上运行NAS-UPC基准测试 在问题规模较小的情况下,它可以正常工作。当我毕业到一个更大的问题规模(D类)时,我得到了这个错误(对于MG基准) 有人能解释为什么会发生这种情况吗?有没有人以前见过这种错误并修复了它 编辑:发现这是一个与内存相关的问题。但我无法在编译时为应用程序分配正确的内存量检查dmesg输出-这可能是内存不足的问题。或者,它也可以是一个some fromulimit-ahitted,例如stacksize(默认堆栈大小对于某些NAS任务来说太小) 如果您
编辑:发现这是一个与内存相关的问题。但我无法在编译时为应用程序分配正确的内存量检查
dmesg
输出-这可能是内存不足的问题。或者,它也可以是一个some fromulimit-a
hitted,例如stacksize(默认堆栈大小对于某些NAS任务来说太小)
如果您在任何机器上的dmesg
输出中都有类似“内存不足:进程被终止”这样的行,这意味着您的程序需要(并试图使用)大量内存,比您的操作系统能够提供给应用程序的内存都要大。内存有几个限制:
ulimit-v
-虚拟内存大小的用户限制。同时检查所有ulimit-a
限制,但您的情况似乎并非如此free
命令检查)。但是,如果应用程序使用的内存超过RAM大小,并且开始进行交换,那么性能将很差(在大多数情况下)我认为基准测试需要的内存比我在编译时分配的内存多,这是一个问题 我将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