openmpi忽略错误:无法识别mca接口 [英] openmpi ignored error: mca interface is not recognized

查看:407
本文介绍了openmpi忽略错误:无法识别mca接口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

今天早上,我将gfortran(从4.7升级到6.1.0)和OpenMPI(从1.10到2.0.1)编译器进行了升级.我写了这个简单的程序:

This morning I upgraded my gfortran (from 4.7 to 6.1.0) and OpenMPI (from 1.10 to 2.0.1) compilers. I wrote this simple program:

program main                                                                                             
    use mpi_f08                                                                                          
    implicit none                                                                                        
    integer :: ierror                                                                                    

    call mpi_init(ierror)                                                                                
    call mpi_finalize(ierror)                                                                            
end program main   

直接编译时(没有mpirun,只有 ./a.out ),我收到以下消息(由于程序按预期运行,它们并不是真正的错误):

When I compile directly (no mpirun, just ./a.out), I get the following messages (they're not really errors since the program runs as expected):

[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版本运行代码时收到类似的警告.显然现在不是这种情况,但我想我会提到它.

I remember getting similar warnings when I was compiling my code with openmpi and running it with mpich's or intel's version of mpirun. This is clearly not the case now but I thought I'd mention it.

任何想法导致这些警告的原因是什么?

Any idea what causes these warnings?

为确保我的运行时OpenMPI库确实是2.0.1,我在上面显示的代码行中添加了以下代码行:

To make sure my runtime OpenMPI libraries was indeed 2.0.1, I added this line of code to the one shown above:

print'(3(A,I1))', "OpenMPI version = ", OMPI_MAJOR_VERSION, ".", OMPI_MINOR_VERSION, ".",& 
  8                       OMPI_RELEASE_VERSION

给出了以下输出:

OpenMPI version = 2.0.1

按照VladimirF的建议,我运行了 mpirun -v ,它输出了以下内容:

Following VladimirF's advice, I ran mpirun -v which outputted the following:

 [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 返回: mpirun(Open MPI)2.0.1

推荐答案

感谢Gilles Gouaillardet在OpenMPI论坛上的帮助,我已经解决了问题.

I've figured out the problem thanks to Gilles Gouaillardet's help on the OpenMPI forums.

问题:

我安装了较新的版本2.0.1,但未卸载1.10.由于我将其安装在同一位置,因此某些mca文件被覆盖,而另一些mca文件在较新版本中已被删除或重命名,因此仍然存在于目录中.最后,版本2.0.1无法识别这些模块文件,从而导致上述警告.

I installed the newer version 2.0.1 without uninstalling 1.10. Since I installed it at the same location, some mca files were overwritten while others have been removed or renamed in the newer version and were therefore still present in the directory. In the end, these module files were not recognised by version 2.0.1, resulting in the above warnings.

解决方案:

  1. 删除所有插入文件: rm -rf/usr/local/lib/openmpi
  2. 重新安装Openmpi:进行安装

这篇关于openmpi忽略错误:无法识别mca接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆