next up previous contents
Next: 2 An Overview of Up: No Title Previous: No Title

1 Introduction

  MPI is a proposed standard message passing interface originally designed for writing applications and libraries for distributed memory environments. The main advantages of establishing a message passing interface for such environments are portability and ease-of-use, and a standard message passing interface is a key component in building a concurrent computing environment in which applications, software libraries, and tools can be transparently ported between different machines. Furthermore, the definition of a message passing standard provides vendors with a clearly defined set of routines that they can implement efficiently, or in some cases provide hardware or low-level system support for, thereby enhancing scalability.

The functionality that MPI is designed to provide is based on current common practice, and is similar to that provided by widely-used message passing systems such as Express [11], NX/2 [12], Vertex, [10], PARMACS [7, 8], and P4 [9]. In addition, the flexibility and usefulness of MPI has been broadened by incorporating ideas from more recent and innovative message passing systems such as CHIMP [4, 5], Zipcode [13, 14], and the IBM External User Interface [6].

The MPI standardization effort involved about 60 people from 40 organizations mainly from the United States and Europe. Most of the major vendors of concurrent computers were involved in MPI, along with researchers from universities, government laboratories, and industry. The standardization process began with the Workshop on Standards for Message Passing in a Distributed Memory Environment, sponsored by the Center for Research on Parallel Computing, held April 29-30, 1992, in Williamsburg, Virginia [15]. At this workshop the basic features essential to a standard message passing interface were discussed, and a working group established to continue the standardization process.

A preliminary draft proposal, now known as MPI-0, was put forward by Dongarra, Hempel, Hey, and Walker in November 1992, and a revised version was completed in February 1993 [3]. MPI-0 embodies the main features that were identified at the Williamsburg workshop as being necessary in a message passing standard. This proposal was intended to initiate discussion of standardization issues within the distributed memory concurrent computing community, and has served as a basis for the subsequent MPI standardization process. Although MPI-0 and the MPI draft standard described here have many features in common, they are distinct proposals with the latter being broader in scope and paying greater attention to important issues such as thread safety. In November 1992, the MPI working group was superseded by the establishment of the MPI Forum. This group, membership of which was open to all those involved in high performance computing, met regularly throughout the first nine months of 1993 to produce the first draft of the MPI specification which was presented at the Supercomputing `93 conference in November 1993. After a period of public review and comment, version 1.0 of the MPI specification was released in May 1994. Minor clarifications and corrections were made to this document over the following twelve months and a revised version of the specification, version 1.1, was released in June 1995. The specification of MPI as set forth in version 1.1 is generally known as MPI-1 to distinguish it from MPI-0 and an on-going effort to extend the specification known as MPI-2. All mention of MPI in this article refers to MPI-1, unless explicitly stated otherwise.


next up previous contents
Next: 2 An Overview of Up: No Title Previous: No Title

top500@rz.uni-mannheim.de
Tue May 28 14:38:25 PST 1996