OpenMP
OpenMP is an Application Program Interface (the OpenMP API) for shared-memory parallelism in C, C++, and Fortran programs. See also Pthreads.
For a detailed description of OpenMP, see http://openmp.org/.
Resources
Textbook
Using OpenMP, by: Barbara Chapman, Gabriele Jost and Ruud van der Pas, MIT press, Cambridge, Mass, 2008
This book describes the traditional and for many scientific codes most important concepts of the OpenMP API. The discussion includes performance considerations and common coding mistakes. The book is based on the OpenMP standard 2.5.
Tutorials
- Tim Mattson from Intel created a video tutorial: Introduction to OpenMP. The tutorial is freely available on youtube. This tutorial also discusses more recent concepts such as the OpenMP task construct.
- A good tutorial on the SIMD construct, first introduced in OpenMP 4.0, is available from the[HPC today website
- Blaise Barney provides a tutorial on the Lawrence Livermore National Laboratory's webpage
Standard Specifications
The most recent and earlier versions of the OpenMP standard is available from the OpenMP ARB's website. Starting with OpenMP 4.0 the examples, explaining some of the constructs in-depth, are no longer part of the actual standard document but are available as a separate document.
Experts
These experts have registered specific competence on this subject:
Field | AE FTE | General activities | ||
---|---|---|---|---|
Anders Sjöström (LUNARC) | LUNARC | GPU computing MATLAB General programming Technical acoustics | 50 | Helps users with MATLAB, General programming, Image processing, Usage of clusters |
Chandan Basu (NSC) | NSC | Computational science | 100 | Working on climate and weather codes EU projects IS-ENES and PRACE. |
Joachim Hein (LUNARC) | LUNARC | Parallel programming Performance optimisation | 85 | Parallel programming support Performance optimisation HPC training |
Marcus Lundberg (UPPMAX) | UPPMAX | Computational science Parallel programming Performance tuning Sensitive data | 100 | I help users with productivity, program performance, and parallelisation. I also work with allocations and with sensitive data questions |