2011-01-20 8 views
0

MPI_Finalize()를 실행하는 동안 오류가 발생하는 것은 처음입니다. 나는 의사 소통이 문제를 일으키는 것 같지만 무엇이 일어날 지 모른다. 내가 한 프로세서에서 실행MPI : MPI_Finalize() 실행 중 오류가 발생했습니다.

, 잘 작동하지만, 2 개 이상의 프로세서, I는 세그먼트 오류를 ​​얻고있다 ..

오류 메시지는

[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). 
-------------------------------------------------------------------------- 

내가에서 일을하고 모든 코드는 산만 해지고, 데이터를 수집하고 방송합니다. 아무에게도 디버깅 방법을 말해 줄 수 있습니까?

+3

코드를 실제로 볼 필요가 있습니다. 그리고 집단적 의사 소통이 실제로 데이터를 올바르게 전송하고 있음을 보장 할 수 있습니까? – chrisaycock

+0

'Failure at address : (nil)'부분은 당신이 어디에서나 널 포인터에 접근하고 있다고 생각하게한다. – suszterpatt

답변

0

두 가지 이유가 있습니다 : 1) MPI_Finalize가 잘못되었습니다 : 포함 된 CPI와 같은 예제 코드를 실행하여 MPI 라이브러리가 정상적으로 작동하는지 확인하십시오 MPI 분포. 배포본에 액세스 할 수 없다면 tar 파일을 다운로드하고 CPI 코드를 추출하거나 웹에서 간단한 Hello World 앱을 다운로드 할 수 있습니다. 나는 매우 좋습니다 http://www.citutor.org/ 샘플 코드가 작동하면 MPI 라이브러리가 좋으며 코드가 잘못되었습니다. 그렇지 않으면 라이브러리가 제대로 작동하지 않습니다. 선택한 구현을 다운로드하고 다른 복사본을 컴파일하십시오.

2) 코드는 MPI_Finalize에서 죽어 가고 있지는 않지만 (segfault), MPI_Finalize 어딘가에 있습니다. segfault가 MPI_Finalize에서 발생했는지 아닌지 확인할 수 있습니까?

관련 문제