OpenMP

This page contains information on GCC's implementation of the OpenMP specification and related functionality like the auto parallelizer (-ftree-parallelize-loops).

As of GCC 4.2, the compiler implements version 2.5 of the OpenMP specification, as of 4.4 it implements version 3.0 and since GCC 4.7 it supports the OpenMP 3.1 specification. GCC 4.9 supports OpenMP 4.0 for C/C++, GCC 4.9.1 also for Fortran. GCC 5 adds support for Offloading. OpenMP 4.5 is supported for C/C++ since GCC 6 and since GCC 7 for Fortran (with omissions, largest missing item is structure element mapping). Since GCC 9, there is initial OpenMP 5 support (essentially C/C++, only). GCC 10 added some more features, mainly for C/C++ but also for Fortran.

GCC 11 extended the Fortran compiler to fully support OpenMP 4.5 and support more OpenMP 5.0; additionally, nonrectangular loops are now supported. GCC 12 has a growing support of OpenMP 5.0 and first support of OpenMP 5.1 features.

GCC 13 has a still growing support of OpenMP 5.0, extends the support of OpenMP 5.1 features and very limited first support of OpenMP 5.2 features.

GCC 14 (current release) is extending OpenMP 5.x support, mostly by integrating features from the OG12/OG13 branches.

OG13 branch (branch: 'devel/omp/gcc-13': Based on the GCC 13 release branch, OG13 contains several commits extending the OpenMP, OpenACC, and offloading support. Those additions are either only in GCC mainline/14 or still have to be upstreamed. In particular, OG13 supports metadirectives and unified-shared memory (all scheduled for GCC 14 integration).

See also

Release Notes

OpenMP Documentation

Automatic Parallelization

(-ftree-parallelize-loops)

Test Suites and Benchmarks

TODO List

(Outdated!)

Feel free to add new items to this list as you run into issues or features that would be interesting to add. Send mail to the list and/or the GCC OpenMP maintainers if any item in this list sounds interesting but is hard to understand.

None: openmp (last edited 2023-11-13 08:20:53 by TobiasBurnus)