OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran. It consists of a set of compiler directives, library routines, and environment variables that influence the code’s run-time behavior. OpenMP uses a portable, scalable model that gives programmers a simple and flexible interface for developing parallel applications for platforms ranging from the standard desktop computer to the supercomputer.
An application built with the hybrid model of parallel programming can run on a computer cluster using both OpenMP and Message Passing Interface (MPI), such that OpenMP is used for parallelism within a (multi-core) node while MPI is used for parallelism between nodes. History
OpenMP is managed by the nonprofit technology consortium OpenMP Architecture Review Board (or OpenMP ARB), jointly defined by a group of major computer hardware and software vendors. They publised its first API specifications in October 1997. The latest version specification (
4.5) released in 2015 adds/ improves supports for accelerators, atomics, error handling, thread affinity, tasking extensions, user defined reduction, SIMD support, and so on.
Getting the OpenMP
All the latest OpenMP versions are integrated with the recent GNU compilers (
4.9 and above), no need to install them separately!