Brief Announcement: (Near) Zero-Overhead {C++} Bindings for {MPI}
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}
}