Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] MPI_Comm_spawn query
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-09-26 09:39:26


On Sep 22, 2009, at 8:20 AM, Blesson Varghese wrote:

> I am fairly new to MPI.I have a few queries regarding spawning
> processes that I am listing below:
> a. How can processes send data to a spawned process?

See the descriptions for MPI_COMM_SPAWN; you get an inter-communicator
back from MPI_COMM_SPAWN that connects the parents and children
processes. Hence, you can use "normal" MPI communication calls on
this intercommunicator to pass information between parents and children.

> b. Can any process (that is not a parent process) send data to
> a spawned process?

Not directly, no. But you have two options:

1 use MPI's connect/accept methodology to establish new connection
(somewhat analogous to socket connect/accept methodology).
2 creatively merge successive intercommunicators until you have an
overlapping set of processes that contain both the processes that you
want to be able to communicate

FWIW, I imagine that #1 would likely be easier. See OMPI's
MPI_Comm_spawn(3) and MPI_Comm_connect(3) man pages for a list of
limitations, though.

> c. Can MPI_Send or MPI_Recv be used to communicate with a
> spawned process?

Yes.

> d. Would it be possible in MPI to tell which processor of a
> cluster a process should be spawned?

Look at Open MPI's MPI_Comm_spawn(3) man page for the options that we
allow passing through the MPI_Info argument.

-- 
Jeff Squyres
jsquyres_at_[hidden]