MPI - Message Passing Interface

The goal of MPI (Message Passing Interface) is to develop a widely used standard for writing message-passing programs. As such, the interface attempts to establish a practical, portable, efficient, and flexible standard for message passing. The main advantages of establishing a message-passing standard are portability and ease-of-use.

The standard covers:

  • Point-to-point communications
  • Collective operations
  • Process groups
  • Communication contexts
  • Process topologies
  • Bindings for Fortran 77 and C
  • Environmental management and inquiry
  • Profiling interface

MPI is a combination of APIs and required behaviors that represent layers five through seven of the ISO OSI Reference Model for Networking. MPI implementations often include lower layers of the ISO OSI Reference Model as well, including Transport, Network, and even Datalink protocols, but this depends on the specific implementation, network, and operating conditions. MPI works to guarantee portability of parallel programs with good performance. Real-time MPI (MPI/RT), works to provide both portability, and specification of real-time guarantees. MPI and MPI/RT are what is called "de facto" standards, because the standards groups that defined them are not official like ISO, ANSI, or IEEE. Their acceptance comes from the user communities that have adopted them, and from the careful organization and operation of the groups that have brought these application programmer interface standards forward.

MPI 1 and MPI 2 are both parallel computing messaging standards. MPI 1 was defined in 1993, and was slightly revised from that point, to its final revision, called MPI 1.2, in June 1997. This software supports: reliable message passing between static groups of processes (point-to-point, collective) as well as features for scoping messages (communicators), managing messaging passing structure (topologies), and a number of utility features. MPI 1.2 has 128 calls, and has language bindings for C, C++, and Fortran-77. Some users have successfully employed MPI from other languages as well, by developing their own wrappers.

The MPI 2 standard emerged in 1997 and is an effort to consider extensions to the original MPI standard. MPI 2 is not a replacement or change to MPI, it is an extension of MPI. It contains additional functionality in the area of message passing, but also introduces a large number of new features into the parallel programming environment; most notable among these are parallel disk I/O, and dynamic process management.

MPI/RT is a newer standard than either MPI 1 or MPI 2, and is complementary to both of these. It is intended for hard-real-time applications, and supports quality of service, and emphasizes channel-based communication.



Contact us to receive a free price quote and to discuss your specific high-performance system requirements. We'll listen to your requests and help you put together a system or cluster with a configuration that works to fit your computing needs.