Skiplist-based concurrent priority queues

@article{Shavit2000SkiplistbasedCP,
  title={Skiplist-based concurrent priority queues},
  author={Nir Shavit and Itay Lotan},
  journal={Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000},
  year={2000},
  pages={263-268}
}
  • N. Shavit, Itay Lotan
  • Published 1 May 2000
  • Computer Science
  • Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000
This paper addresses the problem of designing scalable concurrent priority queues for large scale multiprocessors machines with up to several hundred processors. [] Key Method To this end, we show 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. Our initial empirical evidence, collected on a simulated 256 node shared memory…

Figures from this paper

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.
The Contention Avoiding Concurrent Priority Queue
TLDR
This work presents the contention avoiding concurrent priority queue (CA-PQ), a data structure that functions as a linearizable concurrent priority with traditional semantics under low contention, but activates contention avoiding techniques that give it more relaxed semantics when high contention is detected.
MultiQueues: Simpler, Faster, and Better Relaxed Concurrent Priority Queues
TLDR
This work focuses on scheduling of jobs with priorities in data managementsystems to support quality of service guarantees (Service Level Agreements) and turns out to outperform previous more complicated data structures while at the same time improving the quality of the returned elements.
Engineering MultiQueues: Fast Relaxed Concurrent Priority Queues
TLDR
This paper introduces MultiQueues as a natural approach to relaxed priority queues based on multiple sequential priority queues and employs a seemingly paradoxical technique of “wait-free locking” that might be of more general interest to convert sequential data structures to relaxed concurrent data structures.
A Skiplist-Based Concurrent Priority Queue with Minimal Memory Contention
TLDR
This work presents a linearizable, lock-free, concurrent priority queue algorithm, based on skiplists, which minimizes the contention for shared memory that is caused by the DeleteMin operation.
Priority Queues Are Not Good Concurrent Priority Schedulers
TLDR
This paper shows that by exploiting the fact that algorithms amenable to priority scheduling are often robust to small deviations from a strict priority order, and by optimizing the scheduler for the cache hierarchy of current multicore and NUMA processors, this work can implement concurrent priority schedulers that improve the end-to-end performance of complex irregular benchmarks by orders of magnitude.
The SprayList : a scalable relaxed priority queue Citation
TLDR
The SprayList is presented, a scalable priority queue with relaxed ordering semantics that is comparable to a classic unordered SkipList, and it is proved that the running time of a DeleteMin operation is O(log p), with high probability, independent of the size of the list.
The SprayList: a scalable relaxed priority queue
TLDR
The SprayList is presented, a scalable priority queue with relaxed ordering semantics that is comparable to a classic unordered SkipList, and it is proved that the running time of a DeleteMin operation is O(log^3 p), with high probability, independent of the size of the list.
Non-~blocking Priority Queue based on Skiplists with Relaxed Semantics
TLDR
This work presents a relaxed non-blocking priority queue based on skiplists that addresses all the design issues mentioned above in the priority queue.
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.
...
...

References

SHOWING 1-10 OF 52 REFERENCES
Scalable concurrent priority queue algorithms
TLDR
This paper addresses the problem of designing bounded range priority queues, that is, queues that support a fixed range of priorities and presents two simple new algorithms, LinearFunnels and FunnelTree, that provide true scalability throughout the concurrency range.
An evaluation of concurrent priority queue algorithms
  • Qin Huang, W. Weihl
  • Computer Science
    Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing
  • 1991
This paper describes the design and experimental evaluation of two novel concurrent priority queue algorithms, a parallel Fibonacci heap and a concurrent priority pool, and compares them with the
An Efficient Algorithm for Concurrent Priority Queue Heaps
Concurrent Access of Priority Queues
TLDR
Experimental results on the BBN Butterfly parallel processor demonstrate that the use of concurrent-heap algorithms in parallel branch-and-bound improves its performance substantially.
LR-algorithm: concurrent operations on priority queues
  • R. Ayani
  • Computer Science
    Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990
  • 1990
TLDR
The paper proposes a new method, the LA-algorithm, which allows concurrent insertions on priority queues, which directs any two consecutive insertion requests to two different subtrees and thus provides a possibility to perform these insertions in parallel.
Parallel heap: A practical priority queue for fine-to-medium-grained applications on small multiprocessors
  • S. Prasad, S. I. Sawant
  • Computer Science
    Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing
  • 1995
TLDR
An efficient implementation of the parallel heap data structure on a bus-based Silicon Graphics multiprocessor GTX/4D achieving speedups of two to four using six processors relative to the best sequential execution times is presented.
Randomized Priority Queues for Fast Parallel Access
  • P. Sanders
  • Computer Science
    J. Parallel Distributed Comput.
  • 1998
TLDR
This work presents simple randomized algorithms for parallel priority queues on distributed memory machines that improve over the best previously known algorithms for many interconnection networks and even matches the speed of the best known PRAM algorithms.
Parallelism and locality in priority queues
TLDR
It is shown that using a d-dimensional array (constant d) of P processors the authors can insert or delete the smallest P elements from a heap in time O(P/sup 1/d/log/Sup 1-1/ d/ P), where the number of elements in the heap is assumed to be polynomial in P.
Parallel Priority Queues
Optimal Parallel Initialization Algorithms for a Class of Priority Queues
  • S. Olariu, Z. Wen
  • Computer Science
    IEEE Trans. Parallel Distributed Syst.
  • 1991
An adaptive parallel algorithm for inducing a priority queue structure on an n-element array is presented. The algorithm is extended to provide optimal parallel construction algorithms for three
...
...