Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach
Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach
复制标题
自动 OpenMP 循环调度:编译器和运行时相结合的方法
DOI:
--
复制
发表时间:
2012
期刊:
影响因子:
--
通讯作者:
T. Fahringer
中科院分区:
文献类型:
--
作者:
Peter Thoman;Herbert Jordan;Simone Pellegrini;T. Fahringer
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.