OpenMP - AshokBhat/notes GitHub Wiki

About

  • Open Multi-Processing API

FAQ

  • What is OpenMP?
    • Stands for Open Multi-Processing
    • An API
  • What is the use?
    • Write parallel programs for shared memory use-case
    • Parallel programming within a SoC
  • What does it consist of?
    • Compiler directives
    • Library routines
    • Environment variables
  • Which languages are supported?
    • C, C++ and FORTRAN
  • Who should support OpenMP for a program to use it?
    • A compiler should support OpenMP
  • Who drives it?
    • OpenMP Architecture Review Board 
    • A nonprofit technology consortium 

Major versions

OpenMP 3.0

  • When was it released?
    • 2008
  • What were the major features?
    • Tasks, better support for loop parallelism and nested parallelism

OpenMP 3.1

  • When was it standardized?
    • 2011
  • What was the major feature?
    • A mechanism to bind threads to processors.
    • Additions to support optimizations within the OpenMP tasking model.
    • The addition of predefined min and max reduction operators for C++ and C.
    • Extensions to the atomic construct to allow the value of the updated variable to be captured or overwritten.

OpenMP 4.0

  • When was it standardized?
    • 2013
  • What were the major features?
    • Offloading support - GPUs, Xeon Phis...
      • Mechanisms to describe regions of code where data and/or computation should be moved to another computing device
      • Breaks shared memory concept per se
    • SIMD constructs
      • New directives
        • Mark a loop to be executed using SIMD
        • Declare a function that can process multiple arguments using SIMD instructions
        • Marks a loop for thread work-sharing as well as SIMDing
    • Thread affinity - tell where to execute threads

OpenMP 4.5

  • When was it standardized?
    • 2016
  • What were the major features?
    • Task Loop Construct - divide iterations of a loop into tasks
    • Changes in data sharing and offloading

OpenMP 5.0

  • When was it standardized?
    • TBD
  • What were the major features?
    • TBD

See also