Self-adjusting binary search trees
Journal of the ACM (JACM)
An empirical comparison of priority-queue and event-set implementations
Communications of the ACM
Introduction to Simulation and SLAM II (3rd ed.)
Introduction to Simulation and SLAM II (3rd ed.)
SIAM Journal on Computing
Analysis of Henriksen's algorithm for the simulation event set
SIAM Journal on Computing
Random number generators: good ones are hard to find
Communications of the ACM
Concurrent operations on priority queues
Communications of the ACM
GTW: a time warp system for shared memory multiprocessors
WSC '94 Proceedings of the 26th conference on Winter simulation
SimKit: a high performance logical process simulation class library in C++
WSC '95 Proceedings of the 27th conference on Winter simulation
A comparative study of parallel and sequential priority queue algorithms
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Proceedings of the 29th conference on Winter simulation
Programming pearls: thanks, heaps
Communications of the ACM
A hierarchical fair service curve algorithm for link-sharing, real-time, and priority services
IEEE/ACM Transactions on Networking (TON)
Optimizing static calendar queues
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Performance modeling for fast IP lookups
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Estimating small cell-loss ratios in ATM switches via importance sampling
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Enhanced word-based block-sorting text compression
ACSC '02 Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4
An improved events list algorithm
WSC '77 Proceedings of the 9th conference on Winter simulation - Volume 2
SS '99 Proceedings of the Thirty-Second Annual Simulation Symposium
Hi-index | 0.00 |
Priority queues are essential function blocks in numerous applications such as discrete event simulations. This paper describes and exemplifies the ease of obtaining high performance priority queues using a two-tier list-based structure. This new implementation, called the Twol structure, is amalgamated with three priority queues, namely, the Henriksen's queue, splay tree and skew heap, to enhance the efficiency of these basal priority queue structures. Using a model that combines traditional average case and amortized complexity analysis, Twol-amalgamated priority queues that maintain N active events are theoretically proven to offer O(1) expected amortized complexity under reasonable assumptions. They are also demonstrated empirically to offer stable near O(1) performance for widely varying priority increment distributions and for queue sizes ranging from 10 to 10 million. Extensive empirical results show that the Twol-amalgamated priority queues consistently outperform those basal structures (i.e., without the Twol structure) with an average speedup of about three to five times on widely different hardware architectures. These results provide testimony that the Twol-amalgamated priority queues are suitable for implementation in sizeable application scenarios such as, but not limited to, large-scale discrete event simulation.