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]
|