<span class="var-sub_title">Distributed and Heterogeneous Programming in C++ for HPC 2018</span> SC18 Proceedings

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

Distributed and Heterogeneous Programming in C++ for HPC 2018


Authors: Hal Finkel (Argonne National Laboratory), Michael Wong (Codeplay Software Ltd)

Abstract: After last year's successful Heterogeneous and Distributed Computing in C++ for HPC BoF, there was popular demand for continuing updates on the progress of adding these capabilities into ISO C++. We are close to finalizing C++20, and this BoF will provide updates from active participants in the standardization process on what is possible for C++20 and for C++23.

There are a number of C++ frameworks for parallel programming, including HPX, KoKKos, Raja, C++AMP, HCC, Boost.Compute, CUDA, and more. SYCL, from Khronos, provides heterogeneous computing built on OpenCL and C++, and Codeplay has released ComputeCpp Community Edition.


Long Description: After last year`s successful Heterogeneous & Distributed Computing in C++ for HPC BoF, there was popular demand for continuing updates on the progress of adding these capabilities into ISO C++. We are close to finalizing C++20, and this BoF will provide updates from active participants in the standardization process on what is possible for C++20 and for C++23.

As promised in last year’s BoF, a paper was published in DHPCC++ workshop by the two co-chairs and presented at an IWOCL workshop in 2018. http://www.iwocl.org/iwocl-2018/dhpcc/ This BoF will pull together similar important leader within C++ that are developing Executors, futures, as well as key proposals that support our goal, while continue 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 (other then the top 3 polled choices) due to lack of time: goo.gl/yh1ytV We will follow a similar format as last year: goo.gl/y5HQQH

This feedback will help us design the best capabilities into future ISO C++ in addition to the many current languages that pre-date and support this effort. These include SYCL, a Khronos specification for heterogeneous computing built on top of OpenCL and C++. It intends to be a testbed for future C++ heterogeneous features, integrating its experience into ISO C++ future design while adapting ISO C++ features into SYCL. The latest version is SYCL 1.2.1 revision 3 which was published on July 19, 2018 (the first version was published on December 6, 2017 and now there is a Conformance Test Suite and Adopters package. With these specifications available, Codeplay is releasing their ComputeCpp Community Edition. Many other models also exist, including HPX, KoKKos, Raja, 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 international standards have introduced new tools for parallel programming, and the ongoing standardization effort is developing additional features that will enable support for heterogeneous and distributed parallelism in ISO C++ 20/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 based on a set of successful tutorials and workshops from different conferences, such as the SYCL tutorial at Stanford University during IWOCL 2016 and the first SYCL workshop at PPoPP’16 as well as the Berkeley Heterogeneous C++ Summit in 2016. There is now also a workshop focused on this effort at IWOCL 2017, linking Khronos and ISO C++ standardization in a workshop called DHPCC++: http://sycl.tech/distributed-heterogeneous-programming-in-c-cpp-dhpccpp17.html

This BoF is targeted to C++ developers 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/C++ looking for a native language solution.





Back to Birds of a Feather Archive Listing