November 9 and 10, 2020

Tutorial: C++ for Heterogeneous Programming:
oneAPI
(DPC++ and oneTBB)

This tutorial provides hands-on experience programming CPUs, GPUs and FPGAs using a unified, standards-based programming model: oneAPI. oneAPI includes a cross-architecture language: Data Parallel C++ (DPC++). DPC++ is an evolution of C++ that incorporates the SYCL language with extensions for Unified Shared Memory (USM), ordered queues and reductions, among other features. oneAPI also includes libraries for API-based programming, such as domain-specific libraries, math kernel libraries and Threading Building Blocks (TBB). The main benefit of using oneAPI over other heterogeneous programming models is the single programming language approach, which enables one to target multiple devices using the same programming model, and therefore to have a cleaner, portable, and more readable code.

In the current heterogeneous era, it is still challenging for developers to match computations to accelerators and to coordinate the use of those accelerators in the context of their larger applications. Therefore, this tutorial’s main goal is not just teaching oneAPI as an easier approach to target heterogeneous platforms, but also to convey techniques to map applications to heterogeneous hardware paying attention to the scheduling and mapping problems (how to achieve load balance and which regions of the application are more suitable to each particular device).

Hands-on sessions will be conducted on DevCloud, so we recommend you to get your free DevCloud account in advance by clicking here:

DPC++ Essentials: Execution, Memory and Platform Models
oneTBB+DPC++, Heterogeneos Scheduling and FPGA

Promotional Video

Presenters

James Reinders

James Reinders Consulting LLC, HPC and ML/AI Consultant

Michael Voss

Principal Engineer, Intel Corporation, Austin, TX

Pablo Reble

Software Engineer, Intel Corporation, Austin, TX

Rafael Asenjo

Professor, Dept. of Computer Architecture, Univ. of Malaga, Spain,

James Reinders is leading the effort, with the Intel DPC++ development team, to write a oneAPI book “Data Parallel C++” that will be available by SC’2020 (open access). Michael Voss, Rafael Asenjo and James Reinders are co-authors of the latest book on TBB: “Pro TBB”, Apress 2019 (open access too). Michael Voss and Pablo Reble are members of the engineering team that develops Threading Building Blocks and oneAPI’s Data Parallel Library. Both James Reinders and Rafael Asenjo are long-time, and continuing collaborators of the parallel software teams at Intel. The content for this tutorial is being developed collaboratively to create a unified flow and message and will leverage existing content from previous collaborations such as our SC’17, Euro-Par’17, PPoPP’17 and ’18 tutorials.

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