Skip to main content
MPI as a Coordination Layer for Communicating HPF Tasks
College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects
  • Ian Foster, Argonne National Laboratory, Math and Computer Science Division
  • David R. Kohr, Argonne National Laboratory, Math and Computer Science Division
  • Rakesh Krishnaiyer, Syracuse University
  • Alok Choudhary, Syracuse University
Document Type
  • Data-parallel languages,
  • High Performance Fortran,
  • Parallel program development,
  • Message Passing Interface,
  • MPI
Data-parallel languages such as High Performance Fortran (HPF) present a simple execution model in which a single thread of control performs high-level operations on distributed arrays. These languages can greatly ease the development of parallel programs. Yet there are large classes of applications for which a mixture of task and data parallelism is most appropriate. Such applications can be structured as collections of data-parallel tasks that communicate by using explicit message passing. Because the Message Passing Interface (MPI) defines standardized, familiar mechanisms for this communication model, we propose that HPF tasks communicate by making calls to a coordination library that provides an HPF binding for MPI. The semantics of a communication interface for sequential languages can be ambiguous when the interface is invoked from a parallel language; we show how these ambiguities can be resolved by describing one possible HPF binding for MPI. We then present the design of a library that implements this binding, discuss issues that influenced our design decisions, and evaluate the performance of a prototype HPF/MPI library using a communications microbenchmark and application kernel. Finally, we discuss how MPI features might be incorporated into our design framework.
Citation Information
Ian Foster, David R. Kohr, Rakesh Krishnaiyer and Alok Choudhary. "MPI as a Coordination Layer for Communicating HPF Tasks" (1996)
Available at:
Creative Commons License
Creative Commons Attribution 3.0