| | | | | 8 MPI-A User-level Message-passing Interface | | | | | | | | | So far, we have shown how to set up a Beowulf that is little different from a network of independent workstations. Each of the workstations has network access via sockets, the standard BSD networking API. | | | | | | | | | A large variety of user-level utilities operate using this API including X windows, the r-commands: rsh, rep, rlogin and their secure cousins: ssh, scp. slogin. File systems can be accessed remotely with NFS. The socket networking API is also available to application programmers, who may use it directly. However, experience has shown that although rich and powerful, it is difficult to use and not entirely appropriate for large scale distributed memory applications. | | | | | | | | | Through the 1980s, manufacturers of MPPs devised proprietary APIs which allowed more-or-less direct access to the underlying network hardware in their systems. For most purposes, these APIs were essentially the same, differing primarily in the names given to the routines and in subtle variations in the semantics of obscure and special cases. It was possible, but unnecessarily difficult, to write code that was portable between machines. | | | | | | | | | In April of 1992 a workshop on Standards for Message Passing in a Distributed Memory Environment was sponsored by the Center for Research on Parallel Computing. This workshop convened a working group and solicited input from industry and academia. A two-year process was begun which included meetings and extensive email discussions. The designers of MPI attempted to incorporate the best ideas from a variety of sources, including research projects such as P4,1 and PVM,2 and commercial systems from Intel (NX), IBM (EUI), Ncube (Vertex), Thinking Machines (CMMD) and others. The result was the MPI-1.0 Message Passing Interface,3,4 released in May, 1994. In June 1995, the revised MPI-1.1 standard was released (most of the revisions were mere clarifications). Substantial revisions were deferred until the release of the MPI-2.0. In April 1997. MPI-1.2, another set of clarifications, and MPI-2.0, with several major new features, were released. Thus, the two principal branches of MPI are now version 1.2 and version 2.0. MPI-2 provides a richer set of functionality including I/O, and one-sided communication, but also incorporates all of MPI-1.2, again with some minor clarifications. Open source implementations of MPI-2 are expected to become available in 1999. | | | | | | | | | 1P4 home page: http://www-fp.mcs.anl.gov/~lusk/p4/index.html | | | | | | | | | 2PVM home page: http://www.eprm.ornl.gov/pvm/pvm_home.html | | | | | | | | | 3All MPI documents may be found at http://www.mpi-forum.org/docs/docs.html | | | | | | | | | 4MPI, the Complete Reference, Snir et al., MIT Press, 1996 | | | | |