Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach
- 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
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.
Unable to display preview. Download preview PDF.