[This is preliminary documentation and is subject to change.]
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.
Namespace:
MPIAssembly: MPI (in MPI.dll)
Version: 0.6.0.0 (0.6.0.0)
Syntax
| C# |
|---|
public abstract class Communicator : IDisposable, ICloneable |
| Visual Basic (Declaration) |
|---|
Public MustInherit Class Communicator _ Implements IDisposable, ICloneable |
| Visual C++ |
|---|
public ref class Communicator abstract : IDisposable, ICloneable |