As part of parallel programming tutorial series, we linked to Blaise Barney’s parallel computing tutorial, to MapReduce tutorial, and to an MIT course on Cell processor programming. In this post, we provide links to OpenMP API, a portable, scalable model for developers of shared memory parallel applications.
Among many tutorials available online for OpenMP, Blaise Barney of Lawrence Livermore National Laboratory provides an illustrative and easy to understand way to explain the basics of OpenMP. A few highlights of OpenMP programming model.
* OpenMP is based upon the existence of multiple threads in the shared memory programming paradigm. A shared memory process consists of multiple threads.
* OpenMP is an explicit (not automatic) programming model, offering the programmer full control over parallelization.
* OpenMP uses the fork-join model of parallel execution
* All OpenMP programs begin as a single process: the master thread. The master thread executes sequentially until the first parallel region construct is encountered.
* FORK: the master thread then creates a team of parallel threads
* The statements in the program that are enclosed by the parallel region construct are then executed in parallel among the various team threads
* JOIN: When the team threads complete the statements in the parallel region construct, they synchronize and terminate, leaving only the master thread
More Tutorial Links
A “Hands-on” Introduction to OpenMP [pdf] by Tim Mattson and Meadows, from SC08
Introduction to OpenMP
NERSC OpenMP Tutorial
Using OpenMP (Book)
An Overview of OpenMP - Ruud van der Pas [pdf]
More tutorials from OpenMP.org
OpenMP Resources from OpenMP.org