Speaker: Alastair Murray, Codeplay Title: Heterogeneous Programming in C++: Today and Tomorrow Abstract: Until recently the programming of heterogeneous accelerators, such as GPUs, has largely revolved around low-level programming models that were designed to match the capabilities on the hardware. As heterogeneous programming has become more mainstream the need for higher-level models, based on the requirements of the programmer, has become apparent. Many approaches have appeared, but those extending the C++ programming model have seen the most interest as they manage to provide both high-level abstractions and low-level control if required. This has led to a standardisation of key approaches and proposed attempts to provide a unified hardware description. This talk will describe some of the standardised approaches for parallel and heterogeneous programming in C++ that are appearing today, such as SYCL for OpenCL and the C++17 Parallel STL. Then there will be a more speculative look at how C++ could look when programming forthcoming hardware, such as the Heterogeneous System Architecture (HSA), where the CPU and accelerators are more tightly connected.