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
Views: 4
Created: 9th Jan 2025 at 10:12
Last updated: 9th Jan 2025 at 10:13
This item has not yet been tagged.
None