Skip to main content
SHARE
Publication

CCAMP: OpenMP and OpenACC Interoperable Framework...

by Jacob B Lambert, Seyong Lee, Allen Malony, Jeffrey S Vetter
Publication Type
Conference Paper
Book Title
Euro-Par 2019: Parallel Processing Workshops
Publication Date
Page Numbers
357 to 369
Publisher Location
Switzerland
Conference Name
Workshop on Algorithms, Models and Tools for Parallel Computing on Heterogeneous Platforms (HeteroPar), in conjunction with Euro-Par19
Conference Location
Göttingen, Germany
Conference Sponsor
Euro-Par
Conference Date
-

Heterogeneous systems have become a staple of the HPC environment. Several directive-based solutions, such as OpenMP and OpenACC, have been developed to alleviate the challenges of programming heterogeneous systems, and these standards strive to provide a single portable programming solution across heterogeneous environments. However, in many ways this goal has yet to be realized due to device-specific implementations and different levels of language support across compilers. In this framework we aim to analyze and address the different levels of optimization and compatibility between OpenACC and OpenMP programs and device compilers. We introduce the CCAMP framework, built on the OpenARC compiler, which implements language translation between OpenACC and OpenMP, with the goal of exploiting the maturity of different device-specific compilers to maximize performance for a given architecture. We show that CCAMP allows us to generate code for a specific device-compiler combination given a device-agnostic OpenMP or OpenACC program, allowing compilation and execution of programs with specific directives on otherwise incompatible devices. CCAMP also provides a starting point for a more advanced interoperable framework that can effectively provide directive translation and device, compiler, and application specific optimizations.