MPI symbol lookup error: opal_uses_threads

MPI symbol lookup error: opal_uses_threads

所以:Ubuntu 17.04。直到昨天,MPI 一切正常,然后出了点问题。错误是标题上的错误,结果是 运行 mpirun -n[n] ./myprogram.
Opal 之前错误是 Libmpi.so.12 尽管我尝试指示 LD_LIBRARY_PATH 但我无法解决它在我的 .bashrc 上,如此处类似问题中所建议。然后重新安装 OpenMPI,错误在这个新版本中发生了变化,我不知道如何修复它。实际上apt-file search libmpi.so的结果是:

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

lddreturns:

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 returns:

/usr/bin/mpirun

apt-file search mpicc returns:

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

您的应用程序似乎是使用其他 MPI 版本(较旧的 Open MPI 或其他 MPI 库,例如 lam 或 mpich)构建的

最简单的方法是使用新安装的 Open MPI 重建您的应用程序

[编辑]

这是在聊天中诊断出来的,根本原因是系统和用户构建的 Open MPI 不小心混在一起了。

修复环境后仅使用系统 Open MPI,问题就解决了。