A communicator specifies the communication context for a communication operation. The communicator also specifies the set of processes that share this communication context. This process group is ordered and processes are identified by their rank within this group. This will allow communication with all the processes available at initialization time. Users may define new communicators, as explained in Chapter Groups, Contexts, and Communicators .
Communicators provide an important encapsulation mechanism for libraries and modules.
They allow modules to have their own disjoint communication universe and their own process numbering scheme. The message envelope would normally be encoded by a fixed-length message header. However, the actual encoding is implementation dependent. Also, processes may be identified by relative ranks, or absolute ids, etc.