2017-08-31 105 views
0

SO:Ubuntu 17.04。直到昨天,MPI一切正常,然後出現了問題。該錯誤是標題上的錯誤,並且與mpirun -n[n] ./myprogram一起運行。
以前歐泊Libmpi.so.12錯誤,我無法解決這個問題,儘管我試圖表明我.bashrc的LD_LIBRARY_PATH,在類似的問題在這裏提出。然後重新安裝OpenMPI,這個新的錯誤已經改變,我不知道如何解決它。實際上的apt-file search libmpi.so結果是:MPI符號查找錯誤:opal_uses_threads

lam4-dev: /usr/lib/lam/lib/libmpi.so 
libopenmpi-dev: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so 
libopenmpi2: /usr/lib/x86_64-linux-gnu/libmpi.so.20 
libopenmpi2: /usr/lib/x86_64-linux-gnu/libmpi.so.20.0.2 
libopenmpi2: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so.20.0.2 

而且ldd回報:

linux-vdso.so.1 => (0x00007ffc415e5000) 
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe717956000) 
libmpi.so.12 => not found 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe717738000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe717371000) 
/lib64/ld-linux-x86-64.so.2 (0x000055ccd14f4000) 

所以,問題似乎仍然是libmpi.so.12?在重新安裝OpenMPI之前,libmpi.so.12在那裏,MPI找不到它,但在那裏。

[編輯]

which mpirun回報:

/usr/bin/mpirun 

而且apt-file search mpicc回報:

lam4-dev: /usr/bin/mpicc.lam 
lam4-dev: /usr/share/man/man1/mpicc.lam.1.gz 
libmpich-dev: /usr/bin/mpicc.mpich 
libmpich-dev: /usr/share/man/man1/mpicc.mpich.1.gz 
libopenmpi-dev: /usr/bin/mpicc.openmpi 
libopenmpi-dev: /usr/share/man/man1/mpicc.openmpi.1.gz 
libsimgrid-dev: /usr/bin/smpicc 
libsimgrid-dev: /usr/share/man/man1/smpicc.1.gz 
mpich-doc: /usr/share/doc/mpich-doc/www1/mpicc.html 
openmpi-common: /usr/share/openmpi/mpicc-wrapper-data.txt 
openmpi-common: /usr/share/openmpi/mpicc.openmpi-wrapper-data.txt 

回答

1

看來您的應用程序與其他MPI版本(舊的開放MPI或建其他MPI庫如lam或mpich)

最簡單的路徑是用新安裝的重建你的應用程序中打開MPI

[編輯]

這被診斷在聊天,而根本原因是系統和用戶建立開放MPI無意中混合。

一旦環境被修復,只有系統使用Open MPI,問題就解決了。

+0

我只是用'mpicc ...'編譯它。我怎樣才能用新安裝的Open MPI進行編譯? – Caramelleamare

+0

確保'mpicc'是Open MPI提供的,然後從頭開始重新構建您的應用程序,這可能就足夠了。 –

+0

請注意,你應該不需要任何東西在你的'.bashrc' –