On Mar 24, 2006, at 6:43 PM, Troy Telford wrote:

On Fri, 24 Mar 2006 16:30:37 -0700, Brian Barrett <brbarret@open- mpi.org>
wrote:

  The freely available derivatives of PBS all
seemed more than happy to help with building the tm libraries with -
fPIC.

It's a pity that I'm not in a position where I don't have to deal with PBS
Professional.

Still, thanks for the info; I guess when PBS Pro is there, there's only
one option...

Unfortunately, I think so. We have the same problem on some of our University-wide systems that use PBS Pro. Thankfully, just one system is x86_64, so not a big deal. But still less than ideal (if only because I usually only remember to add the --enable-static -- disable-shared after the build aborts).

One thought that occurs to me that *might* work, but would be really icky, would be to build a complete build of Open MPI (binaries and all) with --enable-static --disable-shared and with TM. This means all the *Open MPI* binaries (mpirun, the wrapper compilers) will be built statically and not be able load components. Then do another build with --enable-shared, without tm, but all the other flags the same. Just install the headers and libraries for this build. This build will be able to load components, since it's shared. Since Linux prefers shared libraries over static libraries, the user codes will be linked against the shared libraries and able to be load dynamic modules.

I think this might break MPI_COMM_SPAWN, which is unfortunately (more to the point, MPI_COMM_SPAWN would not use TM to start new procs). But it would allow loadable modules for things like the point-to- point network support, which I'm guessing is what you're really after.

I'm not sure we could do something like this internally in Open MPI's build system and we definitely don't have the developer time to look into it in the foreseeable future.

Thinking about it some more, there is one even more icky solution to the problem. Again, this is not something the Open MPI development team can put cycles into. Last I heard / looked, the TM interface and the wire protocol to the pbs_mom hadn't changed much in years and years. There's an open source version of PBS out there that includes code to implement this wire protocol. There's no reason Open MPI pls and ras components couldn't be developed that talked directly to the pbs_mom rather than using the published API. Nasty, yes. But it might work. And since the PBS Pro libraries wouldn't need to be linked in, the -fPIC problem is avoided.

If you're interested in having a stab at either work-around approach, let me know (might be easiest to post to the devel mailing list so that we don't bore all the users with the awful details). I'd be interested in seeing if something couldn't be done between now and when Altair releases PBS Pro libraries for the Opteron compiled with - fPIC.


Brian

--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/

Reply via email to