MPI:执行MPI_Finalize()时出错

MPI:执行MPI_Finalize()时出错,mpi,Mpi,这是我第一次在执行MPI_Finalize()时出错。我认为是沟通造成了问题,但我不知道是什么原因造成的 当我在1个处理器上运行它时,它工作正常,但在2个或更多处理器上,我遇到了分段错误 错误消息是 [seismicmstm:32604] *** Process received signal *** [seismicmstm:32604] Signal: Segmentation fault (11) [seismicmstm:32604] Signal code: (128) [seism

这是我第一次在执行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).
--------------------------------------------------------------------------
我在代码中所做的就是分散、收集和广播数据。
有人能告诉我如何调试它吗…

可能有两个原因: 1) 您的MPI_Finalize错误:通过运行MPI发行版中包含的示例代码(如CPI),检查MPI库是否工作正常。如果您没有访问发行版的权限,您可以下载tar文件并提取CPI代码,或者从web下载任何简单的helloworld应用程序。我强烈建议,如果示例代码有效,那么您的MPI库就可以了,而您的代码是错误的。如果不是,则表示库工作不正常。下载您选择的实现并编译另一个副本


2) 在MPI_Finalize中,代码并没有消亡(segfault),而是在MPI_Finalize之前的某个地方。您能确认SEGFULT发生在MPI_Finalize中而不是之前吗?

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