If a non-root process of the same operations is blank, this process will not contribute to the result of the collective operation. This means especially:
Bcast: no data will be sent to the blank process(es).
Reduce: blank processes do not contribute to the global result. Special care has to be taken not to assume predefined values for the blank processes, since this could alter the result (e.g. using zero for a blank process in MIN, MAX or PROD operations). It is invalid to return a blank process as the result of a reduce operation using MAXLOC and MINLOC. User defined operations will not be called for blank processes.
Gather(v): in the receive bu er of the root, the data segements as- signed to the blank process(es) will be untouched.
Scatter(v): no data will be sent to the blank process(es).
The rules for non-rooted operations can be directly derived from the rules for rooted operations. The implementation has to ensure, that for operations, which are implemented as a combination of other collective op- erations (e.g. MPI Allreduce implemented as an MPI Reduce followed by an MPI Bcast) a temporary root node is chosen, which is not a blank process.
Group and Communicator creation functions All operations defined in MPI-1 and MPI-2 for deriving new groups and communicators are valid for blank processes aswell. This includes:
it is valid to split communicators containing blank processes
it is valid to derive a group from a communicator which contains blank processes
it is valid to include/exclude a blank processes from a group
it is valid to generate new communicators from groups containing or excluding blank processes.
The group and commmunicator comparison functions MPI Group compare and MPI Comm compare need not be able to distinguish between two blank processes.
All topology functions might include blank processes. The outcome of the topology functions returning the ranks of neighbor processes might be a blank process.