Shared Memory Parallelism in Modern C plus plus and HPX

被引:0
作者
Diehl, Patrick [1 ,2 ]
Brandt, Steven R. [1 ]
Kaiser, Hartmut [1 ]
机构
[1] Louisiana State Univ, Ctr Computat & Technol, Baton Rouge, LA 70803 USA
[2] Louisiana State Univ, Dept Phys & Astron, Baton Rouge, LA 70803 USA
来源
ASYNCHRONOUS MANY-TASK SYSTEMS AND APPLICATIONS, WAMTA 2023 | 2023年 / 13861卷
基金
美国国家科学基金会;
关键词
C plus; HPX; parallel libraries and programming language standards; Parallelism;
D O I
10.1007/978-3-031-32316-4_3
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:27 / 38
页数:12
相关论文
共 12 条
  • [1] Parallel programmability and the Chapel language
    Chamberlain, B. L.
    Callahan, D.
    Zima, H. P.
    [J]. INTERNATIONAL JOURNAL OF HIGH PERFORMANCE COMPUTING APPLICATIONS, 2007, 21 (03) : 291 - 312
  • [2] Ebcioglu K., 2004, P INT WORKSH LANG RU, V30
  • [3] Kokkos: Enabling manycore performance portability through polymorphic memory access patterns
    Edwards, H. Carter
    Trott, Christian R.
    Sunderland, Daniel
    [J]. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2014, 74 (12) : 3202 - 3216
  • [4] The Performance Implication of Task Size for Applications on the HPX Runtime System
    Grubel, Patricia
    Kaiser, Hartmut
    Cook, Jeanine
    Serio, Adrian
    [J]. 2015 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING - CLUSTER 2015, 2015, : 682 - 689
  • [5] Kaiser H, 2020, J OPEN SOURCE SOFTW, V5, P2352, DOI [10.21105/joss.02352, DOI 10.21105/JOSS.02352]
  • [6] KALE LV, 1993, SIGPLAN NOTICES, V28, P91, DOI 10.1145/167962.165874
  • [7] HPX Smart Executors
    Khatami, Zahra
    Troska, Lukas
    Kaiser, Hartmut
    Ramanujam, J.
    Serio, Adrian
    [J]. PROCEEDINGS OF ESPM2 2017: THIRD INTERNATIONAL WORKSHOP ON EXTREME SCALE PROGRAMMING MODELS AND MIDDLEWARE, 2017,
  • [8] Scheduling optimization of parallel linear algebra algorithms using Supervised Learning
    Laberge, Gabriel
    Shirzad, Shahrzad
    Diehl, Patrick
    Kaiser, Hartmut
    Prudhomme, Serge
    Lemoine, Adrian S.
    [J]. PROCEEDINGS OF 2019 5TH IEEE/ACM WORKSHOP ON MACHINE LEARNING IN HIGH PERFORMANCE COMPUTING ENVIRONMENTS (MLHPC 2019), 2019, : 31 - 43
  • [9] A taxonomy of task-based parallel programming technologies for high-performance computing
    Thoman, Peter
    Dichev, Kiril
    Heller, Thomas
    Iakymchuk, Roman
    Aguilar, Xavier
    Hasanov, Khalid
    Gschwandtner, Philipp
    Lemarinier, Pierre
    Markidis, Stefano
    Jordan, Herbert
    Fahringer, Thomas
    Katrinis, Kostas
    Laure, Erwin
    Nikolopoulos, Dimitrios S.
    [J]. JOURNAL OF SUPERCOMPUTING, 2018, 74 (04) : 1422 - 1434
  • [10] Wu NM, 2022, Arxiv, DOI [arXiv:2207.12127, 10.48550/ARXIV.2207.12127, DOI 10.48550/ARXIV.2207.12127]