November 2020

Conference Paper

CCAMP: An Integrated Translation and Optimization Framework for OpenACC and OpenMP

By:
Lambert, Jacob; Lee, Seyong ; Vetter, Jeffrey S; Malony, Allen
Page Number:
1387-1400
Volume:
1
Book Title:
The International Conference for High Performance Computing, Networking, Storage, and Analysis
Publication Date:
November 4, 2020
Publisher Location:
IEEE, District of Columbia, United States of America
Conference Name:
The International Conference for High Performance Computing, Networking, Storage, and Analysis (SC 2020)
Conference Location:
Atlanta, Georgia, United States of America
Conference Sponsor:
IEEE
View DOI Listing:
https://doi.org/10.1109/SC41405.2020.00102

Abstract

Heterogeneous computing and exploration into specialized accelerators are inevitable in current and future supercomputers. Although this diversity of devices is promising for performance, the array of architectures presents programming challenges. High-level programming strategies have emerged to face these challenges, such as the OpenMP offloading model and OpenACC. The varying levels of support for these standards, however, 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. To address these shortcomings, we present CCAMP, an OpenMP and OpenACC interoperable framework. CCAMP provides two primary facilities: language translation between the two standards and device-specific directive optimization within each standard. We show that by using the CCAMP framework, programmers can easily transplant non-portable code into new ecosystems for new architectures. Additionally, by using CCAMP device-specific directive optimizations, users can achieve optimized performance across architectures using a single source code.