中文

多队列可作为最先进的优先级调度器

数据结构与算法 2021-09-03 v1 分布式、并行与集群计算

摘要

设计和实现高效的并行优先级调度器是一个活跃的研究领域。一个引人关注的设计是 Multi-Queue(多队列):给定 nn 个线程和 mnm\ge n 个互异优先级队列,任务插入均匀随机执行,而删除时,一个线程均匀随机选取两个队列,并移除其中观察到的优先级更高的任务。该方法可良好扩展,并具有概率性秩保证:大致而言,每个被移除任务相对于所有其他队列中剩余任务的秩在期望上为 O(m)O(m)。然而,该模式的性能低于那些为实际效率而放弃理论保证的精心设计的调度器。我们研究是否可能设计并实现一种基于 Multi-Queue 的任务调度器,既高效又具有分析保证。我们提出一种称为 Stealing Multi-Queue(SMQ,窃取多队列)的新变体,它是 Multi-Queue 的缓存高效变体,同时利用队列亲和性——每个线程有一个本地队列,任务通常从中移除;但在一定概率下,线程也尝试从其他队列窃取更高优先级任务——以及任务批处理,即在单次插入/删除步骤中处理多个任务。这些思想在无优先级的任务调度中已广为人知;我们的理论贡献在于表明,尽管有所放宽,该设计仍可提供秩保证,进而给出总工作量的界。我们提供了一个通用 SMQ 实现,在流行图处理基准上的性能可超越 Galois 和 PMOD 等最先进调度器。值得注意的是,性能提升主要来自我们的调度器所提供的更优秩保证,证实了基于分析推理的方法仍可为优先级任务调度带来性能改进。

关键词

引用

@article{arxiv.2109.00657,
  title  = {Multi-Queues Can Be State-of-the-Art Priority Schedulers},
  author = {Anastasiia Postnikova and Nikita Koval and Giorgi Nadiradze and Dan Alistarh},
  journal= {arXiv preprint arXiv:2109.00657},
  year   = {2021}
}