Funnel Heap-A Cache Oblivious Priority Queue

  • Gerth Stølting Brodai
  • Rolf Fagerberg
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2518)

Abstract

The cache oblivious model of computation is a two-level memory model with the assumption that the parameters of the model are unknown to the algorithms. A consequence of this assumption is that an algorithm efficient in the cache oblivious model is automatically efficient in a multi-level memory model. Arge et al. recently presented the first optimal cache oblivious priority queue, and demonstrated the importance of this result by providing the first cache oblivious algorithms for graph problems. Their structure uses cache oblivious sorting and selection as subroutines. In this paper, we devise an alternative optimal cache oblivious priority queue based only on binary merging. We also show that our structure can be made adaptive to different usage profiles.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    A. Aggarwal and J. S. Vitter. The input/output complexity of sorting and related problems. Communications of the ACM, 31(9):1116–1127, Sept. 1988.Google Scholar
  2. 2.
    L. Arge. External memory data structures. In Proc. 9th Annual European Symposium on Algorithms (ESA), volume 2161 of LNCS, pages 1–29. Springer, 2001.Google Scholar
  3. 3.
    L. Arge, M. A. Bender, E. D. Demaine, B. Holland-Minkley, and J. I. Munro. Cache-oblivious priority queue and graph algorithm applications. In Proc. 34th Ann. ACM Symp. on Theory of Computing, pages 268–276. ACM Press, 2002.Google Scholar
  4. 4.
    R. Bayer and E. McCreight. Organization and maintenance of large ordered indexes. Acta Informatica, 1:173–189, 1972.CrossRefGoogle Scholar
  5. 5.
    M. Bender, R. Cole, E. Demaine, and M. Farach-Colton. Scanning and traversing: Maintaining data for traversals in a memory hierarchy. In Proc. 10th Annual European Symposium on Algorithms (ESA), 2002. To appear.Google Scholar
  6. 6.
    M. Bender, R. Cole, and R. Raman. Exponential structures for cache-oblivious algorithms. In Proc. 29th International Colloquium on Automata, Languages, and Programming (ICALP), volume 2380 of LNCS, pages 195–207. Springer, 2002.CrossRefGoogle Scholar
  7. 7.
    M. Bender, E. Demaine, and M. Farach-Colton. Efficient tree layout in a multilevel memory hierarchy. In Proc. 10th Annual European Symposium on Algorithms (ESA), 2002. To appear.Google Scholar
  8. 8.
    M. A. Bender, E. Demaine, and M. Farach-Colton. Cache-oblivious B-trees. In Proc. 41st Ann. Symp. on Foundations of Computer Science, pages 399–409. IEEE Computer Society Press, 2000.Google Scholar
  9. 9.
    M. A. Bender, Z. Duan, J. Iacono, and J. Wu. A locality-preserving cache-oblivious dynamic dictionary. In Proc. 13th Ann. ACM-SIAM Symp. on Discrete Algorithms, pages 29–39, 2002.Google Scholar
  10. 10.
    G. S. Brodal and R. Fagerberg. Cache oblivious distribution sweeping. In Proc. 29th International Colloquium on Automata, Languages, and Programming (ICALP), volume 2380 of LNCS, pages 426–438. Springer, 2002.CrossRefGoogle Scholar
  11. 11.
    G. S. Brodal, R. Fagerberg, and R. Jacob. Cache oblivious search trees via binary trees of small height. In Proc. 13th Ann. ACM-SIAM Symp. on Discrete Algorithms, pages 39–48, 2002.Google Scholar
  12. 12.
    M. J. Fischer and M. S. Paterson. Fishspear: A priority queue algorithm. Journal of the ACM, 41(1):3–30, 1994.MATHCrossRefGoogle Scholar
  13. 13.
    M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran. Cache-oblivious algorithms. In 40th Annual Symposium on Foundations of Computer Science, pages 285–297. IEEE Computer Society Press, 1999.Google Scholar
  14. 14.
    J. S. Vitter. External memory algorithms and data structures: Dealing with massive data. ACM Computing Surveys, 33(2):209–271, June 2001.Google Scholar

Copyright information

© Springer Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Gerth Stølting Brodai
    • 1
  • Rolf Fagerberg
    • 1
  1. 1.BRICS, Department of Computer ScienceUniversity of AarhusÅrhus CDenmark

Personalised recommendations