Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems
Artikel i vetenskaplig tidskrift, 2005

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 overall performance of the system. Non-blocking algorithms avoid blocking, and several implementations have been proposed. Previously known non-blocking algorithms of priority queues did not perform well in practice because of their complexity, and they are often based on non-available atomic synchronization primitives. Our algorithm is based on the randomized sequential list structure called Skiplist, and a real-time extension of our algorithm is also described. In our performance evaluation we compare our algorithm with a well-representable set of earlier known implementations of priority queues. The experimental results clearly show that our lock-free implementation outperforms the other lock-based implementations in practical scenarios for 3 threads and more, both on fully concurrent as well as on pre-emptive systems.

concurrent

non-blocking

lock-free

shared data structure

skip list

real-time

priority queue

multi-thread

Författare

Håkan Sundell

Chalmers, Data- och informationsteknik, Datavetenskap, Datavetenskap, Datakommunikation och distribuerade system (Chalmers)

Philippas Tsigas

Chalmers, Data- och informationsteknik, Datavetenskap, Datavetenskap, Datakommunikation och distribuerade system (Chalmers)

Journal of Parallel and Distributed Computing

Vol. 65 5 609-627

Ämneskategorier

Data- och informationsvetenskap