Shared memory parallelism in Modern C++ and HPX
Patrick Diehl, Steven R. Brandt, Hartmut Kaiser

TL;DR
This paper discusses modern C++ features and the HPX library for parallel programming, enabling high-performance code without custom extensions, and provides an overview with examples.
Contribution
It offers an overview of parallel programming in modern C++ and demonstrates how HPX supports standards-compliant high-performance parallel code.
Findings
C++ standards have evolved to support parallel programming on a single node
HPX provides cutting-edge implementations of these standards
Parallel programming can be achieved without custom language extensions
Abstract
Parallel programming remains a daunting challenge, from the struggle to express a parallel algorithm without cluttering the underlying synchronous logic, to describing which devices to employ in a calculation, to correctness. Over the years, numerous solutions have arisen, many of them requiring new programming languages, extensions to programming languages, or the addition of pragmas. Support for these various tools and extensions is available to a varying degree. 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 provides cutting edge implementations of the standards, as well as proposed standards and extensions.…
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.
Code & Models
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
