【问题标题】:MPI symbol lookup error: opal_uses_threadsMPI 符号查找错误:opal_uses_threads
【发布时间】:2018-02-09 06:17:23
【问题描述】:

所以:Ubuntu 17.04。直到昨天,MPI 一切正常,然后出了点问题。错误是标题上的错误,它以mpirun -n[n] ./myprogram 运行。
在 Opal 之前,错误出现在 Libmpi.so.12 上,尽管我尝试在我的 .bashrc 上指示 LD_LIBRARY_PATH,但我无法解决它,正如此处类似问题中所建议的那样.然后重新安装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

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

【问题讨论】:

    标签: runtime-error mpi undefined-symbol


    【解决方案1】:

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

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

    [编辑]

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

    一旦环境得到修复,因此只使用系统 Open MPI,问题就解决了。

    【讨论】:

    • 我只是用mpicc ... 编译它。如何使用新安装的 Open MPI 进行编译?
    • 确保mpicc 是Open MPI 提供的,然后从头开始重新构建您的应用程序,可能就足够了。
    • 请注意,.bashrc 中不需要任何内容​​
    • 好的,我要问的是如何确定mpicc 是Open MPI 提供的?
    • which mpirun 和 apt-file search mpicc 应该可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2017-01-06
    相关资源
    最近更新 更多