轉自:
http://hi.baidu.com/linzch/blog/item/7e7d750e18329ec07acbe14f.html
1. p1_xxxxx: p4_error: interrupt SIGSEGV: 11
這個錯誤可能是因為某個進程中出現了段錯誤引起的,自己編程中曾出現過的錯誤:
a.只在一個進程中給指標申請空間,而在其他進程沒有申請,所以在廣播的時候出錯。
b.數組記憶體的越界使用。
網上有個人說的很好:
"There are 2 things to check.
** Run one of the test programs like pi3.f or cpi.c to see whether your cluster's OK.
** if it is, the fault is in your code. See if you're exceeding array bounds or accessing memory which you haven't allocated, There's a SIGSEGV error - that's a segmentation violation. That might explain stuff like
bm_list_21829: p4_error: interrupt SIGINT: 2
Once you have a seg. violation, all the 4 processors are sent a signal to interrupt the process (SIGINT). Signals are defined in /usr/include/sys/signal.h (at least on the SGIs; might be
different on other systems). "
2. p1_10401: p4_error: : 14
1 - MPI_BCAST : Message truncated
[1] Aborting program !
[1] Aborting program!
這個也是由於mpi_bcast的接收空間不夠引起的,要在mpi_bcast之前分配足夠大的空間,這樣就不會truncated了
3. p4_error: alloc_p4_msg failed:
p0_6773: (7.828703) xx_shmalloc: returning NULL; requested 1048616 bytesp0_6773: (7.828762) p4_shmalloc returning NULL; request = 1048616 bytes 記憶體空間沒分配足,可以通過設定環境變數P4_GLOBMEMSIZE (in bytes)來增大程式需要的記憶體空間
export P4_GLOBMEMSIZE=32000000 (for bash users) setenv P4_GLOBMEMSIZE 32000000 (for csh or tcsh users)
4.libcprts.so.5: cannot open shared object file: No such file or directory
/home/jbrandt/tests/test.exe: error while loading shared libraries:libcprts.so.5: cannot open shared object file: No such file or directoryp0_792: p4_error: Child process exited while making connection to remoteprocess on compute-0-0.local: 0/opt/mpich/intel/bin/mpirun: line 1: 792 Broken pipe /home/jbrandt/tests/test.exe - p4pg /home/jbrandt/tests/PI646 -p4wd /home/jbrandt/tes
沒有用-static靜態串連,用-static重新編譯就好了