||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 will be supported for C and C++, but not Fortran.
Compile with -fopenmp to enable OpenMP.
Online documentation: https://gcc.gnu.org/onlinedocs/libgomp/
OpenMP support history: https://gcc.gnu.org/projects/gomp/
||XL C/C++ / Fortran
||From XL C/C++ compiler version 12.1 and XL Fortran compiler version 14.1, OpenMP 3.1 is fully supported.
From XL C/C++ compiler version 13.1 and XL Fortran compiler version 15.1, OpenMP 4.0 is partially supported on AIX and Linux
From XL C/C++ compiler version 13.1.2 and XL Fortran compiler version 15.1.1, OpenMP 4.0 is partially supported on Linux (little endian).
||C/C++ / Fortran||Oracle Solaris Studio compilers and tools - free download for Solaris and Linux.Oracle Solaris Studio 12.4 compilers support OpenMP 4.0 Compile with -xopenmp »Solaris Studio »OpenMP User’s Guide »Tools: Thread Analyzer | Performance Analyzer|
||C/C++ / Fortran||Windows, Linux, and MacOSX.
OpenMP 3.1 fully supported in version 12 compilers.
OpenMP 4.0 supported in version 16 compilers.
Compile with -Qopenmp on Windows, or just -openmp on Linux or Mac OSX
|»PGI||C/C++ / Fortran||Support for OpenMP 3.1 in all languages on x86 systems running Linux and OS X, and in Fortran and C on Windows. Compile with -mp to enable OpenMP on all platforms.
»More Information on PGI Compilers
|»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. Compile with -openmp. More information: http://www.absoft.com/resources/mpi-resources/|
|»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
|»MS||Visual Studio 2008-2010 C++||Implements OpenMP 2.0 Not all versions support OpenMP. Visual Studio 2008 supports OpenMP in the Standard, Professional and Team System Editions. Visual Studio 2010 supports OpenMP in the Professional, Premium and Ultimate Editions. »More Information|
|»Cray||Cray C/C++ and Fortran||Cray Compiling Environment (CCE) 8.4 (September 2015) supports OpenMP 4.0. OpenMP is on by default.
|»NAG||nagfor||NAG Fortran Complier 6.0 supports OpenMP 3.0 and 3.1 on x86. For x64 Linux, x64 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: http://web.cs.uh.edu/~openuh/index.shtml|
|»LLVM||clang||Clang is an open-source (permissively licensed) C++ compiler that is available to download at http://llvm.org/releases/download.html. Clang 3.7 release supports OpenMP 3.1 and some elements of OpenMP 4.0 (most notably #pragma omp simd). Compile and link with
|»LLNL Rose Research Compiler||C/C++/Fortran||Supports OpenMP 3.0 and some OpenMP 4.0 accelerator features targetting NVIDIA GPUs.
|»Appentra Solutions parallware compiler||C||The compiler Parallware version 1.2 is a commercial source-to-source parallelizing compiler for Linux. It converts input C sequential source code into output C parallel source code annotated with directives OpenMP 2.5.
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
||C/C++/Fortran||From Mercurium version 1.99, OpenMP 3.1 is supported except: the collapse clause, the threadprivate clause in Fortran and OpenMP 3.1 new atomics. More information: http://pm.bsc.es/openmp|
Test Your Compiler and Environment
Here is a trivial test program that you can use to test your compiler and environment (file hello.c):
Compilation should proceed with no errors or warnings. Execute the output, called variously
hello.exe . You should see more than one “Hello” line with different thread numbers. Note that the lines may be mixed together. If you see only one, try setting the environment variable
OMP_NUM_THREADS to some number (say 4) and try again.