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
OpenMP.org
Introduction to OpenMP
OpenMP Exercises
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



6 responses so far ↓
1 OpenMP Workshop Presentations Online // Jun 22, 2009 at 6:10 am
[...] Parallel Programming Tutorial Series - Part 4 - OpenMP [...]
2 Parallel Programming Tutorial Series - Part 6 - TBB // Jul 19, 2009 at 6:38 pm
[...] have linked so far. Basic parallel computing tutorial MapReduce tutorial Cell processor programming OpenMP tutorial PThreads [...]
3 Parallel Programming Tutorial Series - Part 7 - MPI // Aug 1, 2009 at 7:26 am
[...] have linked so far. Basic parallel computing tutorial MapReduce tutorial Cell processor programming OpenMP tutorial PThreads Tutorials Intel Threading Building [...]
4 Parallel Programming Tutorial Series - Part 9 - OpenC4 // Aug 24, 2009 at 5:37 am
[...] have linked so far. Basic parallel computing tutorial MapReduce tutorial Cell processor programming OpenMP tutorial PThreads Tutorials Intel Threading Building Blocks MPI [...]
5 Parallel Programming Tutorial Series - Part 9 - OpenCL (Updated) // Mar 26, 2011 at 6:18 am
[...] have linked so far. Basic parallel computing tutorial MapReduce tutorial Cell processor programming OpenMP tutorial PThreads Tutorials Intel Threading Building Blocks MPI [...]
6 Parallel Programming Tutorial Series - Part 8 - CUDA (Updated) // Apr 2, 2011 at 4:28 am
[...] published so far. Basic parallel computing tutorial MapReduce tutorial Cell processor programming OpenMP tutorial PThreads Tutorials Intel Threading Building Blocks MPI CUDA (Original post, updated here) [...]