Fast and lock-free concurrent priority queues for multi-thread systems

@article{Sundell2003FastAL,
  title={Fast and lock-free concurrent priority queues for multi-thread systems},
  author={H{\aa}kan Sundell and Philippas Tsigas},
  journal={Proceedings International Parallel and Distributed Processing Symposium},
  year={2003},
  pages={11 pp.-}
}
  • Håkan Sundell, P. Tsigas
  • Published 22 April 2003
  • Computer Science
  • Proceedings International Parallel and Distributed Processing Symposium
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system's overall performance. Non-blocking algorithms avoid blocking, and are either lock-free or wait-free… 

Figures from this paper

MSL Based Concurrent and Efficient Priority Queue
TLDR
This paper proposes an alternative approach to base the design of concurrent priority queues on the Modified Skip List data structure, and shows that a concurrent modified Skip List structure, following a simple set of modifications, provides a concurrent priority queue with a higher level of parallelism.
Efficient & Lock-Free Modified Skip List in Concurrent Environment
TLDR
The main goal of this paper is to provide an efficient and practical lock-free implementation of modified skip list data structure suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems.
Scalable and lock-free concurrent dictionaries
We present an efficient and practical lock-free implementation of a concurrent dictionary that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive
Chapter 6 Scalable and Lock-Free Concurrent Dictionaries 1
We present an efficient and practical lock-free implementation of a concurrent dictionary that is suitable for both fully concurrent (large multiprocessor) systems as well as pre-emptive
Practical Concurrent Priority Queues
TLDR
Three major ideas within the field of concurrent priority queues are discussed: fine-grained locking employs multiple locks to avoid a single bottleneck within the queue; SkipLists are search structures which use randomization and therefore do not require elaborate reorganization schemes; and relaxed data structures trade semantic guarantees for improved scalability.
Concurrent Lock-Free Unbounded Priority Queue with Mutable Priorities
TLDR
This paper presents the first concurrent lock-free unbounded binary heap that implements a priority queue with mutable priorities, and designed an optimized version of the algorithm by combining the concurrent operations that substantially improves the performance.
CBPQ: High Performance Lock-Free Priority Queue
TLDR
The design employs several techniques to obtain its advantages including lock-free chunks, the use of the efficient fetch-and-increment atomic instruction, and elimination, and performance improvement under high contention is demonstrated.
Wait-free reference counting and memory management
  • Håkan Sundell
  • Computer Science
    19th IEEE International Parallel and Distributed Processing Symposium
  • 2005
TLDR
This work presents a practical wait-free implementation of a garbage collection scheme based on reference counting that uses atomic primitivism, which are available in modern computer systems and is the first wait- free algorithm of a reference counting scheme that can support dynamic concurrent data structures.
A Lock-Free Priority Queue Design Based on Multi-Dimensional Linked Lists
TLDR
A quiescently consistent lock-free priority queue based on a multi-dimensional list that guarantees worst-case search time of O(logN) for key universe of size N is proposed and achieves an average of 50 percent speedup over the state of the art approaches under high concurrency.
Lock-free internal binary search trees with memory management
TLDR
A new non-blocking internal binary search tree algorithm is presented that has a higher throughput than previously published concurrent dynamic search structure algorithms for a range of workload patterns and data structure sizes and is also informally proven to be lock-free and linearisable.
...
...

References

SHOWING 1-10 OF 36 REFERENCES
Scalable and lock-free concurrent dictionaries
We present an efficient and practical lock-free implementation of a concurrent dictionary that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive
Practical lock-freedom
TLDR
This dissertation introduces and evaluates practical abstractions and data structures that facilitate the development of large-scale lock-free systems and presents an implementation of two useful abstractions that make it easier to develop arbitrary lock- free data structures.
Skiplist-based concurrent priority queues
  • N. Shavit, Itay Lotan
  • Computer Science
    Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000
  • 2000
TLDR
It is shown that a concurrent skiplist structure, following a simple set of modifications, provides a concurrent priority queue with a higher level of parallelism and significantly less contention than the fastest known heap-based algorithms.
Evaluating the performance of non-blocking synchronization on shared-memory multiprocessors
TLDR
The goal of this work was to provide an in depth understanding of how non-blocking can improve the performance of modern parallel applications by using the general translations that are provided in this paper.
Wait-free synchronization
TLDR
A hierarchy of objects is derived such that no object at one level has a wait-free implementation in terms of objects at lower levels, and it is shown that atomic read/write registers, which have been the focus of much recent attention, are at the bottom of the hierarchy.
Priority Queues and Sorting Methods for Parallel Simulation
TLDR
The authors examine the design, implementation, and experimental analysis of parallel priority queues for device and network simulation and develop a new, more general concurrent data structure based on distributed sorted lists, designed to provide dynamically balanced work allocation and efficient use of shared memory resources.
Non-blocking synchronization and system design
TLDR
This thesis demonstrates that non-blocking synchronization is practical as the sole co-ordination mechanism in systems by showing that careful design and implementation of operating system software makes implementing efficient non- blocking synchronization far easier, and by demonstrating that DCASpDouble-Compare-and-Swapp is the necessary and sufficient primitive for implementing NBS.
Concurrent operations on priority queues
TLDR
A concurrent version of the top down implementation of skew heaps can be produced from previously published sequential versions using almost mechanical transformations, creating potential for significant concurrency when multiple processes share a queue.
Lock-free linked lists and skip lists
TLDR
This work presents a new lock-free implementation of singly-linked lists that uses backlinks that are set when a node is deleted so that concurrent operations visiting the deleted node can recover and proves that the worst-case amortized cost of the operations is linear in the length of the list plus the contention.
...
...