Advertisement

Cache-Oblivious Algorithms and Data Structures

  • Gerth Stølting Brodal
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3111)

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.

Keywords

Search Tree Range Query Memory Hierarchy Annual IEEE Symposium Minimum Span Tree Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abello, J., Buchsbaum, A.L., Westbrook, J.R.: A functional approach to external graph algorithms. Algorithmica 32(3), 437–458 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 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. 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. 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. 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. 6.
    Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Communications of the ACM 31(9), 1116–1127 (1988)CrossRefMathSciNetGoogle Scholar
  7. 7.
    Alpern, B., Carter, L., Feig, E., Selker, T.: The uniform memory hierarchy model of computation. Algorithmica 12(2–3), 72–109 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 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. 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. 10.
    Arge, L.: The buffer tree: A technique for designing batched external data structures. Algorithmica 37(1), 1–24 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 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. 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)CrossRefGoogle Scholar
  13. 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. 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. 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. 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. 17.
    Bayer, R., McCreight, E.: Organization and maintenance of large ordered indexes. Acta Informatica 1, 173–189 (1972)CrossRefGoogle Scholar
  18. 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)CrossRefGoogle Scholar
  19. 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)CrossRefGoogle Scholar
  20. 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. 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)CrossRefGoogle Scholar
  22. 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. 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. 24.
    Bentley, J.L.: Multidimensional binary search trees used for associative searching. Communication of the ACM 18, 509–517 (1975)zbMATHCrossRefGoogle Scholar
  25. 25.
    Bentley, J.L.: Decomposable searching problems. Information Processing Letters 8(5), 244–251 (1979)zbMATHCrossRefMathSciNetGoogle Scholar
  26. 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)CrossRefGoogle Scholar
  27. 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)zbMATHCrossRefMathSciNetGoogle Scholar
  28. 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)CrossRefGoogle Scholar
  29. 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)CrossRefGoogle Scholar
  30. 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. 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. 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)CrossRefGoogle Scholar
  33. 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. 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. 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. 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. 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. 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. 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. 40.
    Farzan, A., Munro, J.I.: Cache-oblivious sorting and searching in multisets (2004) (manuscript)Google Scholar
  41. 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. 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)CrossRefGoogle Scholar
  43. 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)CrossRefGoogle Scholar
  44. 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. 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. 46.
    Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach, 3rd edn. Morgan Kaufmann, San Francisco (2002)zbMATHGoogle Scholar
  47. 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. 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. 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. 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)CrossRefGoogle Scholar
  51. 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. 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. 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)CrossRefGoogle Scholar
  54. 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. 55.
    LaMarca, A., Ladner, R.E.: The influence of caches on the performance of sorting. Journal of Algorithms 31, 66–104 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  56. 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. 57.
    Meyer, U., Sanders, P., Sibeyn, J.F.: Algorithms for Memory Hierarchies. LNCS, vol. 2625. Springer, Heidelberg (2003)zbMATHCrossRefGoogle Scholar
  58. 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. 59.
    Ohashi, D.: Cache oblivious data structures. Master’s thesis, Department of Computer Science, University of Waterloo, Waterloo, Canada (2000)Google Scholar
  60. 60.
    Prokop, H.: Cache-oblivious algorithms. Master’s thesis, Massachusetts Institute of Technology (June 1999)Google Scholar
  61. 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)CrossRefGoogle Scholar
  62. 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)CrossRefGoogle Scholar
  63. 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. 64.
    Sleator, D.D., Tarjan, R.E.: Amortized Efficiency of List Update and Paging Rules. Communications of the ACM 28, 202–208 (1985)CrossRefMathSciNetGoogle Scholar
  65. 65.
    Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 13, 354–356 (1969)zbMATHCrossRefMathSciNetGoogle Scholar
  66. 66.
    Toledo, S.: Locality of reference in LU decomposition with partial pivoting. SIAM Journal on Matrix Analysis and Applications, 18(4), 1065–1081 (1997)zbMATHCrossRefMathSciNetGoogle Scholar
  67. 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)zbMATHCrossRefGoogle Scholar
  68. 68.
    van Emde Boas, P., Kaas, R., Zijlstra, E.: Design and implementation of an efficient priority queue. Mathematical Systems Theory 10, 99–127 (1977)zbMATHCrossRefGoogle Scholar
  69. 69.
    Vitter, J.S.: External memory algorithms and data structures: Dealing with massive data. ACM Computing Surveys 33(2), 209–271 (2001)CrossRefGoogle Scholar
  70. 70.
    Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory I: Two-level memories. Algorithmica 12(2–3), 110–147 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  71. 71.
    Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory II: Hierarchical multilevel memories. Algorithmica 12(2–3), 148–169 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  72. 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. 73.
    Xiao, L., Zhang, X., Kubricht, S.A.: Improving memory performance of sorting algorithms. ACM Journal of Experimental Algorithmics 5(3) (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Gerth Stølting Brodal
    • 1
  1. 1.BRICS, Department of Computer ScienceUniversity of AarhusÅrhus NDenmark

Personalised recommendations