1 of 1

CCAMP: Integrated Translation and Optimization for OpenACC and OpenMP

Bi-directional translation and optimizations between OpenMP and OpenACC using CCAMP

OpenARC System Architecture

Jacob Lambert, Mohammad Alaul Haque Monil, Seyong Lee, Allen Malony, and Jeffrey S. Vetter, Leveraging Compiler-Based Translation to Evaluate a Diversity of Exascale Platforms, P3HPC: Performance, Portability & Productivity in HPC, in conjunction to SC22, 2022.

Scientific Achievement

Developed an integrated OpenACC and OpenMP interoperable framework, which allows 1) translation and optimization between OpenACC and OpenMP and 2) intermixing of OpenACC and OpenMP, to increase the portability of applications across diverse heterogeneous architectures.

.

Significance and Impact

High-level programming strategies such as OpenMP and OpenACC have emerged to address heterogeneous computing issues. However, the varying levels of support for these standards within vendor-specific and open-source tools, as well as the lack of performance portability across devices, have prevented the standards from achieving their goals.

Technical Approach

  • Develop CCAMP, which provides interoperability between OpenMP and OpenACC by facilitating language translation and directive optimization.
    • Language translation between the two standards
    • Device-specific directive optimization within each standard
  • Extend CCAMP to support low-level programming models such as CUDA, HIP, and OpenCL through direct translation from OpenACC/OpenMP.
  • Study various optimizations to better map computations to the target device in a way preferred by the back-end compilers on the given device.