Abstract
Parallel processing is increasingly important in scientific software, not only for supercomputer simulations, but also for edge computing applications and intelligently processing experimental data in real time. Due to this expansion in the diversity of hardware being used for next-generation and fused experimental/HPC facilities, productively writing code that performs well across these diverse environments is an increasing concern. To meet this challenge, NVIDIA is working in the Standard C++ Committee to develop a roadmap for C++ Standard Parallelism, a parallel programming model that is portable to all platforms, from massively parallel HPC to many-core embedded systems, while preserving the defining goals of C++: performance and efficiency for most use cases.
Our vision of C++ Standard Parallelism consists of three key components: (1) Common parallel algorithms that dispatch to vendor-optimized parallel libraries; (2) Tools to write your own parallel algorithms that run anywhere; (3) Mechanisms for composing parallel invocations of algorithms into task graphs.
In this paper, we'll dive into this roadmap and how it fits into NVIDIA’s broader strategy that also includes parallelism in ISO Standard Fortran and highly optimized library APIs to enable full-platform scientific productivity. We'll discuss what we already have that you can use today across a wide variety of deployed systems, what's coming down the line, and where the future may lead us.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
COE PP meeting 2016 final report. https://asc.llnl.gov/sites/asc/files/2020-09/COE-PP-Meeting-2016-FinalReport_0.pdf. Accessed 25 May 2021
DOE computation facilities research workshop report February 2020. https://publications.anl.gov/anlpubs/2020/02/158604.pdf. Accessed 25 May 2021
ISO - Benefits of standards. https://www.iso.org/benefits-of-standards.html. Accessed 25 May 2021
Trott, C.R., Hollman, D.S., Sunderland, D., Hoemmen, M.F., Edwards, C., Adelstein-Lelbach, B.: mdspan in C++: a case study in the integration of performance portable features into international language standards. United States (2019)
Stroustrup, B.: The essence of C++. https://youtu.be/86xWvb4XIyE. Accessed 25 May 2021
C++ applications. https://www.stroustrup.com/applications.html. Accessed 25 May 2021
Craig, B.: Freestanding proposal. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0829r4.html. Accessed 25 May 2021
A free function linear algebra interface based on the BLAS. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1673r3.pdf. Accessed 26 May 2021
MDSPAN. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0009r12.html. Accessed 06 June 2021
A unified executors proposal for C++. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0443r14.html. Accessed 26 May 2021
Karlin, I., Keasler, J., Neely, R.: LULESH 2.0 updates and changes, August 2013, pp. 1–9. LLNL-TR-641973 (2013)
UniGeHPFS/stlbm. https://gitlab.com/unigehpfs/stlbm. Accessed 06 May 2021
Latt, J., Coreixas, C., Beny, J.: Cross-platform programming model for many-core lattice Boltzmann simulations. PLoS ONE 16(4), 1–29 (2021)
STD::execution. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2300r1.html. Accessed 27 Sept 2021
Extended floating point types and standard names. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1467r4.html. Accessed 27 Sept 2021
Ranges views as inputs to non-ranges algorithms. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2408r1.html. Accessed 27 Sept 2021
views::cartesian_product. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2374r1.html. Accessed 27 Sept 2021
WD 1539-1 J3/21-007 (Draft Fortran 202x). https://j3-fortran.org/doc/year/21/21-007.pdf. Accessed 05 June 2021
OpenMP API specification: version 5.1. https://www.openmp.org/spec-html/5.1/openmp.html. Accessed 06 June 2021
Charm++ parallel programming framework. https://charm.cs.uiuc.edu/. Accessed 06 June 2021
HPX 1.6.0 documentation. https://hpx-docs.stellar-group.org/latest/html/index.html. Accessed 06 June 2021
Legion overview. https://legion.stanford.edu/overview/. Accessed 06 June 2021
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Lopez, M.G., Hammond, J.R., Wells, J.C., Gibbs, T., Costa, T.B. (2022). Enabling ISO Standard Languages for Complex HPC Workflows. In: Nichols, J., et al. Driving Scientific and Engineering Discoveries Through the Integration of Experiment, Big Data, and Modeling and Simulation. SMC 2021. Communications in Computer and Information Science, vol 1512. Springer, Cham. https://doi.org/10.1007/978-3-030-96498-6_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-96498-6_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-96497-9
Online ISBN: 978-3-030-96498-6
eBook Packages: Computer ScienceComputer Science (R0)