All processes in both groups identified by the intercommunicator must call the collective routine.
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 in the All-To-One or One-To-All categories, 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 in the All-To-All category, then the transfer is bidirectional.
Operations in the All-To-One
and One-To-All categories are unidirectional by nature, and there is a clear
way of specifying direction.
Operations in the All-To-All category will often occur as part of
an exchange, where it makes sense to communicate in both directions at once.
( End of rationale.)