...
首页> 外文期刊>情報処理学会論文誌 >Lazy Scheduling: A Runtime Adaptive Scheduler for Declarative Parallelism
【24h】

Lazy Scheduling: A Runtime Adaptive Scheduler for Declarative Parallelism

机译:惰性调度:用于声明式并行的运行时自适应调度程序

获取原文

摘要

Lazy scheduling is a runtime scheduler for task-parallel codes that effectively coarsens parallelism on load conditions in order to significantly reduce its overheads compared to existing approaches, thus enabling the efficient execution of more fine-grained tasks. Unlike other adaptive dynamic schedulers, lazy scheduling does not maintain any additional state to infer system load and does not make irrevocable serialization decisions. These two features allow it to scale well and to provide excellent load balancing in practice but at a much lower overhead cost compared to work stealing, the golden standard of dynamic schedulers. We evaluate three variants of lazy scheduling on a set of benchmarks on three different platforms and find it to substantially outperform popular work stealing implementations on fine-grained codes. Furthermore, we show that the vast performance gap between manually coarsened and fully parallel code is greatly reduced by lazy scheduling, and that, with minimal static coarsening, lazy scheduling delivers performance very close to that of fully tuned code. The tedious manual coarsening required by the best existing work stealing schedulers and its damaging effect on performance portability have kept novice and general-purpose programmers from parallelizing their codes. Lazy scheduling offers the foundation for a declarative parallel programming methodology that should attract those programmers by minimizing the need for manual coarsening and by greatly enhancing the performance portability of parallel code.
机译:惰性调度是用于任务并行代码的运行时调度程序,可以有效地加粗负载条件下的并行度,以便与现有方法相比显着减少其开销,从而可以高效执行更细粒度的任务。与其他自适应动态调度程序不同,惰性调度不会保持任何其他状态来推断系统负载,并且不会做出不可撤销的序列化决策。这两个功能使它可以很好地扩展并在实践中提供出色的负载平衡,但是与动态调度程序的黄金窃取相比,开销要低得多。我们在三个不同平台上的一组基准上评估了懒惰调度的三种变体,发现它在性能上大大优于细粒度代码上的流行工作窃取实现。此外,我们表明,通过惰性调度可以大大减少手动粗化代码与完全并行代码之间的巨大性能差距,并且通过最小化静态粗化,惰性调度可以提供与完全优化的代码非常接近的性能。现有最好的工作窃取调度程序所需的繁琐的手动粗化及其对性能可移植性的破坏性影响,使新手和通用程序员无法并行执行其代码。惰性调度为声明性并行编程方法提供了基础,该方法应通过最大程度地减少手动粗化的需要并极大地增强并行代码的性能可移植性来吸引那些程序员。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号