On Jul 18, 2004, at 12:29 PM, Gabriel Antoine Louis Paillard wrote:
> I'm using the lam-6.5.9-3 (under Fedora core), and I'm trying to
> make a program, that needs uses MPI_Comm_spawn (the program is just
> below). But what I constated, is that it successfully create the first
> process (under the rank 0, I think...) and the other processes created
> under the others ranks, don't do anything. What I want exactly, is
> create a program with some nodes (in the begin) and after that, every
> process creates a child and every new process can act in the
> MPI_COMM_WORLD, how can I do that ?
You can't. MPI defines that MPI_COMM_WORLD is fixed -- it's created
during MPI_INIT and never changes. However, you can spawn children and
merge everything into one big communicator -- it just won't be
MPI_COMM_WORLD. Does that make sense?
You can see the lamtests package for some examples using spawn and
merging communicators together.
Also, from taking a [brief] glance at your program, be aware that the
MPI_Info key that you are using may not have been introduced until
LAM/MPI 7.x (you said that you're using v6.5.9). You'll need to check
the man page on MPI_Comm_spawn -- I don't remember offhand when we
introduced that key. If we didn't have it in 6.5.9, you won't get an
error (recall that MPI_Info keys are only "hints" to the MPI
implementation), but you won't get a spawn pattern like you want.
Also, I notice that Fedora is shipping LAM 7.0.something. How did you
get 6.5.9? Can you upgrade? The 7.0 series has a *lot* more
functionality than the 6.5 series, and the 6.5 series is officially
unsupported these days. Indeed, we're literally just about to release
v7.1.
--
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/
|