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.
For corporate legal information go to: