Shared Memory Parallelism in Modern C++ and HPX

被引:0
|
作者
Diehl P. [1 ,2 ]
Brandt S.R. [1 ]
Kaiser H. [1 ]
机构
[1] Center of Computation and Technology, Louisiana State University, Digital Media Center, Baton Rouge, 70803, LA
[2] Department of Physics and Astronomy, Louisiana State University, Baton Rouge, 70803, LA
基金
美国国家科学基金会;
关键词
AMT; C++; HPX; Parallelism;
D O I
10.1007/s42979-024-02769-6
中图分类号
学科分类号
摘要
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. © The Author(s), under exclusive licence to Springer Nature Singapore Pte Ltd. 2024.
引用
收藏
相关论文
共 50 条
  • [1] Shared Memory Parallelism in Modern C plus plus and HPX
    Diehl, Patrick
    Brandt, Steven R.
    Kaiser, Hartmut
    [J]. ASYNCHRONOUS MANY-TASK SYSTEMS AND APPLICATIONS, WAMTA 2023, 2023, 13861 : 27 - 38
  • [2] INSTANTIATION OF C++ OBJECTS IN SHARED MEMORY
    JORDAN, D
    [J]. JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1991, 4 (01): : 21 - 28
  • [3] An asynchronous and task-based implementation of peridynamics utilizing HPX—the C++ standard library for parallelism and concurrency
    Patrick Diehl
    Prashant K. Jha
    Hartmut Kaiser
    Robert Lipton
    Martin Lévesque
    [J]. SN Applied Sciences, 2020, 2
  • [4] SHARED-MEMORY PARALLEL PROGRAMMING IN C++
    BECK, B
    [J]. IEEE SOFTWARE, 1990, 7 (04) : 38 - 48
  • [5] An asynchronous and task-based implementation of peridynamics utilizing HPX-the C++ standard library for parallelism and concurrency
    Diehl, Patrick
    Jha, Prashant K.
    Kaiser, Hartmut
    Lipton, Robert
    Levesque, Martin
    [J]. SN APPLIED SCIENCES, 2020, 2 (12):
  • [6] A C++ pooled, shared memory allocator for simulator development
    Ronell, M
    [J]. 37TH ANNUAL SIMULATION SYMPOSIUM, PROCEEDINGS, 2004, : 187 - 195
  • [7] Bypassing Memory Leak in Modern C++ Realm
    Papp, Dorottya
    Pataki, Norbert
    [J]. ANNALES MATHEMATICAE ET INFORMATICAE, 2018, 48 : 43 - 50
  • [8] Performance of Parallelism in Python and C++
    Arboleda, Francisco Javier Moreno
    Arias, Mateo Rincón
    Riveros, Jesús Antonio Hernández
    [J]. IAENG International Journal of Computer Science, 2023, 50 (02):
  • [9] CAPSULES - A SHARED-MEMORY ACCESS MECHANISM FOR CONCURRENT C/C++
    GEHANI, NH
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 1993, 4 (07) : 795 - 811
  • [10] APPLICATIVE PARALLELISM ON A SHARED MEMORY MULTIPROCESSOR
    OLDEHOEFT, RR
    CANN, DC
    [J]. PROCEEDINGS OF THE TWENTY-FIRST, ANNUAL HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES, VOLS 1-4: ARCHITECTURE TRACK, SOFTWARE TRACK, DECISION SUPPORT AND KNOWLEDGE BASED SYSTEMS TRACK, APPLICATIONS TRACK, 1988, : B135 - B144