A number of compilers from various vendors or open source communities implement the OpenMP API. If we are missing any please Contact Us with your suggestions.

 

Vendor/Source Compiler/Language Information
Absoft Pro Fortran Fortran Versions 11.1 and later of the Absoft Fortran 95 compiler for Linux, Windows and Mac OS X include integrated OpenMP 3.0 support. Version 18.0 supports OpenMP 3.1.  Compile with -openmp.

»More information

Appentra Solutions Parallware

C/C++

The Parallware tools include the Parallware Trainer, an interactive, real-time desktop tool that facilitates teaching, learning, and the usage of parallel programming using directives of OpenMP 4.5.

»More Information

ARM C/C++/Fortran Available on Linux

C/C++ – Support for OpenMP 3.1 and all non-offloading features of OpenMP 4.0/4.5. Offloading features are under development.
Fortran – Full support for OpenMP 3.1 and limited support for OpenMP 4.0/4.5.

Compile and link your code with -fopenmp
»More information

Barcelona Supercomputing Center Mercurium

C/C++/Fortran

Mercurium is a source-to-source research compiler that is available to download at https://github.com/bsc-pm/mcxx

OpenMP 3.1 is almost fully supported for C,  C++, Fortran. Apart from that,  almost all tasking features introduced in newer versions of OpenMP are also supported.    »More Information

Cray CCE

C/C++/Fortran

Cray Compiling Environment (CCE) 8.6 (June 2017) supports OpenMP 4.5 for C, C++ and Fortran. OpenMP is on by default.

»More information on OpenMP Support in Cray C and C++ compilers
»More information on OpenMP Support in Cray Fortran compiler

Flang Flang

Fortran

Fortran for LLVM.  Substantially full OpenMP 4.5 on Linux/x86-64, Linux/ARM, Linux/OpenPOWER.

TARGET regions are mapped to the multicore host CPU as the target with PARALLEL and DISTRIBUTE loops parallelized across all OpenMP threads. Known limitations:  SIMD and DECLARE SIMD have no effect on SIMD code generation;  TASK DEPEND/PRIORITY, TASKLOOP FIRSTPRIVATE/LASTPRIVATE, DECLARE REDUCTION and the LINEAR/SCHEDULE/ORDERED(N) clauses on the LOOP construct are not supported.

Compile with -mp to enable OpenMP on all platforms.

»More information on Flang.

GNU GCC

C/C++/Fortran

Free and open source – Linux, Solaris, AIX, MacOSX, Windows, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, HPUX, RTEMS

From GCC 4.2.0, OpenMP 2.5 is fully supported for C/C++/Fortran.
From GCC 4.4.0, OpenMP 3.0 is fully supported for C/C++/Fortran.
From GCC 4.7.0, OpenMP 3.1 is fully supported for C/C++/Fortran.
In GCC 4.9.0, OpenMP 4.0 is supported for C and C++, but not Fortran.
From GCC 4.9.1, OpenMP 4.0 is fully supported for C/C++/Fortran.
From GCC 6.1, OpenMP 4.5 is fully supported for C and C++.
Compile with -fopenmp to enable OpenMP.
Online documentation: https://gcc.gnu.org/onlinedocs/libgomp/
OpenMP support history: https://gcc.gnu.org/projects/gomp/

IBM XL

C/C++/Fortran

XL C/C++ for Linux V13.1.5 and XL Fortran for Linux V15.1.5 support a subset of OpenMP 4.5 features that include the target constructs.
Compile with -qsmp=omp to enable OpenMP directives and with  -qoffload for offloading the target regions to GPUs.
For more information, please visit IBM XL C/C++ for Linux and IBM XL Fortran for Linux.
Intel C/C++/Fortran Windows, Linux, and MacOSX.

OpenMP 3.1 C/C++/Fortran fully supported in version 12.0, 13.0, 14.0 compilers
OpenMP 4.0 C/C++/Fortran supported in version 15.0 and 16.0 compilers
OpenMP 4.5 C/C++/Fortran supported in version 17.0 compilers
OpenMP 4.5 C/C++/Fortran supported in version 18.0 compilers
Compile with -Qopenmp on Windows, or just -openmp or -qopenmp on Linux or Mac OSX

»More detailed information

Lahey/Fujitsu Fortran 95 C/C++/Fortran The compilers in the software package of ‘Technical Computing Suite for the PRIMEHPC FX100′ support OpenMP 3.1.

»More information

LLNL Rose Research Compiler C/C++/Fortran ROSE is a source-to-source research compiler supporting OpenMP 3.0 and some OpenMP 4.0 accelerator features targeting NVIDIA GPUs.
»More information
LLVM Clang

C/C++

Clang is an open-source (permissively licensed) C / C++ compiler that is available to download at http://llvm.org/releases/download.html. Since Clang 3.9 and later support all non-offloading features of OpenMP 4.5. Offloading support is under development and is expected to become available in a future version.

Compile and link your code with -fopenmp

NAG Nagfor

Fortran

NAG Fortran Compiler 6.1 supports OpenMP 3.1 on x86 and x64, for Linux, Mac and Windows. Compile with –openmp.
»More Information
OpenUH Research Compiler C/C++/Fortran The OpenUH 3.x compiler has a full open-source implementation of OpenMP 2.5 and near-complete support for OpenMP 3.0 (including explicit task constructs) on Linux 32-bit or 64-bit platforms. For more information or to download: https://github.com/uhhpctools/openuh
Oracle C/C++/Fortran Oracle Developer Studio 12.5 compilers (C, C++, and Fortran) support OpenMP 4.0 features.
More information at http://www.oracle.com/technetwork/server-storage/developerstudio/overview/index.html
Compile with -xopenmp.  Use -xvpara for static correctness checking and -xloopinfo for loop level messages.
Use the er_src tool to get more detailed information.
PGI C/C++/Fortran Support for substantially full OpenMP 4.5 in Fortran/C/C++ on Linux/x86-64 and Linux/OpenPOWER.  TARGET regions are implemented with default support for the multicore host as the target, and PARALLEL and DISTRIBUTE loops are parallelized across all OpenMP threads.  Known limitations:  SIMD and DECLARE SIMD have no effect on SIMD code generation;  TASKLOOP, TASK DEPEND/PRIORITY, DECLARE REDUCTION and the LINEAR/SCHEDULE/ORDERED(N) clauses on the LOOP construct are not supported.

Support for full OpenMP 3.1 in Fortran/C/C++ on MacOS/x86-64, and in Fortran/C on Windows/x86-64.  Compile with -mp to enable OpenMP on all platforms.

»More information on PGI compilers.

Texas Instruments C The TI cl6x compiler v8.x supports OpenMP 3.0 for multicore C66x on TI’s Keystone I family of Multicore C667x/C665x Digital Signal Processor (DSP) SoCs using the Processor-SDK-RTOS.

The Linaro toolchain (gcc) 6.2.1 supports OpenMP 4.5 for multicore Cortex-A15 on TI’s AM572x and Keystone II family (K2H/K2K, K2E, K2L, K2G) SoCs using the Processor-SDK-Linux.

The TI clacc v1.x compiler supports OpenMP 3.0 and device constructs from OpenMP 4.0 heterogeneous multicore Cortex-A15+C66x-DSP on TI’s AM572x and Keystone II family (K2H/K2K, K2E, K2L, K2G) SoCs using both the Processor-SDK-Linux (A15) and Processor-SDK-RTOS (C66x).

See here for the latest versions of the Processor-SDKs for various TI SoCs:  http://processors.wiki.ti.com/index.php/Processor_SDK_Supported_Platforms_and_Versions