Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] dlopening openmpi libs (was: Re: Problems in 1.3 loading shared libs when usingVampirServer)
From: Brian W. Barrett (brbarret_at_[hidden])
Date: 2009-03-25 12:10:40


On Mon, 23 Mar 2009, Olaf Lenz wrote:

> and the solution that is described there still looks as though it should
> still work now, or shouldn't it? Just link all the OpenMPI plugins against
> the base OpenMPI libraries, and it should work. Or am I wrong?

I believe your suggestion will not work, certainly not portably. In fact,
it will die in horrible ways. We used to link in the way you suggested,
and what you end up with is a bunch of copies of libmpi, all in their own
namespace. Hardly helpful :).

Unfortunately, there are only three rational solutions I've thought of to
the problem:

* Do nothing, my prefered solution
* Stop building components by default
* Have libmpi be a thin wrapper, which dlopens Open MPI's guts into the
public namespace, and the guts then dlopen all the components.

Obviously, the first serves the greatest community and involves the least
amount of work. However, packagers such as the Linux distributions should
make a decision about how to best package Open MPI -- perhaps shipping
it built with components is not the ideal solution for their
infrastructure.

I did want to point out one incorrect statement in your e-mail. While
specifying "--enable-shared --enable-static" to configure will cause
components to be linked into libmpi rather than built as stand-alone
entities, a better way to accomplish that is "--enable-mca-static", which
will build all the components into libmpi.so, but not also cause libmpi.a
to be built.

Brian