Design, Development, and Validation of DPC++ Back End for OCCA

OCCA—an open source, portable, and vendor-neutral framework for programming parallel architectures—is used by the U.S. Department of Energy and Shell in major scientific and engineering applications. This talk provides insight into the development of a DPC++ back end for OCCA. Integral to this effort is the DPC++ unified shared memory (USM) model. Factors influencing choices related to kernel translation and launching are also discussed. The functional accuracy of an initial implementation of the OCCA DPC++ back end is validated on Intel® GPUs. Finally, ongoing validation and performance analysis efforts are outlined, along with plans for future development.


Anoop Madhusoodhanan Prabha is a senior technical consulting engineer at Intel specializing in heterogeneous computing and code modernization. He holds an master of science degree in electrical engineering from State University of New York at Buffalo.

Cedric Andreolli is an application engineer working on codesign projects at Intel. His expertise includes optimization of HPC workloads as well as application characterization. He holds a master's degree in computer science from INSA in France.

Saumil Sudhir Patel is an assistant computational scientist in the Computational Science Division at Argonne National Laboratory. He holds a PhD in mechanical engineering from The City College of New York.

Kris Rowe is an assistant computational scientist in the Performance Engineering Group at Argonne National Laboratory’s Leadership Computing Facility. He holds a PhD in applied mathematics from the University of Waterloo.