Skip to main content

Cache-Oblivious Algorithms and Data Structures

  • Conference paper
Algorithm Theory - SWAT 2004 (SWAT 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3111))

Included in the following conference series:

Abstract

Frigo, Leiserson, Prokop and Ramachandran in 1999 introduced the ideal-cache model as a formal model of computation for developing algorithms in environments with multiple levels of caching, and coined the terminology of cache-oblivious algorithms. Cache-oblivious algorithms are described as standard RAM algorithms with only one memory level, i.e. without any knowledge about memory hierarchies, but are analyzed in the two-level I/O model of Aggarwal and Vitter for an arbitrary memory and block size and an optimal off-line cache replacement strategy. The result are algorithms that automatically apply to multi-level memory hierarchies. This paper gives an overview of the results achieved on cache-oblivious algorithms and data structures since the seminal paper by Frigo et al.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abello, J., Buchsbaum, A.L., Westbrook, J.R.: A functional approach to external graph algorithms. Algorithmica 32(3), 437–458 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  2. Agarwal, P., Arge, L., Danner, A., Holland-Minkley, B.: Cache-oblivious data structures for orthogonal range searching. In: Proc. 19th ACM Symposium on Computational Geometry, pp. 237–245. ACM Press, New York (2003)

    Google Scholar 

  3. Aggarwal, A., Alpern, B., Chandra, A.K., Snir, M.: A model for hierarchical memory. In: Proc. 19th Annual ACM Symposium on Theory of Computing, pp. 305–314. AMC Press (1987)

    Google Scholar 

  4. Aggarwal, A., Chandra, A.: Virtual memory algorithms. In: Proc. 20th Annual ACM symposium on Theory of computing, pp. 173–185. ACM Press, New York (1988)

    Google Scholar 

  5. Aggarwal, A., Chandra, A.K., Snir, M.: Hierarchical memory with block transfer. In: Proc. 28th Annual IEEE Symposium on Foundations of Computer Science, pp. 204–216. IEEE Computer Society Press, Los Alamitos (1987)

    Google Scholar 

  6. Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Communications of the ACM 31(9), 1116–1127 (1988)

    Article  MathSciNet  Google Scholar 

  7. Alpern, B., Carter, L., Feig, E., Selker, T.: The uniform memory hierarchy model of computation. Algorithmica 12(2–3), 72–109 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  8. Andersson, A., Lai, T.W.: Fast updating of well-balanced trees. In: Gilbert, J.R., Karlsson, R. (eds.) SWAT 1990. LNCS, vol. 447, pp. 111–121. Springer, Heidelberg (1990)

    Google Scholar 

  9. Arge, L.: External memory data structures. In: Abello, J., Pardalos, P.M., Resende, M.G.C. (eds.) Handbook of Massive Data Sets, pp. 313–358. Kluwer Academic Publishers, Dordrecht (2002)

    Google Scholar 

  10. Arge, L.: The buffer tree: A technique for designing batched external data structures. Algorithmica 37(1), 1–24 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  11. Arge, L., Bender, M.A., Demaine, E.D., Holland-Minkley, B., Munro, J.I.: Cache-oblivious priority queue and graph algorithm applications. In: Proc. 34th Annual ACM Symposium on Theory of Computing, pp. 268–276. ACM Press, New York (2002)

    Google Scholar 

  12. Arge, L., Brodal, G., Toma, L.: On external-memory MST, SSSP, and multi-way planar graph separation (Extended abstract). In: Halldórsson, M.M. (ed.) SWAT 2000. LNCS, vol. 1851, pp. 433–447. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  13. Arge, L., Brodal, G.S., Fagerberg, R.: Cache-oblivious data structures. In: Mehta, D., Sahni, S. (eds.) Handbook of Data Structures and Applications, p. 27. CRC Press, Boca Raton (2004)

    Google Scholar 

  14. Arge, L., Chase, J., Vitter, J., Wickremesinghe, R.: Efficient sorting using registers and caches. ACM Journal of Experimental Algorithmics 7(9) (2002)

    Google Scholar 

  15. Arge, L., Knudsen, M., Larsen, K.: A general lower bound on the I/Ocomplexity of comparison-based algorithms. In: Dehne, F., Sack, J.-R., Santoro, N. (eds.) WADS 1993. LNCS, vol. 709, pp. 83–94. Springer, Heidelberg (1993)

    Google Scholar 

  16. Arge, L., Chase, J., Vitter, J., Wickremesinghe, R.: Efficient sorting using registers and caches. ACM Journal of Experimental Algorithmics 7(9) (2002)

    Google Scholar 

  17. Bayer, R., McCreight, E.: Organization and maintenance of large ordered indexes. Acta Informatica 1, 173–189 (1972)

    Article  Google Scholar 

  18. Bender, M., Cole, R., Demaine, E., Farach-Colton, M.: Scanning and traversing: Maintaining data for traversals in a memory hierarchy. In: Möhring, R.H., Raman, R. (eds.) ESA 2002. LNCS, vol. 2461, pp. 139–151. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  19. Bender, M., Cole, R., Raman, R.: Exponential structures for efficient cache-oblivious algorithms. In: Widmayer, P., Triguero, F., Morales, R., Hennessy, M., Eidenbenz, S., Conejo, R. (eds.) ICALP 2002. LNCS, vol. 2380, pp. 195–207. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  20. Bender, M., Demaine, E., Farach-Colton, M.: Efficient tree layout in a multilevel memory hierarchy. In: Möhring, R.H., Raman, R. (eds.) ESA 2002. LNCS, vol. 2461, pp. 165–173. Springer, Heidelberg (2002) ,Full version at http://www.cs.sunysb.edu/~bender/pub/treelayout-full.ps

  21. Bender, M.A., Brodal, G.S., Fagerberg, R., Ge, D., He, S., Hu, H., Iacono, J., López-Ortiz, A.: The cost of cache-oblivious searching. In: Proc. 44th Annual IEEE Symposium on Foundations of Computer Science, pp. 271–282. IEEE Computer Society Press, Los Alamitos (2003)

    Chapter  Google Scholar 

  22. Bender, M.A., Demaine, E., Farach-Colton, M.: Cache-oblivious B-trees. In: Proc. 41st Annual IEEE Symposium on Foundations of Computer Science, pp. 399–409. IEEE Computer Society Press, Los Alamitos (2000)

    Google Scholar 

  23. Bender, M.A., Duan, Z., Iacono, J., Wu, J.: A locality-preserving cache-oblivious dynamic dictionary. In: Proc. 13th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 29–38. ACM-SIAM (2002)

    Google Scholar 

  24. Bentley, J.L.: Multidimensional binary search trees used for associative searching. Communication of the ACM 18, 509–517 (1975)

    Article  MATH  Google Scholar 

  25. Bentley, J.L.: Decomposable searching problems. Information Processing Letters 8(5), 244–251 (1979)

    Article  MATH  MathSciNet  Google Scholar 

  26. Bilardi, G., Peserico, E.: A characterization of temporal locality and its portability across memory hierarchies. In: Orejas, F., Spirakis, P.G., van Leeuwen, J. (eds.) ICALP 2001. LNCS, vol. 2076, pp. 128–139. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  27. Blum, M., Floyd, R.W., Pratt, V., Rivest, R.L., Tarjan, R.E.: Time bounds for selection. Journal of Computer and System Sciences 7, 448–461 (1973)

    Article  MATH  MathSciNet  Google Scholar 

  28. Brodal, G.S., Fagerberg, R.: Cache oblivious distribution sweeping. In: Widmayer, P., Triguero, F., Morales, R., Hennessy, M., Eidenbenz, S., Conejo, R. (eds.) ICALP 2002. LNCS, vol. 2380, pp. 426–438. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  29. Brodal, G.S., Fagerberg, R.: Funnel heap - a cache oblivious priority queue. In: Bose, P., Morin, P. (eds.) ISAAC 2002. LNCS, vol. 2518, pp. 219–228. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  30. Brodal, G.S., Fagerberg, R.: On the limits of cache-obliviousness. In: Proc. 35th ACM Symposium on Theory of Computing, pp. 307–315. ACM Press, New York (2003)

    Google Scholar 

  31. Brodal, G.S., Fagerberg, R., Jacob, R.: Cache oblivious search trees via binary trees of small height. In: Proc. 13th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 39–48. ACM-SIAM (2002)

    Google Scholar 

  32. Brodal, G.S., Fagerberg, R., Meyer, U., Zeh, N.: Cache-oblivious data structures and algorithms for undirected breadth-first search and shortest paths. In: Hagerup, T., Katajainen, J. (eds.) SWAT 2004. LNCS, vol. 3111, pp. 480–492. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  33. Brodal, G.S., Fagerberg, R., Vinther, K.: Engineering a cache-oblivious sorting algorithm. In: Proc. 6th Workshop on Algorithm Engineering and Experiments, p. 14 (2004)

    Google Scholar 

  34. Buchsbaum, A., Goldwasser, M., Venkatasubramanian, S., Westbrook, J.: On external memory graph traversal. In: Proc. 11th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 859–860. ACM Press, New York (2000)

    Google Scholar 

  35. Chatterjee, S., Jain, V.V., Lebeck, A.R., Mundhra, S., Thottethodi, M.: Nonlinear array layouts for hierarchical memory systems. In: Proc. 1999 Conference on Supercomputing, ACM SIGARCH, pp. 444–453. ACM Press, New York (1999)

    Google Scholar 

  36. Chiang, Y., Goodrich, M.T., Grove, E.F., Tamassia, R., Vengroff, D.E., Vitter, J.S.: External-memory graph algorithms. In: Proc. 6th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 139–149. ACM-SIAM (1995)

    Google Scholar 

  37. Chowdhury, R.A., Ramachandran, V.: Cache-oblivious shortest paths in graphs using buffer heap. In: Proc. 16th Annual ACM Symposium on Parallelism in Algorithms and Architectures, ACM Press, New York (2004)

    Google Scholar 

  38. Demaine, E.D.: Cache-oblivious data structures and algorithms. In: Proc. EFF summer school on massive data sets. LNCS, Springer, Heidelberg (2004)

    Google Scholar 

  39. Dietz, P.F., Zhang, J.: Lower bounds for monotonic list labeling. In: Gilbert, J.R., Karlsson, R. (eds.) SWAT 1990. LNCS, vol. 447, pp. 173–180. Springer, Heidelberg (1990)

    Google Scholar 

  40. Farzan, A., Munro, J.I.: Cache-oblivious sorting and searching in multisets (2004) (manuscript)

    Google Scholar 

  41. Franceschini, G.: Proximity mergesort: optimal in-place sorting in the cacheoblivious model. In: Proc. 15th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 291–299. ACM-SIAM (2004)

    Google Scholar 

  42. Franceschini, G., Grossi, R.: Optimal cache-oblivious implicit dictionaries. In: Baeten, J.C.M., Lenstra, J.K., Parrow, J., Woeginger, G.J. (eds.) ICALP 2003. LNCS, vol. 2719, pp. 316–331. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  43. Franceschini, G., Grossi, R.: Optimal worst-case operations for implicit cacheoblivious search trees. In: Dehne, F., Sack, J.-R., Smid, M. (eds.) WADS 2003. LNCS, vol. 2748, pp. 114–126. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  44. Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: 40th Annual IEEE Symposium on Foundations of Computer Science, pp. 285–297. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  45. Goodrich, M.T., Tsay, J.-J., Vengroff, D.E., Vitter, J.S.: External-memory computational geometry. In: Proc. 34th Annual IEEE Symposium on Foundations of Computer Science, pp. 714–723. IEEE Computer Society Press, Los Alamitos (1993)

    Google Scholar 

  46. Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach, 3rd edn. Morgan Kaufmann, San Francisco (2002)

    MATH  Google Scholar 

  47. Hong, J.-W., Kung, H.T.: I/O complexity: The red-blue pebble game. In: Proc. 13th Annual ACM Symposium on Theory of Computation, pp. 326–333. AMC Press (1981)

    Google Scholar 

  48. Itai, A., Konheim, A.G., Rodeh, M.: A sparse table implementation of priority queues. In: Even, S., Kariv, O. (eds.) ICALP 1981. LNCS, vol. 115, pp. 417–431. Springer, Heidelberg (1981)

    Google Scholar 

  49. Kanth, K.V.R., Singh, A.K.: Optimal dynamic range searching in non-replicating index structures. In: Beeri, C., Bruneman, P. (eds.) ICDT 1999. LNCS, vol. 1540, pp. 257–276. Springer, Heidelberg (1998)

    Google Scholar 

  50. Kumar, P.: Cache oblivious algorithms. In: Meyer, U., Sanders, P., Sibeyn, J.F. (eds.) Algorithms for Memory Hierarchies. LNCS, vol. 2625, pp. 193–212. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  51. Kumar, V., Schwabe, E.J.: Improved algorithms and data structures for solving graph problems in external memory. In: Proc. 8th SPDP, pp. 169–177. IEEE Computer Society Press, Los Alamitos (1996)

    Google Scholar 

  52. Ladner, R.E., Fix, J.D., LaMarca, A.: Cache performance analysis of traversals and random accesses. In: Proc. 10th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 613–622. ACM-SIAM (1999)

    Google Scholar 

  53. Ladner, R.E., Fortna, R., Nguyen, B.-H.: A comparison of cache aware and cache oblivious static search trees using program instrumentation. In: Fleischer, R., Moret, B.M.E., Schmidt, E.M. (eds.) Experimental Algorithmics. LNCS, vol. 2547, pp. 78–92. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  54. LaMarca, A., Ladner, R.E.: The influence of caches on the performance of heaps. ACM Journal of Experimental Algorithms 1(4) (1996)

    Google Scholar 

  55. LaMarca, A., Ladner, R.E.: The influence of caches on the performance of sorting. Journal of Algorithms 31, 66–104 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  56. LaMarca, A., Ladner, R.E.: The influence of caches on the performance of heaps. ACM Journal of Experimental Algorithms 1(4) (1996)

    Google Scholar 

  57. Meyer, U., Sanders, P., Sibeyn, J.F.: Algorithms for Memory Hierarchies. LNCS, vol. 2625. Springer, Heidelberg (2003)

    Book  MATH  Google Scholar 

  58. Munagala, K., Ranade, A.: I/O-complexity of graph algorithms. In: Proc. 10th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 687–694. ACMSIAM (1999)

    Google Scholar 

  59. Ohashi, D.: Cache oblivious data structures. Master’s thesis, Department of Computer Science, University of Waterloo, Waterloo, Canada (2000)

    Google Scholar 

  60. Prokop, H.: Cache-oblivious algorithms. Master’s thesis, Massachusetts Institute of Technology (June 1999)

    Google Scholar 

  61. Rahman, N., Cole, R., Raman, R.: Optimised predecessor data structures for internal memory. In: Brodal, G.S., Frigioni, D., Marchetti-Spaccamela, A. (eds.) WAE 2001. LNCS, vol. 2141, pp. 67–78. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  62. Savage, J.E.: Extending the Hong-Kung model to memory hierachies. In: Li, M., Du, D.-Z. (eds.) COCOON 1995. LNCS, vol. 959, pp. 270–281. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  63. Sen, S., Chatterjee, S.: Towards a theory of cache-efficient algorithms. In: Proc. 11th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 829–838. ACM-SIAM (2000)

    Google Scholar 

  64. Sleator, D.D., Tarjan, R.E.: Amortized Efficiency of List Update and Paging Rules. Communications of the ACM 28, 202–208 (1985)

    Article  MathSciNet  Google Scholar 

  65. Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 13, 354–356 (1969)

    Article  MATH  MathSciNet  Google Scholar 

  66. Toledo, S.: Locality of reference in LU decomposition with partial pivoting. SIAM Journal on Matrix Analysis and Applications, 18(4), 1065–1081 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  67. van Emde Boas, P.: Preserving order in a forest in less than logarithmic time and linear space. Information Processing Letters 6, 80–82 (1977)

    Article  MATH  Google Scholar 

  68. van Emde Boas, P., Kaas, R., Zijlstra, E.: Design and implementation of an efficient priority queue. Mathematical Systems Theory 10, 99–127 (1977)

    Article  MATH  Google Scholar 

  69. Vitter, J.S.: External memory algorithms and data structures: Dealing with massive data. ACM Computing Surveys 33(2), 209–271 (2001)

    Article  Google Scholar 

  70. Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory I: Two-level memories. Algorithmica 12(2–3), 110–147 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  71. Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory II: Hierarchical multilevel memories. Algorithmica 12(2–3), 148–169 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  72. Willard, D.E.: A density control algorithm for doing insertions and deletions in a sequentially ordered file in good worst-case time. Information and Computation 97(2), 150–204 (1992)

    Google Scholar 

  73. Xiao, L., Zhang, X., Kubricht, S.A.: Improving memory performance of sorting algorithms. ACM Journal of Experimental Algorithmics 5(3) (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brodal, G.S. (2004). Cache-Oblivious Algorithms and Data Structures. In: Hagerup, T., Katajainen, J. (eds) Algorithm Theory - SWAT 2004. SWAT 2004. Lecture Notes in Computer Science, vol 3111. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27810-8_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-27810-8_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22339-9

  • Online ISBN: 978-3-540-27810-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics