2017-08-31 106 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' –