An empirical comparison of priority-queue and event-set implementations
Communications of the ACM
Concurrent Access of Priority Queues
IEEE Transactions on Computers
Introduction to algorithms
A performance comparison of event calendar algorithms: an empirical approach
Software—Practice & Experience
The influence of caches on the performance of heaps
Journal of Experimental Algorithmics (JEA)
Optimal Parallel Initialization Algorithms for a Class of Priority Queues
IEEE Transactions on Parallel and Distributed Systems
Simulation Data Structures for Parallel Resource Management
IEEE Transactions on Software Engineering
Scalable concurrent priority queue algorithms
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Algorithm engineering for parallel computation
Experimental algorithmics
Hi-index | 0.00 |
The heap representation of priority queues is one of the most widely used data structures in the design of parallel algorithms. Efficiently exploiting the parallelism of a priority heap has significant influence on the efficiency of a wide range of applications and parallel algorithms. In this paper, we propose an aggressive priority heap operating algorithm, called the lock bypassing algorithm (LB) on shared memory systems. This algorithm minimizes interference of concurrent enqueue and dequeue operations on priority heaps while keeping the strict priority property: a dequeue always returns the minimum of a heap. The unique idea that distinguishes the LB algorithm from previous concurrent algorithms on priority heaps is the use of locking-on-demand and lock-bypassing techniques to minimize locking granularity and to maximize parallelism. The LB algorithm allows an enqueue operation to bypass the locks along its insertion path until it reaches a possible place where it can perform the insertion. Meanwhile a dequeue operation also makes its locking range and locking period as small as possible by carefully tuning its execution procedure. The LB algorithm is shown to be correct in terms of deadlock freedom and heap consistency. The performance of the LB algorithm was evaluated analytically and experimentally in comparison with previous algorithms. Analytical results show that the LB algorithm reduces by half the number of locks waited for in the worst case by previous algorithms. The experimental results show that the LB algorithm outperforms previously designed algorithms by up to a factor of 2 in hold time.