Chapter 10 – OpenMP

This chapter proposes a complete overview of OpenMP, including the OpenMP4.0 extensions. The traditional programming model, well adapted to regular parallel patterns, as well as the task-based model deployed since the 3.0 release, adapted to irregular parallel contexts, are described in detail. Particular attention is given to the significant 4.0 extensions of the task API, as well as the pitfalls and best practices related to the task environment. All the other major 4.0 extensions are also reviewed, like the cancellation of parallel constructs, thread affinity, and directives for vectorization and code offloading to external accelerators.