Poster 109: A Runtime Approach for Dynamic Load Balancing of OpenMP Parallel Loops in LLVM
TimeThursday, 21 November 20198:30am - 5pm
DescriptionLoad imbalance is the major source of performance degradation in computationally-intensive applications that frequently consist of parallel loops. Efficient scheduling can improve the performance of such programs. OpenMP is the de-facto standard for parallel programming on shared-memory systems. The current OpenMP specification provides only three choices for loop scheduling which are insufficient in scenarios with irregular loops, system-induced interference, or both. Therefore, this work augments the LLVM OpenMP runtime library implementation with eleven ready to use scheduling techniques. We tested existing and added scheduling strategies on several applications from NAS, SPEC OMP 2012, and CORAL2 benchmark suites. Experiments show that implemented scheduling techniques outperform others in certain application and system configurations. We measured performance gains of up to 6% compared to the fastest standard scheduling technique. This work aims to be a convincing step toward beyond-standard scheduling options in OpenMP for the benefit of evolving applications executing on multicore architectures.