OpenACC – First Experiences with Real-World Applications
Center for Computing and Communication, JARA, RWTH Aachen University, Germany
EURO-PAR 2012 PARALLEL PROCESSING, Lecture Notes in Computer Science, Volume 7484/2012, 859-870, 2012
@incollection{springerlink:10.1007/978-3-642-32820-6_85,
title={OpenACC – First Experiences with Real-World Applications},
author={Wienke, Sandra and Springer, Paul and Terboven, Christian and an Mey, Dieter},
year={2012},
booktitle={Euro-Par 2012 Parallel Processing},
series={Lecture Notes in Computer Science},
editor={Kaklamanis, Christos and Papatheodorou, Theodore and Spirakis, Paul},
publisher={Springer Berlin / Heidelberg},
isbn={978-3-642-32819-0},
keyword={Computer Science},
pages={859-870},
volume={7484},
url={http://dx.doi.org/10.1007/978-3-642-32820-6_85},
note={10.1007/978-3-642-32820-6_85}
}
Today’s trend to use accelerators like GPGPUs in heterogeneous computer systems has entailed several low-level APIs for accelerator programming. However, programming these APIs is often tedious and therefore unproductive. To tackle this problem, recent approaches employ directive-based high-level programming for accelerators. In this work, we present our first experiences with OpenACC, an API consisting of compiler directives to offload loops and regions of C/C++ and Fortran code to accelerators. We compare the performance of OpenACC to PGI Accelerator and OpenCL for two real-world applications and evaluate programmability and productivity. We find that OpenACC offers a promising ratio of development effort to performance and that a directive-based approach to program accelerators is more efficient than low-level APIs, even if suboptimal performance is achieved.
June 18, 2012 by hgpu