一种中断驱动的工作共享式for循环调度器
分布式、并行与集群计算
2015-05-19 v2
摘要
在本文中,我们提出了一种基于工作窃取原则但在完全协作式方案下运行的并行for循环调度器。空闲线程使用POSIX信号来中断落后工作线程,后者进而决定其工作负载的哪一部分可给予请求者。我们称此方案为中断驱动的工作共享(IDWS)。本文描述了IDWS如何工作、如何集成到任何兼容POSIX的OpenMP实现中,以及用户如何能在现有的兼容POSIX的C++应用中手动用IDWS替换OpenMP并行for循环。此外,我们使用一个在迭代空间上具有变化工作负载分布的合成基准测试以及Sandy Bridge和Xeon Phi系统上的真实应用来度量其性能。无论工作负载分布和底层硬件如何,IDWS总是最佳或最佳性能策略之一,为调度选择困境提供了良好的全方位解决方案。
引用
@article{arxiv.1505.04134,
title = {An Interrupt-Driven Work-Sharing For-Loop Scheduler},
author = {Georgios Rokos and Gerard J. Gorman and Paul H. J. Kelly},
journal= {arXiv preprint arXiv:1505.04134},
year = {2015}
}