In response to the demand for heterogeneous programming models for C/C++, and the interest in driving these models in ISO C++, the SYCL Workshop has been morphed into Distributed & Heterogeneous Programming in C/C++ to include all the programming models that have been designed to support heterogeneous programming in C and C++.
SYCL is a new Khronos specification for heterogeneous computing built on top of OpenCL and C++. The SYCL 1.2 specification was published on May 2015, and the current SYCL 2.2 specification has been published on February 2016. Behind these two specifications, there has been an important community effort ongoing for more than five years. Now with the specifications available and with Codeplay releasing their ComputeCpp Community Edition.
But many other models now exist including HPX, KoKKos, Raja, C++AMP, HCC, Boost.Compute, and CUDA to name a few. This conference aims to address the needs of both HPC and the consumer/embedded community where a number of C++ parallel programming frameworks have been developed to address the needs of multi-threaded and distributed applications. The C++11/14/17 International Standards have introduced new tools for parallel programming to the language, and the ongoing standardization effort is developing additional features which will enable support for heterogeneous and distributed parallelism into ISO C++ 20/23. This conference 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 workshop is based on a set of successful tutorials and workshops in different conferences, such as the SYCL tutorial at Stanford University during IWOCL and the first SYCL workshop at PPoPP’16 as well as the Berkeley Heterogeneous C++ Summit in 2016.
There is a separate workshop at SuperComputing that involves directive-based acceleration, Workshop on Accelerator Programming Using Directives (WACCPD) and one at ISC (Workshop on Performance Portable Programming Models for Accelerators) which covers many of the Performance Portability concerns of a broader set of models (P^3MA). In contrast DHPCC++ will focus on the needs of C and C++ due to the need to drive for ISO Standardization.
The 1st Distributed & Heterogeneous Programming for C/C++ (DHPCC++) Workshop will take place on the workshop track of the International Workshop on OpenCL (IWOCL 17). IWOCL 2017 will be held in Toronto, Canada, on May 16-18, 2017.
Registration for DHPCC++’17 may be completed on the the IWOCL 2017 Conference website.
Submissions: March 17 , 2017 Notification: April 7, 2017 Final version: April 21, 2017 Workshop: May 16, 2017
All submissions must be made electronically through the conference submission site, at https://easychair.org/cfp/dhpcc17. Submissions may be one of the following:
- Extended abstract: Two pages in standard SIGPLAN two-column conference format (preprint mode, with page numbers)
- Short Paper: Four to six pages in standard SIGPLAN two-column conference format (preprint mode, with page numbers)
Submissions must be in PDF format and printable on US Letter size paper. All submissions will be peer-reviewed by at least two members of the program committee. We will aim to give longer presentation slots to papers than to extended abstracts. Conference papers will not be published, but made available through the website, alongside the slides used for each presentation. The aim is to enable authors to get feedback and ideas that can later go into other publications. We will encourage questions and discussions during the workshop, to create an open environment for the community to engage with.
Topics of Interest
Topics of interest include, but are not limited to:
- Future Heterogeneous programming C/C++ proposals (SYCL, Kokkos, Raja, HPX, C++AMP, Boost.Compute, CUDA …)
- ISO C/C++ related proposals and development including current related concurrency, parallelism, coroutines, executors
- C/C++ programming models for OpenCL
- Language Design Topics such as parallelism model, data model, data movement, memory layout, target platforms, static and dynamic compilation
- Applications implemented using these models including Neural Network, machine vision, HPC, CFD as well as exascale applications
- C/C++ Libraries using these models
- New proposals to any of the above specifications
- Integration of these models with other programming models
- Compilation techniques to optimize kernels using any of (clang, gcc, ..) or other compilation systems
- Performance or functional comparisons between any of these programming models
- Implementation of these models on novel architectures (FPGA, DSP, …) such as clusters, NUMA and PGAS
- Using these models in fault-tolerant systems
- Porting applications from one model to the other
- Reports on implementations
- Research on Performance Portability
- Debuggers, profilers and other tools
- Usage in a Safety security context
- Applications implemented using similar models
- Other C++ Frameworks such as Chombo, Charm++ C++ Actor Framework, UPC++ and similar
- Paul Keir, University of the West of Scotland (UK)