Abstract
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 concurrent binary heap. The parallel Fibonacci heap is based on the sequential Fibonacci heap, which is theoretically the most efficient data structure for sequential priority queues. The concurrent priority pool is based on the concurrent B-tree and the concurrent pool. Both new algorithms scale better and have large throughput than the concurrent binary heap, as shown by the performance results. These performance advantages are achieved by relaxing the semantics of the extract-min operation, allowing it to return items that are close to the minimum but not necessarily minimal. Two applications of concurrent priority queues, the vertex cover problem and the single source shortest path problem, are tested.