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

Reply via email to