A Message Passing for MPP Standard and Workstations Message Passing Interface MPI is a portable message passing standard that facilitates development of parallel applications and libraries MPI defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message passing programs in Fortran 77 or C The standard also forms a possible target for such language compilers as High Performance Fortran 7 Commercial and free public domain implementations of MPI have been available since 1994 see the sidebar MPI Implementations running on both tightly coupled massively parallel processing MPP machines and on networks of workstations NOWs The MPI standard was developed over a 12month period in 1993 1994 of intensive meetings involving more than 80 people from approximately 40 organizations mainly from the U S and Europe The meetings were announced on various bulletin boards and T HE mailing lists and were open to the technical community The MPI meetings operated on a tight budget actually no budget when the first meeting was announced DARPA provided partial travel support for U S academic participants through the National Science Foundation Support for several European participants was provided by the European Commission through its Esprit program Formal voting at the meetings was by a single vote per organization in order to vote an organization needed to have had at least one representative at two of the last three meetings To provide guidance for preparing formal proposals frequent informal votes including all those present were held Many vendors of concurrent computers were involved as were researchers from universities government laboratories and industry This effort culminated in the 1994 publication of the MPI specification 8 Other sources of information on MPI are available 10 or are under development see the sidebar More MPI Assistance Researchers incorporated into MPI the Jack J Dongarra Steve W Otto Marc Snir and David Walker 84 July 1996 Vol 39 No 7 COMMUNICATIONS OF THE ACM The MPI standard defines a core of communication librar y routines for the processes forming concurrent programs on MPP machines and on networks of workstations most useful features of several systems rather than choosing a single system as the standard MPI has roots in PVM 4 5 Express 9 P4 1 Zipcode 10 and PARMACS 2 and in systems sold by IBM Intel Meiko Scientific Cray Research and nCube MPI is used to specify the communication among a set of processes forming a concurrent program The message passing paradigm is attractive because of its wide portability and scalability It is easily compatible with both distributed memory multicomputers and sharedmemory multiprocessors with NOWs and with combinations of these elements Message passing will not be made obsolete by increased network speeds or by architectures combining shared and distributed memory components Though much of MPI standardizes the common practice of existing message passing systems MPI goes further to define such advanced features as user defined datatypes persistent communication ports powerful collective communication operations and scoping mechanisms for communication No previous system incorporated all these features In considering MPI it is important to understand the constraints implied by such an endeavor and the practical constraints under which the committee operated as well as the following goals Design an application programming interface not necessarily for compilers or a system implementation library Allow efficient communication avoiding memory to memory copying and supporting overlap of computation and communication and offload to communication coprocessors where available Allow implementations in heterogeneous environments Allow convenient C and Fortran 77 bindings for the interface Assume a reliable communication interface so the user need not cope with communication failures dealt with by the underlying communication subsystem Define an interface not too different from current practice such as Express Intel s NX PVM and P4 while providing exten sions allowing greater flexibility Define an interface that can be implemented on many vendors platforms with no significant changes in the underlying communication and system software Design interface semantics to be language independent Design the interface to allow for thread safety What MPI Does and Does Not Specify The standard specifies the form of the following Point to point communications Messages between pairs of processes Collective communications Communication or synchronization operations involving entire groups of processes Process groups How process groups are used and manipulated Communicators A mechanism for providing separate communication scopes for modules or libraries Each communicator specifies a distinct name space for processes and a distinct communication context for mes MPI Implementations MPI is available on parallel computers from Convex Computer Cray Research IBM Intel Meiko Scientific nCube NEC and Silicon Graphics A number of public domain MPI implementations are available and can be found at the following locations Argonne National Laboratory Mississippi State University implementation Available by anonymous ftp at info mcs anl gov pub mpi Edinburgh Parallel Computing Centre CHIMP implementation Available by anonymous ftp at ftp epcc ed ac uk pub chimp release chimp tar Z Mississippi State University UNIFY implementation The UNIFY system provides a subset of MPI within the PVM environment without sacrificing the PVM calls already available Available by anonymous ftp at ftp erc msstate edu unify Ohio Supercomputer Center LAM implementation A full MPI standard implementation for LAM a Unix cluster computing environment Available by anonymous ftp tbag osc edu pub lam COMMUNICATIONS OF THE ACM July 1996 Vol 39 No 7 85 More MPI Assistance The book by W Gropp E Lusk and A Skjellum 6 is a tutorial level explanation of MPI An expanded and annotated reference manual for MPI is the book MPI The Complete Reference by Snir Otto Hess Lederman Walker and Dongarra 11 An MPI specific newsgroup is accessible through comp parallel mpi and an abundance of information about MPI is available through the World Wide Web The following list includes URLs containing MPI related information Netlib Repository at the University of Tennessee and Oak Ridge National Lab http www netlib org mpi index html Argonne National Lab http www mcs
View Full Document
Unlocking...