MPI. Message Passing Interface. MPI is the most common interface of data exchange in parallel programming, it is implemented for most computer platforms. MPI provides the programmer with a single mechanism of interaction between branches inside a parallel application independently from the hardware architecture (single-processor with shared/divided memory) and positional relationship of branches (on one processor or on several). Among main MPI's advantages in comparison to other communicational libraries' interfaces there are the following:
- can be used in Fortran, C and C++ languages;
- provides abilities to combine message exchanges and calculations;
- provides message passing modes allowing you to avoid too much copying of information for buffering;
- large set of collective operations permitting much more effective implementation of a parallel program;
- convenient means of naming messages' addressees, simplifying development of standard programs or division of a program into functional blocks.
But MPI developers are strongly criticized for making the interface too heavy and complicated for an application programmer. The interface appeared to be complicated for implementation as well. As the result there are now no implementations of MPI in which exchanges and calculations are combined completely.