This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
2012 20th Euromicro International Conference on Parallel, Distributed and Network-based Processing
A Lightweight C++ Interface to MPI
Munich, Germany
February 15-February 17
ISBN: 978-0-7695-4633-9
The Message Passing Interface (MPI) provides bindings for the three programming languages commonly used in High Performance Computing (HPC): C, C++ and Fortran. Unfortunately, MPI supports only the lowest common denominator of the three languages, providing a level of abstraction far lower than typical C++ libraries. Lately, after the decision of the MPI committee to deprecate and remove the C++ bindings from the MPI standard, programmers are forced to use either the C API or rely on third-party libraries. In this paper we present a lightweight, header-only C++ interface to MPI which uses object oriented and generic programming concepts to improve its integration into the C++ programming language. We compare our wrapper with a related approach called Boost. MPI showing how MPP facilitates the interaction with C++ objects. Performance wise, MPP outperforms Boost. MPI by reducing the interface overhead by a factor of eight. Additionally, MPP's handling of user-defined data types allows transferring of STL containers (e.g. std::list) up to 20 times faster than Boost. MPI for small linked lists by relying on software serialization.
Index Terms:
MPI programming interface, C++, generic programming
Citation:
Simone Pellegrini, Radu Prodan, Thomas Fahringer, "A Lightweight C++ Interface to MPI," pdp, pp.3-10, 2012 20th Euromicro International Conference on Parallel, Distributed and Network-based Processing, 2012
Usage of this product signifies your acceptance of the Terms of Use.