Definition
OpenMP is an application programming interface for parallelizing sequential programs written in C, C++, and Fortran on shared-memory platforms. It provides a collection of compiler directives, a runtime library, and environment variables to enable programmers to specify the parallelism they desire to exploit in a program.
Discussion
Introduction
The OpenMP Application Programming Interface (API) is a parallel programming model for shared-memory computer systems intended to provide a straight-forward means of exploiting concurrency inherent in many algorithms. With the insertion of compiler directives, the programmer directs the compiler to parallelize portions of the code at a high level.
Originally designed to target loop-centric algorithms, version 3.0 of the API introduced the ability to define explicit tasks that may be executed concurrently. The OpenMP API is an agreement among hardware and software vendors that make up the OpenMP Architecture Review Board (ARB). The...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
OpenMP Application Program Interface, Ver. 3.0, May 2008. http://www.openmp.org
Ayguad E et al (2009) A proposal to extend the OpenMP tasking model for heterogeneous architectures. In: Evolving openMP in an age of extreme parallelism; 5th International Workshop on OpenMP, IWOMP 2009, Dresden, Germany, vol 5568/2009. Lecture Notes in Computer Science, Springer, Berlin/Heidelberg, pp 154–167
Ayguad E et al (2009) The design of OpenMP tasks. Parallel Distributed Syst. IEEE Trans, 20(3):404–418
Chandra R, Dagum L, Kohr D, Maydan D, McDonald J, Menon R (2000) Parallel programming in OpenMP. Morgan Kaufmann, San Francisco
Chapman B, Huang L, Biscondi E, Stotzer E, Shrivastava A, Gatherer A (2009) Implementing OpenMP on a high performance embedded multicore MPSoC on a high performance embedded multicore mpsoc. In: IPDPS ’09: proceedings of the 2009 IEEE international symposium on parallel and distributed processing. IEEE Computer Society, Washington, DC, pp 1–8
Chapman B, Gabriele Jost, Ruud van der Pas. (2008) Using OpenMP: Portable Shared Memory Parallel Programming. MIT Press, Cambridge, MA London
Compunity (2009) cOMPunity – the community of OpenMP users. http://www.compunity.org/
Duran A, Corbaln J, Ayguad E (2008) Evaluation of OpenMP task scheduling strategies. In: OpenMP in a new era of parallelism, vol 5004/2008. Lecture Notes in Computer Science, Springer, Heidelberg, pp 100–110
Itzkowitz M, Mazurov O, Copty N, Lin Y (2007) An OpenMP runtime API for profiling. Technical report, Sun Microsystems http://developers.sun.com/solaris/articles/omp-api.html
Parallel Computing Forum (1991) PCF parallel Fortran extensions. V5.0.ACM Sigplan Fortran Forum 10(3):1–57
Nanjegowda R, Hernandez O, Chapman B, Jin HH (2009) Scalability evaluation of barrier algorithms for OpenMP. In: Evolving OpenMP in an age of extreme parallelism, vol 5568/2009, IWOMP, Lecture Notes in Computer Science, Springer, Heidelberg, pp 42–52
Su E, Tian X, Girkar M, Haab G, Shah S, Petersen P (2002) Compiler support of the workqueuing execution model for Intel SMP architectures. In: The Fourth European Workshop on OpenMP. Rome, Italy
Terboven C, an Mey D, Sarholz S (2008) OpenMP on multicore architectures. In: IWOMP ’07: proceedings of the 3rd international workshop on OpenMP, Springer, Berlin Heidelberg, pp 54–64
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Chapman, B., LaGrone, J. (2011). OpenMP. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_50
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_50
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering