Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error when starting Open MPI in MPI_Init via Python

I am trying to access a shared library with OpenMPI via python, but for some reason I get the following error message:

[Geo00433:01196] mca: base: component_find: unable to open /usr/li/openmpi/lib/openmpi/mca_paffinity_hwloc: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
[Geo00433:01196] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_carto_auto_detect: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
[Geo00433:01196] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_carto_file: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
[Geo00433:01196] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_mmap: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
[Geo00433:01196] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_posix: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
[Geo00433:01196] mca: base: component_find: unable to open /usr/lib/openmpi/lib/openmpi/mca_shmem_sysv: perhaps a missing symbol, or compiled for a different version of Open MPI? (ignored)
-------------------------------------------------------------------------
It looks like opal_init failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during opal_init; some of which are due to configuration or
environment problems.  This failure appears to be an internal failure;
here is some additional information (which may only be relevant to an
Open MPI developer):

  opal_shmem_base_select failed
    --> Returned value -1 instead of OPAL_SUCCESS
--------------------------------------------------------------------------
[Geo00433:01196] [[INVALID],INVALID] ORTE_ERROR_LOG: Error in file runtime/orte_init.c at line 79
--------------------------------------------------------------------------
It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems.  This failure appears to be an internal failure; here is some
additional information (which may only be relevant to an Open MPI
developer):

  ompi_mpi_init: orte_init failed
  --> Returned "Error" (-1) instead of "Success" (0)
--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL: your MPI job will now abort
[Geo00433:1196] Local abort before MPI_INIT completed successfully; not able to aggregate error messages, and not able to guarantee that all other processes were killed!

Any clue what's the reason? I checked many webpages already, but somehow couldn't find a solution for my problem yet.

I have Ubuntu 15.10 and mpich as well as open-mpi installed.

Thanks a lot guys!

like image 374
Jannis Avatar asked Mar 22 '16 14:03

Jannis


1 Answers

I had the same problem (or very similar with slightly different error message) on Ubuntu 16.04, even with only Open MPI installed. From what I can tell there is a problem with how the mpi4py package from Ubuntu was built, but am not sure what exactly it is.

Reproduction: Since the question doesn't make it entirely clear how the error message was produced (I don't have the reputation to edit it), here's how I got it. First, install Ubuntu's mpi4py package and then enter the python environment:

$ sudo apt-get install mpi
$ python

Inside python, try the following:

>>> from mpi4py import MPI

You should then get an error message like the OP had.

Solution: Here is how I got it working. First uninstall Ubuntu's package:

$ sudo apt-get remove mpi4py

Then install the Open MPI headers (the next step involves building mpi4py) and pip:

$ sudo apt-get install libopenmpi-dev python-pip

Finally install mpi4py:

$ sudo pip install mpi4py

If you try the python command above, it should now work fine.

like image 133
fltfan Avatar answered Nov 17 '22 11:11

fltfan