All processes in both groups identified by the intercommunicator must call the collective routine. In addition, processes in the same group must call the routine with matching arguments.
Note that the ``in place'' option for intracommunicators does not apply to intercommunicators since in the intercommunicator case there is no communication from a process to itself.
For intercommunicator collective communication, if
the
operation is rooted (e.g., broadcast, gather, scatter), then the transfer is
unidirectional.
The direction of the transfer is indicated
by a special value of the root argument.
In this case, for the group containing the root process, all processes in
the group must call the routine using a special argument for the root.
For this, the
root process uses the special root value MPI_ROOT; all other
processes
in the same group as the root use MPI_PROC_NULL.
All processes in the other group (the group that
is the remote group relative to the root process) must call the collective
routine and provide the rank of the root.
If the operation is unrooted (e.g., alltoall), then the
transfer is bidirectional.
Rooted operations are unidirectional by nature, and there is a clear
way of specifying direction. Non-rooted operations, such as
all-to-all, will often occur as part of an exchange, where it makes
sense to communicate in both directions at once.
( End of rationale.)
Rationale.
![]()
![]()
![]()
Up: Communicator Argument
Next: Barrier Synchronization
Previous: Applying Collective Operations to Intercommunicators
Return to MPI-2.1 Standard Index
Return to MPI Forum Home Page
MPI-2.0 of July 1, 2008
HTML Generated on July 6, 2008