Shared Memory Parallelism in Modern C++ and HPX
Document Type
Article
Publication Date
6-1-2024
Abstract
Parallel programming remains a daunting challenge, from struggling to express a parallel algorithm without cluttering the underlying synchronous logic to describing which tools to employ to ensure a calculation is performed correctly. Over the years, numerous solutions have arisen, requiring new programming languages, extensions to programming languages, or adding pragmas. Support for these various tools and extensions is available to varying degrees. In recent years, the C++ standards committee has worked to refine the language features and libraries needed to support parallel programming on a single computational node. Eventually, all major vendors and compilers will provide robust and performant implementations of these standards. Until then, the HPX library and runtime provide cutting-edge implementations of the standards and proposed standards and extensions. Because of these advances, it is now possible to write high performance parallel code without custom extensions to C++. We provide an overview of modern parallel programming in C++, describing the language and library features and providing brief examples of how to use them.
Publication Source (Journal or Book title)
SN Computer Science
Recommended Citation
Diehl, P., Brandt, S., & Kaiser, H. (2024). Shared Memory Parallelism in Modern C++ and HPX. SN Computer Science, 5 (5) https://doi.org/10.1007/s42979-024-02769-6