Skip to main content

Cache-Oblivious Model

  • Living reference work entry
  • First Online:
Encyclopedia of Algorithms
  • 218 Accesses

Footnote 1

Years and Authors of Summarized Original Work

1999; Frigo, Leiserson, Prokop, Ramachandran

Problem Definition

The memory system of contemporary computers consists of a hierarchy of memory levels, with each level acting as a cache for the next; a typical hierarchy consists of registers, level 1 cache, level 2 cache, level 3 cache, main memory, and disk (Fig.  1). One characteristics of the hierarchy is that the memory levels get larger and slower the further they get from the processor, with the access time increasing most dramatically between RAM memory and disk. Another characteristics is that data is moved between levels in blocks of consecutive elements.

As a consequence of the differences in access time between the levels, the cost of a memory access depends highly on what is the current lowest memory level holding the element accessed. Hence, the memory access pattern of an algorithm has a major influence on its practical running time. Unfortunately, the RAM model (Fig....

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

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    Research supported by Danish Council for Independent Research, Natural Sciences.

Recommended Reading

  1. Adams MD, Wise DS (2006) Seven at one stroke: results from a cache-oblivious paradigm for scalable matrix algorithms. In: Proceedings of the 2006 workshop on memory system performance and correctness, San Jose, pp 41–50

    Google Scholar 

  2. Afshani P, Zeh N (2011) Improved space bounds for cache-oblivious range reporting. In: Proceedings of the 22nd annual ACM-SIAM symposium on discrete algorithms, San Francisco, pp 1745–1758

    Google Scholar 

  3. Aggarwal A, Vitter JS (1988) The Input/Output complexity of sorting and related problems. Commun ACM 31(9):1116–1127

    Article  MathSciNet  Google Scholar 

  4. Allulli L, Lichodzijewski P, Zeh N (2007) A faster cache-oblivious shortest-path algorithm for undirected graphs with bounded edge lengths. In: Proceedings of the 18th annual ACM-SIAM symposium on discrete algorithms, New Orleans, pp 910–919

    Google Scholar 

  5. Arge L (2002) External memory data structures. In: Abello J, Pardalos PM, Resende MGC (eds) Handbook of massive data sets. Kluwer Academic, Dordrecht/Boston/London, pp 313–358

    Chapter  Google Scholar 

  6. Arge L, Brodal GS, Fagerberg R (2005) Cache-oblivious data structures. In: Mehta D, Sahni S (eds) Handbook on data structures and applications. Chapman & Hall/CRC, Boca Raton/London/New York/Washington, D.C

    Google Scholar 

  7. Arge L, Bender MA, Demaine ED, Holland-Minkley B, Munro JI (2007) An optimal cache-oblivious priority queue and its application to graph algorithms. SIAM J Comput 36(6):1672–1695. Conference version appeared at STOC 2002

    Google Scholar 

  8. Arge L, Mølhave T, Zeh N (2008) Cache-oblivious red-blue line segment intersection. In: Proceedings of the 16th annual European symposium on algorithms, Karlsruhe. LNCS, vol 5193, pp 88–99

    Google Scholar 

  9. Bender M, Cole R, Demaine E, Farach-Colton M (2002) Scanning and traversing: maintaining data for traversals in a memory hierarchy. In: Proceedings of the 10th annual European symposium on algorithms, Rome. LNCS, vol 2461, pp 139–151

    Google Scholar 

  10. Bender M, Cole R, Raman R (2002) Exponential structures for cache-oblivious algorithms. In: Proceedings of the 29th international colloquium on automata, languages, and programming, Málaga. LNCS, vol 2380, pp 195–207

    Google Scholar 

  11. Bender M, Demaine E, Farach-Colton M (2002) Efficient tree layout in a multilevel memory hierarchy. In: Proceedings of the 10th annual European symposium on algorithms, Rome. LNCS, vol 2461, pp 165–173, corrected full version at http://arxiv.org/abs/cs/0211010

  12. Bender MA, Demaine ED, Farach-Colton M (2005) Cache-oblivious B-trees. SIAM J Comput 35(2):341–358. Conference version appeared at FOCS 2000

    Google Scholar 

  13. Bender MA, Brodal GS, Fagerberg R, Ge D, He S, Hu H, Iacono J, López-Ortiz A (2011) The cost of cache-oblivious searching. Algorithmica 61(2):463–505. Conference version appeared at FOCS 2003

    Google Scholar 

  14. Bille P, St&ckel M (2012) Fast and cache-oblivious dynamic programming with local dependencies. In: Proceedings of the 6th international conference on language and automata theory and applications, A Coruña. LNCS, vol 7183, pp 131–142

    Google Scholar 

  15. Brodal GS (2004) Cache-oblivious algorithms and data structures. In: Proceedings of the 9th Scandinavian workshop on algorithm theory, Humlebæk. LNCS, vol 3111, pp 3–13

    Google Scholar 

  16. Brodal GS, Fagerberg R (2002) Cache oblivious distribution sweeping. In: Proceedings of the 29th international colloquium on automata, languages, and programming, Málaga. LNCS, vol 2380, pp 426–438

    Google Scholar 

  17. Brodal GS, Fagerberg R (2002) Funnel heap – a cache oblivious priority queue. In: Proceedings of the 13th international symposium on algorithms and computation, Vancouver. LNCS, vol 2518, pp 219–228

    Google Scholar 

  18. Brodal GS, Fagerberg R (2003) On the limits of cache-obliviousness. In: Proceedings of the 35th annual ACM symposium on theory of computing, San Diego, pp 307–315

    Google Scholar 

  19. Brodal GS, Fagerberg R, Meyer U, Zeh N (2004) Cache-oblivious data structures and algorithms for undirected breadth-first search and shortest paths. In: Proceedings of the 9th Scandinavian workshop on algorithm theory, Humlebæk. LNCS, vol 3111, pp 480–492

    Google Scholar 

  20. Brodal GS, Fagerberg R, Moruz G (2005) Cache-aware and cache-oblivious adaptive sorting. In: Proceedings of the 32nd international colloquium on automata, languages and programming, Lisbon. LNCS, vol 3580, pp 576–588

    Google Scholar 

  21. Brodal GS, Fagerberg R, Vinther K (2007) Engineering a cache-oblivious sorting algorithm. ACM J Exp Algorithmics 12:Article 2.2. Conference version appeared at ALENEX 2004

    Google Scholar 

  22. Chan TM, Chen EY (2010) Optimal in-place and cache-oblivious algorithms for 3-D convex hulls and 2-D segment intersection. Comput Geom 43(8):636–646

    Article  MATH  MathSciNet  Google Scholar 

  23. Chowdhury RA, Ramachandran V (2004) Cache-oblivious shortest paths in graphs using buffer heap. In: Proceedings of the 16th annual ACM symposium on parallelism in algorithms and architectures, Barcelona

    Google Scholar 

  24. Chowdhury RA, Ramachandran V (2006) Cache-oblivious dynamic programming. In: Proceedings of the 17th annual ACM-SIAM symposium on discrete algorithms, Miami, pp 591–600

    Google Scholar 

  25. Chowdhury RA, Le HS, Ramachandran V (2010) Cache-oblivious dynamic programming for bioinformatics. IEEE/ACM Trans Comput Biol Bioinf 7(3):495–510

    Article  Google Scholar 

  26. Demaine ED (2002) Cache-oblivious algorithms and data structures. Lecture notes from the EEF summer school on massive data sets. Online version at http://theory.csail.mit.edu/∼edemaine/papers/BRICS2002/

  27. Fagerberg R, Pagh A, Pagh R (2006) External string sorting: faster and cache-oblivious. In: Proceedings of the 23rd annual symposium on theoretical aspects of computer science, Marseille. LNCS, vol 3884, pp 68–79

    Google Scholar 

  28. Farzan A, Ferragina P, Franceschini G, Munro JI (2005) Cache-oblivious comparison-based algorithms on multisets. In: Proceedings of the 13th annual European symposium on algorithms, Palma de Mallorca. LNCS, vol 3669, pp 305–316

    Google Scholar 

  29. Franceschini G (2004) Proximity mergesort: optimal in-place sorting in the cache-oblivious model. In: Proceedings of the 15th annual ACM-SIAM symposium on discrete algorithms, New Orleans, pp 291–299

    Google Scholar 

  30. Frigo M, Leiserson CE, Prokop H, Ramachandran S (2012) Cache-oblivious algorithms. ACM Trans Algorithms 8(1):4. Conference version appeared at FOCS 1999

    Google Scholar 

  31. Jampala H, Zeh N (2005) Cache-oblivious planar shortest paths. In: Proceedings of the 32nd international colloquium on automata, languages, and programming, Lisbon. LNCS, vol 3580, pp 563–575

    Google Scholar 

  32. Meyer U, Sanders P, Sibeyn JF (eds) (2003) Algorithms for memory hierarchies. LNCS, vol 2625. Springer, Berlin/Heidelberg/New York

    Google Scholar 

  33. Prokop H (1999) Cache-oblivious algorithms. Master’s thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology

    Google Scholar 

  34. Vitter JS (2001) External memory algorithms and data structures: dealing with MASSIVE data. ACM Comput Surv 33(2):209–271

    Article  Google Scholar 

  35. Vitter JS (2005) Geometric and spatial data structures in external memory. In: Mehta D, Sahni S (eds) Handbook on data structures and applications. Chapman & Hall/CRC, Boca Raton/London/New York/Washington, D.C

    Google Scholar 

  36. Vitter JS (2008) Algorithms and data structures for external memory. Found Trends Theor Comput Sci 2(4):305–474

    Article  MathSciNet  Google Scholar 

  37. Yotov K, Roeder T, Pingali K, Gunnels JA, Gustavson FG (2007) An experimental comparison of cache-oblivious and cache-conscious programs. In: Proceedings of the 19th annual ACM symposium on parallelism in algorithms and architectures, San Diego, pp 93–104

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rolf Fagerberg .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer Science+Business Media New York

About this entry

Cite this entry

Fagerberg, R. (2015). Cache-Oblivious Model. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27848-8_62-2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-27848-8_62-2

  • Received:

  • Accepted:

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Online ISBN: 978-3-642-27848-8

  • eBook Packages: Springer Reference Computer SciencesReference Module Computer Science and Engineering

Publish with us

Policies and ethics