Live briefing
Everything about OpenMP
Open standard for parallelizing
OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, Windows and OpenHarmony. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: OpenMPA 5-minute orientation
- Skim a recent paper: GPU-enabled extreme-scale turbulence simulations: Fourier pseudo-spectral algorithms at the exascale using OpenMP offloadingInfluential work since 2022
- Pick up a classic book: OpenMPThe most-reprinted book on the subject
- Read the landmark paper: OpenMP: an industry standard API for shared-memory programmingCited 2,639 times
- Go sideways: Automatic parallelization toolA closely related topic
- Go sideways: CilkA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
OpenMP: an industry standard API for shared-memory programming
The Design of OpenMP Tasks
A hybrid MPI–OpenMP scheme for scalable parallel pseudospectral computations for fluid turbulence
High performance computing using MPI and OpenMP on multi-core parallel systems
Big Data Analytics in the Cloud: Spark on Hadoop vs MPI/OpenMP on Beowulf
Efficient parallel CFD-DEM simulations using OpenMP
OpenMP to GPGPU
Hybrid CUDA, OpenMP, and MPI parallel programming on multicore GPU clusters
🆕 Influential since 2022
GPU-enabled extreme-scale turbulence simulations: Fourier pseudo-spectral algorithms at the exascale using OpenMP offloading
OpenMP application experiences: Porting to accelerated nodes
Accelerating Coupled-Cluster Calculations with GPUs: An Implementation of the Density-Fitted CCSD(T) Approach for Heterogeneous Computing Architectures Using OpenMP Directives
Porting Fragmentation Methods to Graphical Processing Units Using an OpenMP Application Programming Interface: Offloading the Fock Build for Low Angular Momentum Functions
OpenMP Parallel Finite-Discrete Element Method for Modeling Excavation Support with Rockbolt and Grouting
📚 Books worth reading
OpenMPSimon Hoffmann, Rainer Lienhart · 2008
Beyond loop level parallelism in OpenMPIWOMP 2010 (2010 Tsukuba-shi, Japan) · 2010
OpenMP in a new era of parallelismIWOMP 2008 (2008 West Lafayette, Ind.) · 2008
Openmp In The Petascale Era 7th International Workshop On Openmp Iwomp 2011 Chicago Il Usa June 1315 2011 ProceedingsWilliam D. Gropp · 2011
Introduction to concurrency in programming languagesMatthew Sottile, Craig E. Rasmussen · 2008
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Automatic parallelization tool An automatic parallelization tool is a computer program aiding in automatic parallelization of existing sequential (single-threaded) code into parallel…
- Cilk Cilk, Cilk++, Cilk Plus and OpenCilk are general-purpose programming languages designed for multithreaded parallel computing. They are based on the C and…
- OpenACC OpenACC (for open accelerators) is a programming standard for parallel computing developed by Cray, CAPS, Nvidia and PGI. The standard is designed to simplify…
- Automatic parallelization Automatic parallelization, also auto-parallelization or autoparallelization, is a compiler optimization in which a compiler or other software tool transforms…
- Single program, multiple data In computing, single program, multiple data (SPMD) is a term that has been used to refer to computational models for exploiting parallelism whereby multiple…
- Privatization (computer programming) Privatization is a technique used in shared-memory programming to enable parallelism, by removing dependencies that occur across different threads in a…
- OpenHMPP OpenHMPP (HMPP for Hybrid Multicore Parallel Programming) - programming standard for heterogeneous computing. Based on a set of compiler directives, standard…
- Data parallelism Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different…