Intercommunicators in MPI-1
Communication between two disjoint groups
In many functions the communicator argument can be an intercommuncator
exception (in MPI-1): collective operations
Rank of a task:
relative to own group for local operation
relative to other group for remote operation
Example: send and receive with intercommunicator
intercommunicator between group A and group B
task 1 of group A sends to task 2 of group B
task 1 of A:
MPI_Send(..., 2, ... intercomm)
task 2 of B:
MPI_Recv(..., 1, ... intercomm,...)
Creation of an intracommunicator with
MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm)
quite complicated
functions for dynamic process creation return an intercommunicator
Merging of an intercommunicator to an intracommunicator containing both groups:
MPI_Intercomm_merge(MPI_Comm inter, int high, MPI_Comm *intra)
Peter Junglas 16.2.1999