OpenMP - AshokBhat/ml 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?
- 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?
- What were the major features?
- Tasks, better support for loop parallelism and nested parallelism
OpenMP 3.1
- When was it standardized?
- 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?
- 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?
- 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?
- What were the major features?
See also