SC21 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

ISO C++ 20, 23, and 26 for HPC

Authors: Hal Finkel (DOE Office of Advanced Scientific Computing Research, US Department of Energy), Michael Wong (Codeplay Software Ltd, Foundation)

Abstract: ISO C++ continues to serve as the top 4 language based on Tiobe rating, and C/C++ is used in 79.4% of parallel programming language based on Hyperion 2021 research HPC Briefing at ISC 2021. After last four years’ successful ISO C++ for HPC BoF and with increasing use of C++ in Exascale computing, there was popular demand for continuing updates of the main C++20 features. This includes Concepts, ML, mdspan, library, and concurrency features.

This BoF will provide updates on what is in C++20 and also look ahead on what is possible for C++23, 26.

Long Description: ISO C++ continues to serve as the top 4 language based on Tiobe rating, and C/C++ is used in 79.4% parallel programming language models based on Hyperion 2021 research HPC Briefing at ISC 2021 (slide 15). After the last four years’ (SC17, SC18, SC19, SC20) successful C++ for HPC BoF, there was popular demand for continuing updates on the progress of adding HPC capabilities into ISO C++. This is especially important with the increasing use of C++ within DOE’s Exascale computing project. C++20 has been released, and this BoF will provide updates from active participants in the standardization process based on the C++20 International Standard that was issued in December 2020.

This BoF will pull together important leader within ISO C++ Standard that are co-authors in key C++20 features such as Concepts, ML, mdspan, library and Concurrency while continuing to poll for audience participation and response, answering key design questions based on the open community question banks that were collected from the audience last year but were not answered due to lack of time.

This feedback will help us design the best capabilities into future ISO C++ suitable for HPC, building on the many current languages/libraries that pre-date and support this effort that have implemented heterogeneous and distributed C++ features (e.g. Kokkos, Raja, SYCL, HPX, C++AMP, HCC, Boost.Compute and CUDA). This BoF will address the needs of the HPC community where a number of C++ frameworks have been developed for multi-threaded and distributed applications. The C++11/14/17/20 international standards have introduced new tools for parallel programming, and the ongoing standardization effort is developing additional features that will enable support for parallelism in ISO C++ 23. This BoF is an ideal place to discuss research in this domain, consolidate usage experience, and share new directions to support new hardware and memory models with the aim of passing that experience to ISO C and C++. In this BoF our C++ experts will devote all the time to answer questions based on audience contributions. This BoF is based on a set of successful BoFs from SC with their slide presentation and question banks: SC17 Heterogeneous C++:, SC 18 18 Heterogeneous C++:, SC 19 SYCL:, SC 20 SYCL and C++: C++ Tab

This BoF is targeted to developers of C++ based programming models for exascale research, users and designers of distributed and heterogeneous programming models for C/C++, ISO standard members, and DOE and worldwide research lab members (e.g. CERN, BSC, CSSC) with workloads in C++ looking for a native language solution.


Back to Birds of a Feather Archive Listing