SC22 Proceedings

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

Birds of a Feather Archive

What Is Coming in ISO C++ 23, and 26 for HPC and Future Directions

Authors: Michael Wong (Codeplay Software Ltd, UK; Foundation), Hal Finkel (US Department of Energy)

Abstract: After 3 years of working through the pandemic, ISO C++ continues to commit to drive towards C++23. 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 languages based on Hyperion 2021 research HPC Briefing at ISC 2021. After the last five 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 C++23, 26.

Long Description: After 3 years of working through the pandemic, ISO C++ continues to drive towards C++23 release. In fact, the major features design has already closed by early 2022 according to our schedule with the remaining 2022/early 2023 working on integration and final drive to close language wording. In fact, we will be fresh from the Kona F2F meeting the week before and will likely have put out the C++23 Committee Draft so we will bring he hot-off-the-press status of what made it into C++23.

In the 2021, Office of Sciences ASCR workshop, Neil Thomson's excellent keynote pointed to the end of Dennard Scaling would mean Specialization is more attractive now that CPUs are improving slowly but volume is needed to be worth designing specialized chips these days. that we need more specialized devices. In this year’s DOE Programming Systems Research Forum, two of the top breakouts topics were Language parallelism and Performance Portability. These are areas that ISO C++ is working hard to support with the help of many DOE members, as well as European HPC participants.

All these points to more need for C++ parallelism, and ultimately support for acceleration. Some of this is shown in the upcoming Concurrency TS2 which contains more lock-free libraries.

After the last five years’ (SC17, SC18, SC19, SC20, SC21) 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.

This BoF will pull together important leader within ISO C++ Standard that are co-authors in key C++23 features such as ML, executors, 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, HiP, 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++. This BoF is targeted to developers of C++ based programming models, users and designers of distributed and heterogeneous programming models for C/C++, ISO standard members, 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