Shared memory parallelism in Modern C++ and HPX

01/16/2023
by   Patrick Diehl, et al.
0

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. 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.

READ FULL TEXT
research
01/19/2022

How ISO C became unusable for operating systems development

The C programming language was developed in the 1970s as a fairly unconv...
research
04/24/2020

Retrofitting Parallelism onto OCaml

OCaml is an industrial-strength, multi-paradigm programming language, wi...
research
01/14/2018

Hierarchical Memory Management for Mutable State

It is well known that modern functional programming languages are natura...
research
02/01/2013

Proceedings of the 12th International Colloquium on Implementation of Constraint and LOgic Programming Systems

This volume contains the papers presented at CICLOPS'12: 12th Internatio...
research
07/31/2023

Verified Scalable Parallel Computing with Why3

BSML is a pure functional library for the multi-paradigm language OCaml....
research
08/01/2022

Design and Implementation of ShenWei Universal C/C++

The ShenWei many-core series processors powering multiple cutting-edge s...
research
01/26/2022

Fifty Years of Prolog and Beyond

Both logic programming in general, and Prolog in particular, have a long...

Please sign up or login with your details

Forgot password? Click here to reset