OpenMP
This page contains information on GCC's implementation of the OpenMP standard and related functionality like the auto parallelizer (-ftree-parallelize-loops).
As of GCC 4.2, the compiler implements version 2.5 of the OpenMP standard and as of 4.4 it implements version 3.0 of the OpenMP standard. The OpenMP 3.1 draft is being implemented in the [[http://gcc.gnu.org/viewcvs/branches/gomp-3_1-branch/|gomp-3_1-branch]].
OpenMP Documentation
Documentation on libgomp (OpenMP runtime for GCC).
Automatic Parallelization
(-ftree-parallelize-loops)
- Streamization
TODO List
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.
Fix PR 35423 (missing parts of OpenMP WORKSHARE).
Fine tune the auto scheduling feature for parallel loops.
Implement untied tasks (no compliance issue; needs to be well tuned to be actually faster; cf. page 53 of pdf) - see also next item
Tasks need some tuning in taskwait. Cf. GCC email, comparison. Algorithms: PDF 1, PDF 2, PDF 3
Note: There is a GSoC 2011 project regarding task and untied tasks
OpenMP v3.1 -- draft spec available (since February 7, 2011); note than work on OpenMP v3.1 has started on the gomp-3_1-branch
OpenMP 4.0 -- when available. Cf. slides at the IWOMP, the International Workshop for OpenMP (slides and tutorials) in June 2010 and the OWOMP 2010 proceedings. There is also a blog entry.