Difference between revisions of "OpenMP"

From SNIC Documentation
Jump to: navigation, search
(Added direct links to standard and Example documents)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:Parallel programming]]
 
[[Category:Parallel programming]]
  
OpenMP is an Application Program Interface (the OpenMP API) for shared-memory parallelism in C, C++, and Fortran programs. See also [[Pthreads]].
+
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/.
 
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 [https://www.youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG 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 [http://www.hpctoday.com/hpc-labs/explicit-vector-programming-with-openmp-4-0-simd-extensions/ HPC today website]
 +
 +
* Blaise Barney provides a tutorial on the Lawrence Livermore National Laboratory's [https://computing.llnl.gov/tutorials/openMP/ webpage]
 +
 +
=== Standard Specifications ===
 +
The most recent and earlier versions of the OpenMP standard is available from the OpenMP ARB's [http://www.openmp.org/specifications/ website]. 
 +
* [http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf OpenMP 4.5 standard]
 +
* [http://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf OpenMP 4.0 standard]
 +
* [http://www.openmp.org/wp-content/uploads/OpenMP3.1.pdf OpenMP 3.1 standard]
 +
 +
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 documents. 
 +
* [http://www.openmp.org/wp-content/uploads/openmp-examples-4.5.0.pdf OpenMP 4.5 examples]
 +
* [http://www.openmp.org/wp-content/uploads/openmp-examples-4.0.2.pdf OpenMP 4.0 examples]
  
 
== Experts ==
 
== Experts ==
 
{{list experts}}
 
{{list experts}}

Latest revision as of 14:40, 31 January 2017


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 documents.

Experts

These experts have registered specific competence on this subject:

  FieldAE FTEGeneral activities
Anders Sjöström (LUNARC)LUNARCGPU computing
MATLAB
General programming
Technical acoustics
50Helps users with MATLAB, General programming, Image processing, Usage of clusters
Chandan Basu (NSC)NSCComputational science100Working on climate and weather codes
EU projects IS-ENES and PRACE.
Joachim Hein (LUNARC)LUNARCParallel programming
Performance optimisation
85Parallel programming support
Performance optimisation
HPC training
Marcus Lundberg (UPPMAX)UPPMAXComputational science
Parallel programming
Performance tuning
Sensitive data
100I help users with productivity, program performance, and parallelisation. I also work with allocations and with sensitive data questions