Automatic OpenMP loop scheduling: a combined compiler and runtime approach

  • Authors:
  • Peter Thoman;Herbert Jordan;Simone Pellegrini;Thomas Fahringer

  • Affiliations:
  • Distributed and Parallel Systems Group, University of Innsbruck, Innsbruck, Austria;Distributed and Parallel Systems Group, University of Innsbruck, Innsbruck, Austria;Distributed and Parallel Systems Group, University of Innsbruck, Innsbruck, Austria;Distributed and Parallel Systems Group, University of Innsbruck, Innsbruck, Austria

  • Venue:
  • IWOMP'12 Proceedings of the 8th international conference on OpenMP in a Heterogeneous World
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The scheduling of parallel loops in OpenMP has been a research topic for over a decade. While many methods have been proposed, most focus on adapting the loop schedule purely at runtime, and without regard for the overall system state. We present a fully automatic loop scheduling policy that can adapt to both the characteristics of the input program as well as the current runtime behaviour of the system, including external load. Using state of the art polyhedral compiler analysis, we generate effort estimation functions that are then used by the runtime system to derive the optimal loop schedule for a given loop, work group size, iteration range and system state. We demonstrate performance improvements of up to 82% compared to default scheduling in an unloaded scenario, and up to 471% in a scenario with external load. We further show that even in the worst case, the results achieved by our automated system stay within 3% of the performance of a manually tuned strategy.