Provides communication among a set of MPI processes.

Namespace:  MPI
Assembly:  MPI (in MPI.dll)
Version: (


public abstract class Communicator : IDisposable, 
Visual Basic (Declaration)
Public MustInherit Class Communicator _
	Implements IDisposable, ICloneable
Visual C++
public ref class Communicator abstract : IDisposable, 


The communicator class abstracts a set of communicating processes in MPI. Communicators are the most fundamental types in MPI, because they are the basis of all inter-process communication. Each communicator provides a separate communication space for a set of processes, so that the messages transmitted with one communicator will not collide with messages transmitted with another communicator. As such, different libraries and different tasks can all use MPI without colliding, so long as they are using different communicators. There are two important kinds of communicators: intracommunicators and intercommunicators.

Intracommunicators are the most commonly used form of communicator. Each intracommunicator contains a set of processes, each of which is identified by its "rank" within the communicator. The ranks are numbered 0 through Size-1. Any process in the communicator can Send<(Of <(T>)>)(T, Int32, Int32) a message to another process within the communicator or Receive<(Of <(T>)>)(Int32, Int32) a message from any other process in the communicator. Intracommunicators also support a variety of collective operations that involve all of the processes in the communicator. Most MPI communication occurs within intracommunicators, with very few MPI programs requiring intercommunicators.

Intercommunicators differ from intracommunicators in that intercommunicators contain two disjoint groups of processes, call them A and B. Any process in group A can send a message to or receive a message from any process in group B, and vice-versa. However, there is no way to use an intercommunicator to send messages among the processes within a group. Intercommunicators are often useful in large MPI applications that tie together many, smaller modules. Typically, each module will have its own intracommunicators and the modules will interact with each other via intercommunicators.

Inheritance Hierarchy

See Also