Abstract
OpenMPÂ [14] is the dominant programming model for shared-memory parallelism in C, C++ and Fortran due to its easy-to-use directive-based style, portability and broad support by compiler vendors. Compute-intensive application regions are increasingly being accelerated using devices such as GPUs and DSPs, and a programming model with similar characteristics is needed here. This paper presents extensions to OpenMP that provide such a programming model. Our results demonstrate that a high-level programming model can provide accelerated performance comparable to that of hand-coded implementations in CUDA.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
AMD: The AMD Fusion Family of APUs (March 2011), http://sites.amd.com/us/fusion
Ayguadé, E., et al.: Extending OpenMP to survive the heterogeneous multi-core era. International Journal of Parallel Programming 38, 440–459 (2010), http://dx.doi.org/10.1007/s10766-010-0135-4 , 10.1007/s10766-010-0135-4
Bailey, D.H., et al.: The NAS parallel benchmarks. International Journal of High Performance Computing Applications 5(3), 63–73 (1991)
CAPS: HMPP (November 2010), http://www.caps-entreprise.com
Clearspeed: Support (November 2010), http://support.clearspeed.com
Han, T.D., Abdelrahman, T.S.: hiCUDA: a high-level directive-based language for gpu programming. In: Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units, GPGPU-2, pp. 52–61. ACM, New York (2009), http://doi.acm.org/10.1145/1513895.1513902
Intel Corp.: Intel C++ Compiler 12.0 User and Reference Guides (March 2011), http://software.intel.com
Intel Corp.: Intel unveils new product plans for high-performance computing (March 2011), http://www.intel.com
Khronos Group: The OpenCL Specification, v. 1.1 (September 2010), http://www.khronos.org/registry/cl/
Lee, S., Eigenmann, R.: OpenMPC: Extended OpenMP Programming and Tuning for GPUs. In: Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010, pp. 1–11. IEEE Computer Society, Los Alamitos (2010), http://dx.doi.org/10.1109/SC.2010.36
MCA: The Multicore Association (2011), http://www.multicore-association.com
Nvidia Corp.: NVIDIA CUDA C Programming Guide, v. 3.2 (2010), http://developer.nvidia.com/object/gpucomputing.html
Nvidia Corp.: What is CUDA (February 2011), http://www.nvidia.com/object/what_is_cuda_new.html
OpenMP ARB: OpenMP Application Program Interface, v. 3.0 (May 2008), http://openmp.org/wp/openmp-specifications
PGI: Accelerator (November 2011), http://www.pgroup.com/resources/accel.htm
PGI: Cuda fortran (March 2011), http://www.pgroup.com/resources/cudafortran.htm
Wang, P.H., et al.: EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system. In: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 156–166. ACM, New York (2007), http://doi.acm.org/10.1145/1250734.1250753
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Beyer, J.C., Stotzer, E.J., Hart, A., de Supinski, B.R. (2011). OpenMP for Accelerators. In: Chapman, B.M., Gropp, W.D., Kumaran, K., MĂĽller, M.S. (eds) OpenMP in the Petascale Era. IWOMP 2011. Lecture Notes in Computer Science, vol 6665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21487-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-21487-5_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21486-8
Online ISBN: 978-3-642-21487-5
eBook Packages: Computer ScienceComputer Science (R0)