10.1.2 Design

The C++ language interface for MPI-/ is designed according to the following criteria:

  1. The C++ language interface consists of a small set of classes with a lightweight functional interface to MPI-/. The classes are based upon the fundamental MPI-/ object types (e.g., communicator, group, etc.).

  2. The MPI-/ C++ language bindings provide a semantically correct interface to MPI-/.

  3. To the greatest extent possible, the C++ bindings for MPI-/ functions are member functions of MPI-/ classes.

Rationale. Providing a lightweight set of MPI-/ objects that correspond to the basic MPI-/ types is the best fit to MPI-/'s implicit object-based design; methods can be supplied for these objects to realize MPI-/ functionality. The existing C bindings can be used in C++ programs, but much of the expressive power of the C++ language is forfeited. On the other hand, while a comprehensive class library would make user programming more elegant, such a library it is not suitable as a language binding for MPI-/ since a binding must provide a direct and unambiguous mapping to the specified functionality of MPI-/.(End of rationale.)

.

MPI-Standard for MARMOT