gf ForestGOMP

ForestGOMP: An OpenMP platform for hierarchical architectures

LaBRI, INRIA Bordeaux - Sud-Ouest

WARNING: ForestGOMP is not maintained anymore, it is obsolete.


ForestGOMP sources are available from here

ForestGOMP depends on the Marcel threading library. v2.91 of Marcel is specially tailored to support ForestGOMP and is available for download here.

ForestGOMP Overview

ForestGOMP is an OpenMP runtime compatible with GCC 4.2, offering a structured way to efficiently execute OpenMP applications onto hierarchical (NUMA) architectures.


  • Topology-aware OpenMP thread scheduling, thanks to the Marcel library topology discovery feature.

  • Local scheduling of groups of OpenMP related threads, to take advantage of hierarchical cache memory reuse and data locality.

  • Scalable, topology-aware barrier construct.

Based on BubbleSched

  • Automatic bubble (BubbleSched schedulable groups of threads) generation out of OpenMP parallel regions to preserve OpenMP teammates relations at execution time.

  • A combination of bubble schedulers, currently Cache (formerly known as Affinity) and Memory.

  • NUMA-aware combined scheduling of threads and data; the Memory bubble scheduler is able to migrate threads and accessed memory across NUMA nodes, in which the Cache bubble scheduler operates.

Implementation details

ForestGOMP extends the GNU OpenMP run-time support, aka. libgomp, that leverages Marcel's lightweight threads; it currently implements libgomp's ABI as found in GCC 4.2 (GOMP_1.0 and OMP_1.0 symbol versions);

Related Publications

Structuring the execution of OpenMP applications for multicore architectures [WWW]
Proceedings of 24th IEEE International Parallel and Distributed Processing Symposium (IPDPS'10)

ForestGOMP: an efficient OpenMP environment for NUMA architectures [WWW]
International Journal on Parallel Programming, Special Issue on OpenMP, 2010

Dynamic Task and Data Placement over NUMA Architectures: an OpenMP Runtime Perspective. [WWW]
François Broquedis, Nathalie Furmento, Brice Goglin, Raymond Namyst, and Pierre-André Wacrenier.

Scheduling Dynamic OpenMP Applications over Multicore Architectures. [WWW]
François Broquedis, François Diakhaté, Samuel Thibault, Olivier Aumage, Raymond Namyst, and Pierre-André Wacrenier.

An Efficient OpenMP Runtime System for Hierarchical Architectures. [WWW]
Samuel Thibault, François Broquedis, Brice Goglin, Raymond Namyst, and Pierre-André Wacrenier.

French publications can be found here.


The main contributors of this project are François Broquedis and Ludovic Courtès.

Documentation and Related Links

More information about BubbleSched

Papers related to ForestGOMP/Marcel


For any questions regarding ForestGOMP, please contact François Broquedis.