KaMPIng: Flexible and (Near) Zero-Overhead C++ Bindings for MPI

Abstract:

The Message-Passing Interface (MPI) and C++ form the backbone of high-performance computing, but MPI only provides C and Fortran bindings. While this offers great language interoperability, high-level programming languages like C++ make software development quicker and less error-prone.We propose novel C++language bindings that cover all abstraction levels from low-level MPI calls to convenient STL-style bindings, where most parameters are inferred from a small subset of parameters, by bringing named parameters to C++. This enables rapid prototyping and fine-tuning runtime behavior and memory management. A flexible type system and additional safety guarantees help to prevent programming errors.By exploiting C++’s template metaprogramming capabilities, this has (near) zero overhead, as only required code paths are generated at compile time.We demonstrate that our library is a strong foundation for a future distributed standard library using multiple application benchmarks, ranging from text-book sorting algorithms to phylogenetic interference.

SEEK ID: https://publications.h-its.org/publications/1901

DOI: 10.1109/SC41406.2024.00050

Research Groups: Computational Molecular Evolution

Publication type: Proceedings

Journal: SC24: International Conference for High Performance Computing, Networking, Storage and Analysis

Book Title: SC24: International Conference for High Performance Computing, Networking, Storage and Analysis

Publisher: IEEE

Citation: SC24: International Conference for High Performance Computing, Networking, Storage and Analysis,pp.1-21,IEEE

Date Published: 17th Nov 2024

Registered Mode: by DOI

Authors: Tim Niklas Uhl, Matthias Schimek, Lukas Hübner, Demian Hespe, Florian Kurpicz, Daniel Seemaier, Christoph Stelz, Peter Sanders

help Submitter
Citation
Uhl, T. N., Schimek, M., Hübner, L., Hespe, D., Kurpicz, F., Seemaier, D., Stelz, C., & Sanders, P. (2024). KaMPIng: Flexible and (Near) Zero-Overhead C++ Bindings for MPI. In SC24: International Conference for High Performance Computing, Networking, Storage and Analysis (pp. 1–21). IEEE. https://doi.org/10.1109/sc41406.2024.00050
Activity

Views: 4

Created: 9th Jan 2025 at 10:12

Last updated: 9th Jan 2025 at 10:13

help Tags

This item has not yet been tagged.

help Attributions

None

Powered by
(v.1.15.2)
Copyright © 2008 - 2024 The University of Manchester and HITS gGmbH