On Aug 4, 2008, at 11:45 AM, Mark Borgerding wrote:
But I think I've got a path forward. I've been able to use sockets
and MPI_Comm_join to create intercomms between the singleton and
mpirun-spawned children. The important step I was missing was
"orted --persistent --seed --scope public". Now the MPI_Comm_join
calls in different worlds can see each other.
Good!
FWIW, this technique just works in LAM, presumably because lamboot
is an explicit step.
Yes. LAM's universe is [mostly] statically defined during lamboot.
New MPI processes that come into existence get a unique "name" and
therefore the uniques issues surrounding the MPI-2 dynamics are
handled easily. In OMPI, we didn't have a "global" daemon that
handles these kinds of things by default, so you have to launch it
manually.
I've almost got my head wrapped around the technique in
http://www.open-mpi.org/community/lists/users/2007/10/4327.php
Are there any shortcuts I could take for the case where all the
clients are already in a group?
If they're all created as a result of individual JOINs, I don't think
so.
That being said, I should throw in the pitch that the MPI Forum is in
the process of defining MPI-3. If you have a new dynamic process
pattern that would be useful, I encourage you to submit a proposal to
the Forum for consideration to MPI-3 (or heck, join the Forum and
become part of the discussion!). Perhaps a new function
MPI_JOIN_MANY? :-)
--
Jeff Squyres
Cisco Systems