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

Reply via email to