Achieving portability and performance through OpenACC

J. A. Herdman, W. P. Gaudin, O. Perks, D. A. Beckingsale, A. C. Mallinson, S. A. Jarvis

Research output: Chapter in Book/Report/Conference proceedingConference contribution

11 Citations (Scopus)

Abstract

OpenACC is a directive-based programming model designed to allow easy access to emerging advanced architecture systems for existing production codes based on Fortran, C and C++. It also provides an approach to coding contemporary technologies without the need to learn complex vendor-specific languages, or understand the hardware at the deepest level. Portability and performance are the key features of this programming model, which are essential to productivity in real scientific applications.OpenACC support is provided by a number of vendors and is defined by an open standard. However the standard is relatively new, and the implementations are relatively immature. This paper experimentally evaluates the currently available compilers by assessing two approaches to the OpenACC programming model: the 'parallel' and 'kernels' constructs. The implementation of both of these construct is compared, for each vendor, showing performance differences of up to 84%. Additionally, we observe performance differences of up to 13% between the best vendor implementations. OpenACC features which appear to cause performance issues in certain compilers are identified and linked to differing default vector length clauses between vendors. These studies are carried out over a range of hardware including GPU, APU, Xeon and Xeon Phi based architectures. Finally, OpenACC performance, and productivity, are compared against the alternative native programming approaches on each targeted platform, including CUDA, OpenCL, OpenMP 4.0 and Intel Offload, in addition to MPI and OpenMP.

Original languageEnglish
Title of host publicationProceedings of WACCPD 2014
Subtitle of host publication1st Workshop on Accelerator Programming Using Directives - Held in Conjunction with SC 2014: The International Conference for High Performance Computing, Networking, Storage and Analysis
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Pages19-26
Number of pages8
ISBN (Electronic)9781479970230
DOIs
Publication statusPublished - 7 Apr 2015
Event1st Workshop on Accelerator Programming Using Directives, WACCPD 2014 - Held in Conjunction with the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2014 - New Orleans, United States
Duration: 17 Nov 2014 → …

Publication series

NameProceedings of WACCPD 2014: 1st Workshop on Accelerator Programming Using Directives - Held in Conjunction with SC 2014: The International Conference for High Performance Computing, Networking, Storage and Analysis

Conference

Conference1st Workshop on Accelerator Programming Using Directives, WACCPD 2014 - Held in Conjunction with the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2014
Country/TerritoryUnited States
CityNew Orleans
Period17/11/14 → …

Bibliographical note

Publisher Copyright:
© 2014 IEEE.

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Achieving portability and performance through OpenACC'. Together they form a unique fingerprint.

Cite this