On Feb 20, 2009, at 9:53 AM, Olaf Lenz wrote:

However, I'm using OpenMPI to run a program that we currently develop
(http://www.espresso-pp.de). The software uses Python as a front-end
language, which loads the MPI-enabled shared library. When I start
python with a script using this parallel lib via mpiexec, I get the
following error:

mpiexec -n 4 python examples/hello.py
python: symbol lookup error:
/people/thnfs/homes/lenzo/software.thop/lib/openmpi/ mca_paffinity_linux.so:
undefined symbol: mca_base_param_reg_int

We've talked about similar errors before; I thought that the issue was caused by the Python front-end calling dlopen() to manually open the libmpi.so library. Is that the cause in your scenario?

If so, note that it needs to load libmpi.so with RTLD_GLOBAL. For example:

    http://www.open-mpi.org/faq/?category=running#loading-libmpi-dynamically

When I compile OpenMPI 1.3 using

        --enable-shared --enable-static

the problem disappears. Note also, that the same program works when I'm
using OpenMPI 1.2.x (tested 1.2.6 and 1.2.9). I do believe that the
problem is connected with the problem described here:

Yes, this makes sense, given the way that linkers work. If you don't dlopen with RTLD_GLOBAL, then libmpi is opened into a private namespace in the process, and then OMPI's plugins that are subsequently opened cannot find the symbols that they expect to find (from libmpi).

If you compile statically, there's no issue because all the libmpi's symbols are globally available to any plugins that are loaded at run- time.

(note that I say "libmpi", but I'm really referring to all three of OMPI's support libraries: libmpi, libopen-rte, libopen-pal)

PS: It is not obvious on the OpenMPI web site where to report bugs. When clicking on "Bug Tracking", which seems most obvious, I'm redirected to
the Trac Timeline, and there is no place where I can report bugs or
anything.

Bummer; I had thought the Big Red Links for "Getting Help/Support" were obvious. :-( Indeed, the very first line of text on the http://www.open-mpi.org/community/help/ page says:

"If you have a bug report and/or patch for Open MPI, you should probably subscribe to the Open MPI developer's list and post it there. Open MPI uses Trac for its bug tracking (see the "Bug Tracking" link in the left-hand navigation), but only developers are allowed to open new tickets (mainly as an artifact of our SVN+Trac authentication system; it's never been a big enough issue for us to figure out how to issue non-developer/Trac-only accounts)."

--
Jeff Squyres
Cisco Systems

Reply via email to