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.
Similar content being viewed by others
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)