ForestGOMP: An OpenMP platform for hierarchical architectures

Runtime

LaBRI, INRIA Bordeaux - Sud-Ouest

High Performance Runtime Systems for Parallel Architectures

Download

Powered By GForge Collaborative Development Environment

ForestGOMP 0.2 has been released and is available for download here.

ForestGOMP sources are available from the GForge page (Subversion repository).

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.

Highlights

  • 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.
IWOMP'09

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

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

French publications can be found here.

Credits


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

Contact

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