openmpi ignored error: mca interface is not recognized
openmpi ignored error: mca interface is not recognized
今天早上我升级了我的 gfort运行(从 4.7 到 6.1.0)和 OpenMPI(从 1.10 到 2.0.1)编译器。我写了这个简单的程序:
program main
use mpi_f08
implicit none
integer :: ierror
call mpi_init(ierror)
call mpi_finalize(ierror)
end program main
当我直接编译时(没有 mpirun,只有 ./a.out
),我得到以下消息(它们不是真正的错误,因为程序按预期运行):
[username:79762] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
[username:79761] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
[username:79761] mca_base_component_repository_open: unable to open mca_pml_bfo: dlopen(/usr/local/lib/openmpi/mca_pml_bfo.so, 9): Symbol not found: _ompi_free_list_item_t_class
Referenced from: /usr/local/lib/openmpi/mca_pml_bfo.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_pml_bfo.so (ignored)
[username:79761] mca_base_component_repository_open: coll "/usr/local/lib/openmpi/mca_coll_hierarch" uses an MCA interface that is not recognized (component MCA v2.0.0 != supported MCA v2.1.0) -- ignored
[username:79761] mca_base_component_repository_open: unable to open mca_coll_ml: dlopen(/usr/local/lib/openmpi/mca_coll_ml.so, 9): Symbol not found: _mca_bcol_base_components_in_use
Referenced from: /usr/local/lib/openmpi/mca_coll_ml.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_coll_ml.so (ignored)
我记得在使用 openmpi 和 运行 使用 mpich 或 intel 版本的 mpirun 编译我的代码时收到了类似的警告。现在显然不是这种情况,但我想我会提到它。
知道是什么原因导致这些警告吗?
编辑:
为了确保我的运行时 OpenMPI 库确实是 2.0.1,我将这行代码添加到上面显示的代码中:
print'(3(A,I1))', "OpenMPI version = ", OMPI_MAJOR_VERSION, ".", OMPI_MINOR_VERSION, ".",&
8 OMPI_RELEASE_VERSION
给出了以下输出:
OpenMPI version = 2.0.1
按照 VladimirF 的建议,我 运行 mpirun -v
输出了以下内容:
[username:02210] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
--------------------------------------------------------------------------
No executable was specified on the mpirun command line.
Aborting.
此外,mpirun --version
returns:mpirun (Open MPI) 2.0.1
感谢 Gilles Gouaillardet 在 OpenMPI 论坛上的帮助,我已经解决了这个问题。
问题:
我安装了较新的版本 2.0.1 而没有卸载 1.10。由于我将它安装在同一位置,一些 mca 文件被覆盖,而其他文件在较新版本中已被删除或重命名,因此仍然存在于目录中。最终,这些模块文件无法被2.0.1版本识别,导致出现上述警告。
解法:
- 删除所有插件文件:
rm -rf /usr/local/lib/openmpi
- 重新安装 Openmpi:
make install
今天早上我升级了我的 gfort运行(从 4.7 到 6.1.0)和 OpenMPI(从 1.10 到 2.0.1)编译器。我写了这个简单的程序:
program main
use mpi_f08
implicit none
integer :: ierror
call mpi_init(ierror)
call mpi_finalize(ierror)
end program main
当我直接编译时(没有 mpirun,只有 ./a.out
),我得到以下消息(它们不是真正的错误,因为程序按预期运行):
[username:79762] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
[username:79761] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
[username:79761] mca_base_component_repository_open: unable to open mca_pml_bfo: dlopen(/usr/local/lib/openmpi/mca_pml_bfo.so, 9): Symbol not found: _ompi_free_list_item_t_class
Referenced from: /usr/local/lib/openmpi/mca_pml_bfo.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_pml_bfo.so (ignored)
[username:79761] mca_base_component_repository_open: coll "/usr/local/lib/openmpi/mca_coll_hierarch" uses an MCA interface that is not recognized (component MCA v2.0.0 != supported MCA v2.1.0) -- ignored
[username:79761] mca_base_component_repository_open: unable to open mca_coll_ml: dlopen(/usr/local/lib/openmpi/mca_coll_ml.so, 9): Symbol not found: _mca_bcol_base_components_in_use
Referenced from: /usr/local/lib/openmpi/mca_coll_ml.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_coll_ml.so (ignored)
我记得在使用 openmpi 和 运行 使用 mpich 或 intel 版本的 mpirun 编译我的代码时收到了类似的警告。现在显然不是这种情况,但我想我会提到它。
知道是什么原因导致这些警告吗?
编辑:
为了确保我的运行时 OpenMPI 库确实是 2.0.1,我将这行代码添加到上面显示的代码中:
print'(3(A,I1))', "OpenMPI version = ", OMPI_MAJOR_VERSION, ".", OMPI_MINOR_VERSION, ".",&
8 OMPI_RELEASE_VERSION
给出了以下输出:
OpenMPI version = 2.0.1
按照 VladimirF 的建议,我 运行 mpirun -v
输出了以下内容:
[username:02210] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex
Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so
Expected in: flat namespace
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored)
--------------------------------------------------------------------------
No executable was specified on the mpirun command line.
Aborting.
此外,mpirun --version
returns:mpirun (Open MPI) 2.0.1
感谢 Gilles Gouaillardet 在 OpenMPI 论坛上的帮助,我已经解决了这个问题。
问题:
我安装了较新的版本 2.0.1 而没有卸载 1.10。由于我将它安装在同一位置,一些 mca 文件被覆盖,而其他文件在较新版本中已被删除或重命名,因此仍然存在于目录中。最终,这些模块文件无法被2.0.1版本识别,导致出现上述警告。
解法:
- 删除所有插件文件:
rm -rf /usr/local/lib/openmpi
- 重新安装 Openmpi:
make install