PMPI: High-level message passing in Fortran77 and C

  • Sava Mintchev
  • Vladimir Getov
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1225)


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [abRHB94]
    PARKBENCH Committe (assembled by R. Hockney and M. Berry). PARKBENCH report — 1: Public international benchmarks for parallel computers. Scientific Programming, 3(2):101–146, 1994.Google Scholar
  2. [CD96]
    O. Coulaud and E. Dillon. Early implementation of Para++ with MPI-2. In MPI Developers Conference, University of Notre Dame, June 1996.Google Scholar
  3. [FC94]
    I. Foster and K. M. Chandy. Fortran M: A language for modular parallel programming. Journal of Parallel and Distributed Computing, 1994.Google Scholar
  4. [For94]
    Message Passing Interface Forum. MPI: A message-passing interface standard. International Journal of Supercomputer Applications, 8(3/4), 1994.Google Scholar
  5. [FXAC94]
    Ian Foster, Ming Xu, Bhaven Avalani, and Alok Choudhary. A compilation system that integrates High Performance Fortran and Fortran M. In Proc. 1994 Scalable High Performance Computing Conf., page July. IEEE Computer Science Press, 1994.Google Scholar
  6. [Get92]
    V. Getov. The GENESIS benchmark suite: Part 2. In 1st RAPS Tutorial GMD, Sept 1992.Google Scholar
  7. [GLS94]
    W. Gropp, E. Lusk, and A. Skjellum. Using MPI: Portable Parallel Programming with the Message Passing Interface. Scientific and Engineering Computation. MIT Press, 1994.Google Scholar
  8. [Hen96]
    Michael Hennecke. A Fortran 90 interface to MPI version 1.1. Internal Report 63/96, RZ Uni Karlsruhe, D-76128 Karlsruhe, 10 June 1996.Google Scholar
  9. [KH95]
    Dennis Kafura and Liya Huang. mpi++: A C++ language binding for MPI. In MPI Developers Conference, University of Notre Dame, June 1995.Google Scholar
  10. [MR94]
    M. Metcalf and J. Reid. Fortran 90 Explained. Oxford University Press, 1994.Google Scholar
  11. [Pal93]
    C. Pallot. Object-oriented message passing in Fortran-77. Master's thesis, University of Westminster, 1993.Google Scholar
  12. [Ric93]
    Rice University, Houston, Texas. High Performance Fortran Language Specification, 1.1 edition, May 93.Google Scholar
  13. [SOHL+96]
    M. Snir, S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra. MPI: The Complete Reference. MIT Press, 1996.Google Scholar
  14. [Sol89]
    K. Solchenbach. Fortran for SUPRENUM — an MIMD/SIMD language. Supercomputer, 6(2), March 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Sava Mintchev
    • 1
  • Vladimir Getov
    • 1
  1. 1.School of Computer Science and Information Systems EngineeringUniversity of WestminsterLondonUK

Personalised recommendations