On Nov 23, 2010, at 8:34 AM, Hicham Mouline wrote:

>> MPI doesn't necessarily mean SPMD -- you can certainly have the GUI call 
>> MPI_INIT and then call MPI_COMM_SPAWN to launch a different >executable to 
>> do the compute working stuff. 
> 
> This is confusing to me.
> If the GUI does that, will the GUI process (running on windows) be able to 
> spawn mpi processes on separate linux boxes and "MPI talk" to them using the 
> intercommunicator returned?

Sorry for the delayed reply -- SC10 and the US holiday got in the way.

All I mean here is that your MPI job doesn't have to consist of a single 
executable.  You can have a GUI front-end application that MPI_COMM_SPAWN's 
non-GUI worker processes on the back-end nodes.

The point of MPI_COMM_SPAWN is that you can spawn some other MPI processes and 
get an intercommuicator back that you can use for normal MPI communications.  
To be clear, if your GUI calls MPI_COMM_SPAWN to launch non-GUI "worker" 
executable on the compute nodes, then you can use the intercommunicator that is 
returned via MPI_COMM_SPAWN to MPI_SEND / MPI_RECV / etc. with the new 
processes.  The new processes will need to call MPI_COMM_GET_PARENT to get the 
intercommunicator that is shared with the parent process(es).

Make sense?  Read through the MPI spec section on "dynamic processes" for more 
details.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to