No Cords Attached: Coordination-Free Concurrent Lock-Free Queues
Yusuf Motiwala
队列在概念上是最简单的数据结构之一——一个基本的FIFO容器。 然而,在并发的情况下确保正确性使得现有的无锁定实现比其原始形式要复杂得多。 引入的协调机制,以防止危害,如ABA,无使用后,不安全的填海造垦往往主导设计,盖过了队列本身。 许多计划都破坏了严格的FIFO订购,无限制的能力或无锁的进展,以掩盖协调开销。 然而,复杂性的真正根源在于追求对填海危险的无限保护 - 理论上是健全的,但不切实际且昂贵。 这种追求不仅带来了不必要的复杂性,而且还造成了一种保护悖论,即过度保护会降低系统弹性而不是改善系统弹性。 虽然这种成本在传统工作负载中是可以承受的,但人工智能时代已经改变了范式:训练和推理管道每个节点涉及数百到数千个并发线程,在这个规模下,保护和协调开销占主导地位,通常比基本队列操作本身要重得多。 本文介绍了 Cyclic Memory Protection (CMP),这是一个无协调队列,可保留严格的 FIFO 语义、无边界容量和无锁进度,同时恢复简单性。 《议定书》/《公约》缔约方会议收回了通过提供实际填海保证的有边界保护窗口牺牲的其他办法的严格FIFO。 我们通过线性化和有界复垦分析证明了严格的FIFO和安全性,并实验表明,在高争分量下,CMP在高争分量下超过最先进的无锁队列,同时保持对数百个线程的可扩展性。 我们的工作表明,高度并发的队列可以返回到其基本简单性,而不会削弱队列语义。
The queue is conceptually one of the simplest data structures-a basic FIFO container. However, ensuring correctness in the presence of concurrency makes existing lock-free implementations significantly more complex than their original form. Coordination mechanisms introduced to prevent hazards such as ABA, use-after-free, and unsafe reclamation often dominate the design, overshadowing the queue itself. Many schemes compromise strict FIFO ordering, unbounded capacity, or lock-free progress to mas...