An extension of C++ with memory-centric specifications for HPC to reduce memory footprints and streamline MPI development
Pawel K. Radtke, Cristian G. Barrera-Hinojosa, Mladen Ivkovic, Tobias Weinzierl

TL;DR
This paper introduces a C++ language extension with attributes for memory optimization and MPI datatype modeling, aiming to reduce memory footprints and improve HPC development efficiency, demonstrated through smoothed particle hydrodynamics benchmarks.
Contribution
It proposes a standard-compatible language extension for memory-efficient data structures and MPI integration in C++, implemented in LLVM.
Findings
Significant memory reduction in data structures.
Improved performance in HPC benchmarks.
Enhanced developer productivity with new attributes.
Abstract
C++ leans towards a memory-inefficient storage of structs: The compiler inserts padding bits, while it is not able to exploit knowledge about the range of integers, enums or bitsets. Furthermore, the language provides no support for arbitrary floating-point precisions. We propose a language extension based upon attributes through which developers can guide the compiler what memory arrangements would be beneficial: Can multiple booleans or integers with limited range be squeezed into one bit field, do floating-point numbers hold fewer significant bits than in the IEEE standard, and is a programmer willing to trade attribute ordering guarantees for a more compact object representation? The extension offers the opportunity to fall back to normal alignment and native C++ floating point representations via plain C++ assignments, no dependencies upon external libraries are introduced, and the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Advanced Data Storage Technologies
