10.1.3. C++ Classes for MPI


Up: C++ Next: Class Member Functions for MPI Previous: Design

All MPI classes, constants, and functions are declared within the scope of an MPI namespace. Thus, instead of the MPI_ prefix that is used in C and Fortran, MPI functions essentially have an MPI:: prefix.


[] Advice to implementors.

Although namespace is officially part of the draft ANSI C++ standard, as of this writing it not yet widely implemented in C++ compilers. Implementations using compilers without namespace may obtain the same scoping through the use of a non-instantiable MPI class. (To make the MPI class non-instantiable, all constructors must be private.) ( End of advice to implementors.)
The members of the MPI namespace are those classes corresponding to objects implicitly used by MPI. An abbreviated definition of the MPI namespace for MPI-1 and its member classes is as follows:


namespace MPI { 
  class Comm                             {...}; 
  class Intracomm : public Comm          {...}; 
  class Graphcomm : public Intracomm     {...}; 
  class Cartcomm  : public Intracomm     {...}; 
  class Intercomm : public Comm          {...}; 
  class Datatype                         {...}; 
  class Errhandler                       {...}; 
  class Exception                        {...}; 
  class Group                            {...}; 
  class Op                               {...}; 
  class Request                          {...}; 
  class Prequest  : public Request       {...}; 
  class Status                           {...}; 
}; 

Additionally, the following classes defined for MPI-2:


namespace MPI { 
  class File                             {...}; 
  class Grequest  : public Request       {...}; 
  class Info                             {...}; 
  class Win                              {...}; 
}; 
Note that there are a small number of derived classes, and that virtual inheritance is not used.



Up: C++ Next: Class Member Functions for MPI Previous: Design


Return to MPI-2 Standard Index

MPI-2.0 of July 18, 1997
HTML Generated on August 11, 1997