openmpi ignored error: mca interface is not recognized

5k Views Asked by At

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   

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)

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?

Edit:

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

which gave the following output:

OpenMPI version = 2.0.1

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.

Also, mpirun --version returns: mpirun (Open MPI) 2.0.1

1

There are 1 best solutions below

1
On BEST ANSWER

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

Problem:

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.

Solution:

  1. Remove all the pluging files: rm -rf /usr/local/lib/openmpi
  2. Reinstall Openmpi: make install