Modernizing the c++ interface to MPI

  • Authors:
  • Prabhanjan Kambadur;Douglas Gregor;Andrew Lumsdaine;Amey Dharurkar

  • Affiliations:
  • Open Systems Laboratory, Indiana University;Open Systems Laboratory, Indiana University;Open Systems Laboratory, Indiana University;Open Systems Laboratory, Indiana University

  • Venue:
  • EuroPVM/MPI'06 Proceedings of the 13th European PVM/MPI User's Group conference on Recent advances in parallel virtual machine and message passing interface
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Message Passing Interface (MPI) is the de facto standard for writing message passing applications. Much of MPI's power stems from its ability to provide a high-performance, consistent interface across C, Fortran, and C++. Unfortunately, with cross-language consistency at the forefront, MPI tends to support only the lowest common denominator of the three languages, providing a level of abstraction far lower than typical C++ libraries. For instance, MPI does not inherently support standard C++ constructs such as containers and iterators, nor does it provide seamless support for user-defined classes. To map these common C++ constructs into MPI, programmers must often write non-trivial boiler-plate code and weaken the type-safety guarantees provided by C++. This paper describes several ideas for modernizing the C++ interface to MPI, providing a more natural syntax along with seamless support for user-defined types and C++ Standard Library constructs. We also sketch the C++ techniques required to implement this interface and provide a preliminary performance evaluation illustrating that our modern interface does not imply unnecessary overhead.