Skip to main content

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1512))

Included in the following conference series:

  • 1152 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

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

  2. DOE computation facilities research workshop report February 2020. https://publications.anl.gov/anlpubs/2020/02/158604.pdf. Accessed 25 May 2021

  3. ISO - Benefits of standards. https://www.iso.org/benefits-of-standards.html. Accessed 25 May 2021

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

    Google Scholar 

  5. Stroustrup, B.: The essence of C++. https://youtu.be/86xWvb4XIyE. Accessed 25 May 2021

  6. C++ applications. https://www.stroustrup.com/applications.html. Accessed 25 May 2021

  7. Craig, B.: Freestanding proposal. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0829r4.html. Accessed 25 May 2021

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

  9. MDSPAN. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0009r12.html. Accessed 06 June 2021

  10. A unified executors proposal for C++. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0443r14.html. Accessed 26 May 2021

  11. Karlin, I., Keasler, J., Neely, R.: LULESH 2.0 updates and changes, August 2013, pp. 1–9. LLNL-TR-641973 (2013)

    Google Scholar 

  12. UniGeHPFS/stlbm. https://gitlab.com/unigehpfs/stlbm. Accessed 06 May 2021

  13. Latt, J., Coreixas, C., Beny, J.: Cross-platform programming model for many-core lattice Boltzmann simulations. PLoS ONE 16(4), 1–29 (2021)

    Article  Google Scholar 

  14. STD::execution. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2300r1.html. Accessed 27 Sept 2021

  15. Extended floating point types and standard names. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1467r4.html. Accessed 27 Sept 2021

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

  17. views::cartesian_product. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2374r1.html. Accessed 27 Sept 2021

  18. WD 1539-1 J3/21-007 (Draft Fortran 202x). https://j3-fortran.org/doc/year/21/21-007.pdf. Accessed 05 June 2021

  19. OpenMP API specification: version 5.1. https://www.openmp.org/spec-html/5.1/openmp.html. Accessed 06 June 2021

  20. Charm++ parallel programming framework. https://charm.cs.uiuc.edu/. Accessed 06 June 2021

  21. HPX 1.6.0 documentation. https://hpx-docs.stellar-group.org/latest/html/index.html. Accessed 06 June 2021

  22. Legion overview. https://legion.stanford.edu/overview/. Accessed 06 June 2021

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to M. Graham Lopez .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics