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
jsquy...@cisco.com