Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach

  • Peter Thoman
  • Herbert Jordan
  • Simone Pellegrini
  • Thomas Fahringer
Conference paper

DOI: 10.1007/978-3-642-30961-8_7

Part of the Lecture Notes in Computer Science book series (LNCS, volume 7312)
Cite this paper as:
Thoman P., Jordan H., Pellegrini S., Fahringer T. (2012) Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach. In: Chapman B.M., Massaioli F., Müller M.S., Rorro M. (eds) OpenMP in a Heterogeneous World. IWOMP 2012. Lecture Notes in Computer Science, vol 7312. Springer, Berlin, Heidelberg

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Peter Thoman
    • 1
  • Herbert Jordan
    • 1
  • Simone Pellegrini
    • 1
  • Thomas Fahringer
    • 1
  1. 1.Distributed and Parallel Systems GroupUniversity of InnsbruckInnsbruckAustria

Personalised recommendations