Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach

Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach
复制标题

自动 OpenMP 循环调度:编译器和运行时相结合的方法

DOI:
--
复制
发表时间:
2012
期刊:
International Workshop on OpenMP
影响因子:
--
通讯作者:
T. Fahringer
T. Fahringer
中科院分区:
--
文献类型:
--
作者:
Peter Thoman;Herbert Jordan;Simone Pellegrini;T. Fahringer

文献摘要

被引文献

相似文献

在OpenMP中平行循环的安排已成为研究主题已有十多年了。尽管已经提出了许多方法,但大多数人都专注于在运行时纯粹并且不考虑整个系统状态。我们提出了一个全自动循环调度策略,可以适应输入程序的特征以及系统的当前运行时行为,包括外部负载。使用ART多面体编译器分析的状态,我们生成了努力估计功能,然后运行时系统将其使用,以得出给定循环,工作组大小,迭代范围和系统状态的最佳循环时间表。与在未载的方案中相比,我们证明了高达82%的性能改善,在带有外部负载的情况下,高达471%。我们进一步表明,即使在最坏的情况下,我们的自动化系统取得的结果仍停留在手动调整策略的性能的3%之内。
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.