PMPI: High-Level Message Passing in Fortran 77 and C

The Message-Passing Interface (MPI) provides support for portable parallel programs, but often proves too complex to be convenient. In this paper we propose a higher-level Programmer's Message-Passing Interface (PMPI) to the standard MPI libraries that is better suited to the needs of application programmers. PMPI largely hides the binding of message-passing routines to the programming language. It has fewer operations than MPI, and with simpler arguments. Our high-level interface has been implemented by a preprocessor for C and Fortran77 programs, which expands PMPI source statements into corresponding MPI calls. As an automatic tool, the preprocessor substantially reduces the development cycle of message-passing programs. For instance, the PMPI versions of several benchmarks are significantly shorter and easier to understand than the MPI originals. We also quote performance figures for the PMPI versions of two of NAS parallel benchmarks on a Cray T3D showing the feasibility of our approach.