A collaboration between Oak Ridge National Laboratory (ORNL) and the University of Oregon completed the initial work on the CCAMP project, an OpenACC and OpenMP interoperable framework. The project consisted of two primary components: translation passes to seamlessly flow between the two standards, and optimization passes to generate specialized code for heterogeneous architectures.
Significance and Impact
OpenMP and OpenACC are poised to be popular programming models on upcoming systems, for example DOE supercomputing machines like Frontier and Aurora. However, typically applications accelerated with these directives are either not performance portable between machines, or not portable at all. The CCAMP framework addresses these challenges by implementing a performance portability and optimization layer within an open-source compiler of the two standards.
- The work designs and implements CCAMP Translation, an automatic framework that transforms OpenMP 4+ to OpenACC and vice versa
- The work designs and implements CCAMP Optimization, a general optimization strategy to map computations to devices in a way preferred by the back-end compilers;
- The work evaluates the proposed framework across an array of devices (e.g., Intel Xeon CPU, IBM Power 9, Nvidia P100, V100) and compilers (e.g., clang, PGI, XLC, GCC) by using the SPEC Accel Benchmark Suite, two kernel benchmarks, and LULESH 2.0
- The work compares and evaluates OpenMP 4+ and OpenACC performance variability.
Citation and DOI
J. Lambert, S. Lee, J. S. Vetter, A. D. Malony. CCAMP: An Integrated Translation and Optimization Framework for OpenACC and OpenMP, Supercomputing (2020); DOI: pending
High-level programming models are a necessity on future high-performance systems. However, with the diversity of accelerators and hardware vendors, performance portability of applications across the space of machines becomes a major challenge. CCAMP addresses this challenge by allowing applications to seamlessly flow between directive-based standards and by generating optimized code for specific devices.
Last Updated: February 17, 2021 - 10:08 am