Thanks for the quick answer! I have a few questions now:
1. Are there any downsides of using —disable-dlopen? 2. Are there any other options? We might not be able to change MPI installation, when this is running on a supercomputer. Joel On 17 Sep 2015, at 17:21, Jeff Squyres (jsquyres) <jsquy...@cisco.com> wrote: > Short version: > > The easiest way to do this is to configure your Open MPI installation with > --disable-dlopen. > > More detail: > > Open MPI uses a bunch of plugins for its functionality. When you dlopen > libmpi in a private namespace (like Python does), and then libmpi tries to > dlopen its plugins, the plugins can't find the symbols that they need in the > main libmpi library (because they're in a private namespace). > > The workaround is to build Open MPI with all of its plugins slurped up into > the libmpi library itself (i.e., so that Open MPI doesn't have to dlopen its > plugins). > > >> On Sep 17, 2015, at 11:08 AM, Joel Hermanns <joel.herma...@gmail.com> wrote: >> >> Hi all, >> >> I’m currently trying to use MPI within a Python extension (written in C++). >> I was able to compile the extension and import it correctly, but as soon as >> I run the function, which contains the MPI code, I get the following error: >> >> ``` >> [aia256:15841] mca: base: component_find: unable to open >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_posix: >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_posix.so: undefined symbol: >> opal_shmem_base_framework (ignored) >> [aia256:15841] mca: base: component_find: unable to open >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_mmap: >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_mmap.so: undefined symbol: >> opal_show_help (ignored) >> [aia256:15841] mca: base: component_find: unable to open >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_sysv: >> /pds/opt/openmpi-1.8.7/lib64/openmpi/mca_shmem_sysv.so: undefined symbol: >> opal_show_help (ignored) >> >> ... >> ``` >> >> (for the full message please have a look at [1]) >> >> >> I put together a minimal example to reproduce this problem, which can be >> found at [1]. Essentially, it is an extension that consist of only one >> function. The function basically just runs MPI_Init and MPI_Finalize. >> >> Maybe someone has some ideas what I could try to do. >> >> Thanks in advance! >> >> >> Best, >> Joel >> >> >> [1] https://github.com/jhedev/mpi_python >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2015/09/27607.php > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2015/09/27608.php