Abstract
The cache hierarchy prevalent in todays high performance processors has to be taken into account in order to design algorithms which perform well in practice. We advocates the approach to adapt external memory algorithms to this purpose. We exemplify this approach and the practical issues involved by engineering a fast priority queue suited to external memory and cached memory which is based on k-way merging. It improves previous external memory algorithms by constant factors crucial for transferring it to cached memory. Running in the cache hierarchy of a workstation the algorithm is at least two times faster than an optimized implementation of binary heaps and 4-ary heaps for large inputs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
L. Arge. The buffer tree: A new technique for optimal I/O-algorithms. In 4th Workshop on Algorithms and Data Structures, number 955 in LNCS, pages 334–345. Springer, 1995.
R. D. Barve, E. F. Grove, and J. S. Vitter. Simple randomized mergesort on parallel disks. Parallel Computing, 23(4):601–631, 1997.
Gerth Stølting Brodal and Jyrki Katajainen. Worst-case efficient external-memory priority queues. In 6th Scandinavian Workshop on Algorithm Theory, number 1432 in LNCS, page 107ff. Springer Verlag, Berlin, 1998.
R. Brown. Calendar queues: A fast O(1) priority queue implementation for the simulation event set problem. Communications of the ACM, 31(10):1220–1227, 1988.
T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. McGraw-Hill, 1990.
A. Crauser and K. Mehlhorn et. al. On the performance of LEDA-SM. Technical Report MPI-I-98-1-028, Max Planck Institute for Computer Science, 1998.
A. Crauser, P. Ferragina, and U. Meyer. Efficient priority queues in external memory. working paper, October 1997.
R. Fadel, K. V. Jakobsen, J. Katajainen, and J. Teuhola. External heaps combined with effective buffering. In 4th Australasian Theory Symposium, volume 19-2 of Australian Computer Science Communications, pages 72–78. Springer, 1997.
M. J. Fischer and M. S. Paterson. Fishspear: A priority queue algorithm. Journal of the ACM, 41(1):3–30, 1994.
J. L. Hennessy and D. A. Patterson. Computer Architecture a Quantitative Approach. Morgan Kaufmann, 1996.
Intel Corporation, P.O. Box 5937, Denver, CO, 80217-9808, http://www.intel.com. Intel Archtecture Software Developer’s Manual. Volume I: Basic Architecture, 1997. Ordering Number 243190.
D. Jones. An empirical comparison of priority-queue and event set implementations. Communications of the ACM, 29(4):300–311, 1986.
J. Keller. The 21264: A superscalar alpha processor with out-of-order execution. In Microprocessor Forum, October 1996.
D. E. Knuth. The Art of Computer Programming — Sorting and Searching, volume 3. Addison Wesley, 1973.
A. LaMarca and R. E. Ladner. The influence of caches on the performance of heaps. ACM Journal of Experimental Algorithmics, 1(4), 1996.
A. LaMarca and R. E. Ladner. The influence of caches on the performance of sorting. In 8th ACM-SIAM Symposium on Discrete Algorithm, pages 370–379, 1997.
MIPS Technologies, Inc. R10000 Microprocessor User’s Manual, 2.0 edition, 1998. http://www.mips.com.
J. von Neumann. First draft of a report on the EDVAC. Technical report, University of Pennsylvania, 1945.
Sun Microsystems. UltraSPARC-IIi User’s Manual, 1997.
D. E. Vengroff. TPIE User Manual and Reference, 1995. http://www.cs.duke.edu/~dev/tpie_home_page.html.
J. S. Vitter. External memory algorithms. In 6th European Symposium on Algorithms, number 1461 in LNCS, pages 1–25. Springer, 1998.
J. S. Vitter and E. A. M. Shriver. Algorithms for parallel memory I: Two level memories. Algorithmica, 12(2–3):110–147, 1994.
L. M. Wegner and J. I. Teuhola. The external heapsort. IEEE Transactions on Software Engineering, 15(7):9–925, July 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Sanders, P. (1999). Fast Priority Queues for Cached Memory. In: Goodrich, M.T., McGeoch, C.C. (eds) Algorithm Engineering and Experimentation. ALENEX 1999. Lecture Notes in Computer Science, vol 1619. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48518-X_19
Download citation
DOI: https://doi.org/10.1007/3-540-48518-X_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66227-3
Online ISBN: 978-3-540-48518-6
eBook Packages: Springer Book Archive