An Efficient OpenMP Loop Scheduler for Irregular Applications on Large-Scale NUMA Machines
Abstract
Nowadays shared memory HPC platforms expose a large number of cores organized in a hierarchical way. Parallel application programmers strug- gle to express more and more fine-grain parallelism and to ensure locality on such NUMA platforms. Independent loops stand as a natural source of paral- lelism. Parallel environments like OpenMP provide ways of parallelizing them efficiently, but the achieved performance is closely related to the choice of pa- rameters like the granularity of work or the loop scheduler. Considering that both can depend on the target computer, the input data and the loop workload, the application programmer most of the time fails at designing both portable and ef- ficient implementations. We propose in this paper a new OpenMP loop scheduler, called adaptive, that dynamically adapts the granularity of work considering the underlying system state. Our scheduler is able to perform dynamic load balancing while taking memory affinity into account on NUMA architectures. Results show that adaptive outperforms state-of-the-art OpenMP loop schedulers on memory- bound irregular applications, while obtaining performance comparable to static on parallel loops with a regular workload.
Fichier principal
IWOMP2013.pdf (4.01 Mo)
Télécharger le fichier
kmeans-perf.jpg (64.08 Ko)
Télécharger le fichier
runs.jpg (48.59 Ko)
Télécharger le fichier
Origin | Files produced by the author(s) |
---|
Format | Figure, Image |
---|
Format | Figure, Image |
---|
Loading...