We study the problem of efficiently scheduling a computational DAG on multiple processors. The majority of previous works have developed and compared algorithms for this problem in relatively simple models; in contrast to this, we analyze this problem in a more realistic model that captures many real-world aspects, such as communication costs, synchronization costs, and the hierarchical structure of modern processing architectures. For this we extend the well-established BSP model of parallel computing with non-uniform memory access (NUMA) effects. We then develop a range of new scheduling algorithms to minimize the scheduling cost in this more complex setting: several initialization heuristics, a hill-climbing local search method, and several approaches that formulate (and solve) the scheduling problem as an Integer Linear Program (ILP). We combine these algorithms into a single framework, and conduct experiments on a diverse set of real-world computational DAGs to show that the resulting scheduler significantly outperforms both academic and practical baselines. In particular, even without NUMA effects, our scheduler finds solutions of 24%-44% smaller cost on average than the baselines, and in case of NUMA effects, it achieves up to a factor $2.5\times$ improvement compared to the baselines. Finally, we also develop a multilevel scheduling algorithm, which provides up to almost a factor $5\times$ improvement in the special case when the problem is dominated by very high communication costs.
翻译:我们研究在多个处理器上高效调度计算有向无环图(DAG)的问题。以往的大部分工作都是在相对简单的模型下针对该问题开发和比较算法;与此不同,我们在一个更逼真的模型中分析该问题,该模型捕捉了众多现实世界因素,例如通信开销、同步开销以及现代处理架构的层次化结构。为此,我们将成熟的并行计算BSP模型扩展,纳入非均匀内存访问效应。随后,我们开发了一系列新的调度算法,以最小化这一更复杂设定下的调度开销:包括多种初始化启发式方法、一种爬山局部搜索方法,以及多种将调度问题形式化并求解为整数线性规划的方法。我们将这些算法整合到一个统一的框架中,并对一组多样化的真实计算DAG进行实验,结果表明所生成的调度器显著优于学术和实践基准。特别地,即使不考虑NUMA效应,我们的调度器相比基准平均能降低24%-44%的成本;而在考虑NUMA效应时,它相比基准可实现高达2.5倍的改进。最后,我们还开发了一种多级调度算法,在问题由极高通信开销主导的特殊情况下,该算法能提供近5倍的改进。