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