• DocumentCode
    3543165
  • Title

    A Lightweight C++ Interface to MPI

  • Author

    Pellegrini, Simone ; Prodan, Radu ; Fahringer, Thomas

  • Author_Institution
    Inst. of Comput. Sci., Univ. of Innsbruck, Innsbruck, Austria
  • fYear
    2012
  • fDate
    15-17 Feb. 2012
  • Firstpage
    3
  • Lastpage
    10
  • Abstract
    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.
  • Keywords
    C++ language; FORTRAN; application program interfaces; message passing; object-oriented programming; Boost; C API; C++ interface; C++ programming language; Fortran; MPI; STL containers; generic programming concepts; high performance computing; message passing interface; object oriented programming concepts; software serialization; third-party libraries; Arrays; Containers; Libraries; Performance evaluation; Programming; Semantics; Vectors; C++; MPI programming interface; generic programming;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel, Distributed and Network-Based Processing (PDP), 2012 20th Euromicro International Conference on
  • Conference_Location
    Garching
  • ISSN
    1066-6192
  • Print_ISBN
    978-1-4673-0226-5
  • Type

    conf

  • DOI
    10.1109/PDP.2012.42
  • Filename
    6169522