Skip to main content Link Search Menu Expand Document (external link)

Brief Announcement: (Near) Zero-Overhead {C++} Bindings for {MPI}

DOI pdf code

Abstract

The Message-Passing Interface (MPI) and C++ form the backbone of high-performance computing and algorithmic research in the field of distributed-memory computing, but MPI only provides C and Fortran bindings. This provides good language interoperability, but higher-level programming languages make development quicker and less error-prone.

We propose novel C++ language bindings designed to cover the whole range of abstraction levels from low-level MPI calls to convenient STL-style bindings, where most parameters are inferred from a small subset of the full parameter set. This allows for both rapid prototyping and fine-tuning of distributed code with predictable runtime behavior and memory management. Using template-metaprogramming, only code paths required for computing missing parameters are generated at compile time, which results in (near) zero-overhead bindings.

BibTeX

@inproceedings{Kurpicz2024SPAA,
  author    = {Demian Hespe and Lukas Hübner and Florian Kurpicz and Peter Sanders and Matthias Schimek and Daniel Seemaier and Tim Niklas Uhl},
  title     = {Brief Announcement: (Near) Zero-Overhead {C++} Bindings for {MPI}},
  booktitle = {SPAA},
  pages     = {289--291},
  publisher = {ACM},
  doi       = {10.1145/3626183.3660260},
  year      = {2024}
}

PDF