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.
|Open Source||GCC||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.
From GCC 4.4.0, OpenMP 3.0 is fully supported.
From GCC 4.7.0, OpenMP 3.1 is fully supported.
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.
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 AIX V13.1.3 and XL Fortran for AIX V15.1.3 support OpenMP 3.1 and selected features in OpenMP 4.0.
XL C/C++ for Linux V13.1.4 and XL Fortran for Linux V15.1.4 support OpenMP 3.1 and selected features in OpenMP 4.0.
XL C/C++ for Linux V13.1.5 on little endian distributions and XL Fortran for Linux V15.1.15 on little endian distributions (available in Dec 2016) support OpenMP 3.1 and features in OpenMP 4.5 (include device constructs for offloading to NVIDIA GPU).
|Oracle||C/C++ / Fortran||Oracle Developer Studio 12.5 compilers (C, C++, and Fortran) support OpenMP 4.0 features. Compile with -xopenmp.
Platforms: x86/Linux, x86/Solaris, SPARC/Solaris
Tools: Dbx debugger, Thread Analyzer for detecting data races and deadlocks, Code Analyzer for static code analysis, Performance Analyzer for performance profiling
|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
More detailed information
|PGI||C/C++ / Fortran||Support for OpenMP 3.1 in all languages on x86 systems running Linux and OS X, OpenPOWER systems running Linux, and in Fortran and C on Windows/x86. Compile with -mp to enable OpenMP on all platforms.|
|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 17.0 supports OpenMP 3.1. Compile with -openmp.
|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.|
|PathScale||C/C++ / Fortran||Linux 32/64 bit.EKOPath 6: http://www.pathscale.com/EKOPath – CPU only. Fully supports OpenMP 2.5. Supports almost all OpenMP 3.x and 4.0, no OpenMP4 offload directives support.
ENZO2016: http://www.pathscale.com/ENZO – CPU+GPU – Fully supports OpenMP 2.5. Supports almost all OpenMP 3.x and 4.0, includes OpenMP4 offloading
|Cray||Cray C/C++ and Fortran||Cray Compiling Environment (CCE) 8.5 (June 2016) supports OpenMP 4.0, with OpenMP 4.5 support for device constructs. OpenMP is on by default.
|NAG||nagfor||NAG Fortran Compiler 6.1 supports OpenMP 3.1 on x86 and x64, for Linux, Mac and Windows. Compile with –openmp.
|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: http://web.cs.uh.edu/~openuh/index.shtml|
|LLVM||clang||Clang is an open-source (permissively licensed) C / C++ compiler that is available to download at http://llvm.org/releases/download.html. The Clang 3.9 release supports all non-offloading features of OpenMP 4.5. Offloading support is under development and expected to become available in a future version.
Compile and link your code with
|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.|
|Appentra Solutions parallware compiler||Parallware Suite C/C++||Parallware Suite provides the tool Parallware Trainer, an interactive, real-time desktop tool that facilitates teaching, learning, and the usage of parallel programming using directives of OpenMP 4.0.|
OpenMP 3.0 is supported on TI’s Keystone I family of Multicore C66x Digital Signal Processor (DSP) SoCs using the Multicore Software Development Kit MCSDK-C66 22.214.171.124.
OpenMP 3.0 with the device constructs from OpenMP 4.0 is supported on TI’s Keystone II family of C66x+Cortex-A15 SoCs using MCSDK-K2 126.96.36.199
MCSDK downloads: http://www.ti.com/tool/bioslinuxmcsdk
|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
|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