Re: [mpich-discuss] Implementation of MPICH collectives
Within the node, it uses shared memory. Outside the node, it depends on the netmod you configured with. tcp is the default netmod. -- Pavan On Sep 12, 2013, at 2:24 PM, Jiri Simsa wrote:
The high-order bit of my question is: What OS interface(s) does MPICH use to transfer data from one MPI process to another?
On Thu, Sep 12, 2013 at 1:36 PM, Jiri Simsa <[email protected]> wrote: Hello,
I have been trying to understand how MPICH implements collective operations. To do so, I have been reading the MPICH source code and stepping through mpiexec executions.
For the sake of this discussion, let's assume that all MPI processes are executed on the same computer using: mpiexec -n <n> <mpi_program>
This is my current abstract understanding of MPICH:
- mpiexec spawns a hydra_pmi_proxy process, which in turn spawns <n> instances of <mpi_program> - hydra_pmi_proxy process uses socket pairs to communicate with the instances of <mpi_program>
I am not quite sure though what happens under the hoods when a collective operation, such as MPI_Allreduce, is executed. I have noticed that instances of <mpi_program> create and listen on a socket in the course of executing MPI_Allreduce but I am not sure who connects to these sockets. Any chance someone could describe the data flow inside of MPICH when a collective operation, such as MPI_Allreduce, is executed? Thanks!
Best,
--Jiri Simsa
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
-- Pavan Balaji http://www.mcs.anl.gov/~balaji
participants (1)
-
Pavan Balaji