首页> 外文期刊>Journal of Parallel and Distributed Computing >A scalable lock-free stack algorithm
【24h】

A scalable lock-free stack algorithm

机译:可扩展的无锁堆栈算法

获取原文
获取原文并翻译 | 示例

摘要

The literature describes two high performance concurrent stack algorithms based on combining funnels and elimination trees. Unfortunately, the funnels are linearizable but blocking, and the elimination trees are non-blocking but not linearizable. Neither is used in practice since they perform well only at exceptionally high loads. The literature also describes a simple lock-free linearizable stack algorithm that works at low loads but does not scale as the load increases. The question of designing a stack algorithm that is non-blocking, linearizable, and scales well throughout the concurrency range, has thus remained open.rnThis paper presents such a concurrent stack algorithm. It is based on the following simple observation: that a single elimination array used as a backoff scheme for a simple lock-free stack is lock-free, linearizable, and scalable. As our empirical results show, the resulting elimination-backoff stack performs as well as the simple stack at low loads, and increasingly outperforms all other methods (lock-based and non-blocking) as concurrency increases. We believe its simplicity and scalability make it a viable practical alternative to existing constructions for implementing concurrent stacks.
机译:文献描述了两种基于合并漏斗和消除树的高性能并发堆栈算法。不幸的是,漏斗是可线性化但不可阻塞的,而消除树是不可阻塞但不可线性化的。由于它们仅在极高的负载下才能发挥出色的性能,因此在实践中均未使用。文献还描述了一种简单的无锁线性化堆栈算法,该算法在低负载下工作,但不会随着负载的增加而扩展。因此,设计无阻塞,可线性化并且在并发范围内具有良好伸缩性的堆栈算法的问题一直没有解决。本文提出了一种并发堆栈算法。它基于以下简单观察结果:用作简单无锁堆栈的回退方案的单个消除数组是无锁,可线性化和可伸缩的。正如我们的经验结果所示,在低负载情况下,结果消除消除堆栈的性能与简单堆栈相同,并且随着并发性的提高,它们的性能越来越优于所有其他方法(基于锁和非阻塞)。我们相信它的简单性和可伸缩性使其成为实现并发堆栈的现有结构的可行实用替代方案。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号