【问题标题】:MPI: Error while executing MPI_Finalize()MPI:执行 MPI_Finalize() 时出错
【发布时间】:2011-06-12 18:43:43
【问题描述】:

这是我第一次在执行 MPI_Finalize() 时遇到错误。我认为沟通是导致问题的原因,但我不知道是什么原因造成的。

当我在 1 个处理器上运行它时,它工作正常,但在 2 个或更多处理器上,我遇到了分段错误..

错误信息是

[seismicmstm:32604] *** Process received signal ***
[seismicmstm:32604] Signal: Segmentation fault (11)
[seismicmstm:32604] Signal code:  (128)
[seismicmstm:32604] Failing at address: (nil)
[seismicmstm:32604] [ 0] /lib64/libpthread.so.0 [0x311c60eb10]
[seismicmstm:32604] [ 1] /usr/local/openmpi-1.4.2/lib/libopen-pal.so.0(opal_memo ry_ptmalloc2_int_malloc+0x2f4) [0x2b6955551794]
[seismicmstm:32604] [ 2] /usr/local/openmpi-1.4.2/lib/libopen-pal.so.0 [0x2b6955 553543]
[seismicmstm:32604] [ 3] /lib64/libc.so.6(__libc_calloc+0x330) [0x311ba74bc0]
[seismicmstm:32604] [ 4] /lib64/ld-linux-x86-64.so.2 [0x311b609d65]
[seismicmstm:32604] [ 5] /lib64/ld-linux-x86-64.so.2 [0x311b605a9c]
[seismicmstm:32604] [ 6] /lib64/ld-linux-x86-64.so.2 [0x311b6076e1]
[seismicmstm:32604] [ 7] /lib64/ld-linux-x86-64.so.2 [0x311b610bb6]
[seismicmstm:32604] [ 8] /lib64/ld-linux-x86-64.so.2 [0x311b60ce06]
[seismicmstm:32604] [ 9] /lib64/ld-linux-x86-64.so.2 [0x311b6105bc]
[seismicmstm:32604] [10] /lib64/libc.so.6 [0x311bb08df0]
[seismicmstm:32604] [11] /lib64/ld-linux-x86-64.so.2 [0x311b60ce06]
[seismicmstm:32604] [12] /lib64/libc.so.6(__libc_dlopen_mode+0x47) [0x311bb08f57 ]
[seismicmstm:32604] [13] /lib64/libpthread.so.0 [0x311c60f1dc]
[seismicmstm:32604] [14] /lib64/libpthread.so.0 [0x311c60f2f0]
[seismicmstm:32604] [15] /lib64/libpthread.so.0(__pthread_unwind+0x40) [0x311c60 d160]
[seismicmstm:32604] [16] /lib64/libpthread.so.0 [0x311c607985]
[seismicmstm:32604] [17] /usr/local/openmpi-1.4.2/lib/openmpi/mca_btl_openib.so [0x2b695869d22b]
[seismicmstm:32604] [18] /lib64/libpthread.so.0 [0x311c60673d]
[seismicmstm:32604] [19] /lib64/libc.so.6(clone+0x6d) [0x311bad3f6d]
[seismicmstm:32604] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 32604 on node seismicmstm.cluster exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------

我在代码中所做的只是分散、收集和广播数据。 谁能告诉我如何调试它....

【问题讨论】:

  • 我们需要实际查看您的代码。你能保证你的集体通信实际上是正确地传输数据吗?
  • 我们需要查看您的代码,尽管Failing at address: (nil) 部分让我认为您正在某处访问空指针。

标签: mpi


【解决方案1】:

有两个可能的原因: 1)您的 MPI_Finalize 不好:通过运行 MPI 分发中包含的示例代码(如 CPI)来检查 MPI 库是否正常工作。如果您无权访问该发行版,您可以下载 tar 文件并提取 CPI 代码,或者从 Web 下载任何简单的 Hello World 应用程序。我强烈推荐http://www.citutor.org/ 如果示例代码有效,那么您的 MPI 库是好的,而您的代码是错误的。如果不是,则库无法正常工作。下载您选择的实现并编译另一个副本。

2) 代码不是在 MPI_Finalize 中死亡(段错误),而是在 MPI_Finalize 之前的某个地方。您能否确认段错误发生在 MPI_Finalize 而不是之前?

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多