Collective operations typically operated on all processes (although some systems provide subgroups).
This is too restrictive (e.g., need minimum over a column or a sum across a row, of processes)
MPI provides groups of processes
-- initial ``all'' group
-- group management routines (build, delete groups)
All communication (not just collective operations) takes place in groups.
A group and a context are combined in a communicator.
Source/destination in send/receive operations refer to rank in group associated with a given communicator. MPI_ANY_SOURCE permitted in a receive.