The Cost of Cache-Oblivious Searching

This paper gives tight bounds on the cost of cache-oblivious searching. The paper shows that no cache-oblivious search structure can guarantee a search performance of fewer than lg elog BN memory transfers between any two levels of the memory hierarchy. This lower bound holds even if all of the block sizes are limited to be powers of 2. The paper gives modified versions of the van Emde Boas layout, where the expected number of memory transfers between any two levels of the memory hierarchy is arbitrarily close to [lg e+O(lg lg B/lg B)]log BN+O(1). This factor approaches lg e≈1.443 as B increases. The expectation is taken over the random placement in memory of the first element of the structure.Because searching in the disk-access machine (DAM) model can be performed in log BN+O(1) block transfers, this result establishes a separation between the (2-level) DAM model and cache-oblivious model. The DAM model naturally extends to k levels. The paper also shows that as k grows, the search costs of the optimal k-level DAM search structure and the optimal cache-oblivious search structure rapidly converge. This result demonstrates that for a multilevel memory hierarchy, a simple cache-oblivious structure almost replicates the performance of an optimal parameterized k-level DAM structure.

[1]  Edgar A. Ramos,et al.  I/O-Efficient Construction of Voronoi Diagrams , 2002 .

[2]  Michael A. Bender,et al.  New Algorithms for Disk Scheduling , 2002, Algorithmica.

[3]  Lalit M. Patnaik,et al.  Genetic algorithms: a survey , 1994, Computer.

[4]  Richard Cole,et al.  Scanning and Traversing: Maintaining Data for Traversals in a Memory Hierarchy , 2002, ESA.

[5]  Raimund Seidel,et al.  Cache-Oblivious Dynamic Dictionaries with Optimal Update / Query Tradeo , 2010 .

[6]  Jeffrey Scott Vitter,et al.  External memory algorithms and data structures: dealing with massive data , 2001, CSUR.

[7]  Erik D. Demaine,et al.  Cache-Oblivious Algorithms and Data Structures , 2003 .

[8]  Richard Cole,et al.  Optimised Predecessor Data Structures for Internal Memory , 2001, WAE.

[9]  Peter van Emde Boas,et al.  Preserving order in a forest in less than logarithmic time , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).

[10]  Bowen Alpern,et al.  The uniform memory hierarchy model of computation , 2005, Algorithmica.

[11]  Bowen Alpern,et al.  A model for hierarchical memory , 1987, STOC.

[12]  Sivan Toledo Locality of Reference in LU Decomposition with Partial Pivoting , 1997, SIAM J. Matrix Anal. Appl..

[13]  John E. Savage Extending the Hong-Kung Model to Memory Hierarchies , 1995, COCOON.

[14]  Jing Wu,et al.  A locality-preserving cache-oblivious dynamic dictionary , 2002, SODA '02.

[15]  Erik D. Demaine,et al.  Cache-oblivious dynamic dictionaries with update/query tradeoffs , 2010, SODA '10.

[16]  Gerth Stølting Brodal,et al.  Cache oblivious search trees via binary trees of small height , 2001, SODA '02.

[17]  Michael A. Bender,et al.  Concurrent cache-oblivious b-trees , 2005, SPAA '05.

[18]  Richard E. Ladner,et al.  Cache performance analysis of traversals and random accesses , 1999, SODA '99.

[19]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..

[20]  Gerth Stølting Brodal,et al.  Funnel Heap - A Cache Oblivious Priority Queue , 2002, ISAAC.

[21]  Roberto Grossi,et al.  Optimal Worst-Case Operations for Implicit Cache-Oblivious Search Trees , 2003, WADS.

[22]  Richard E. Ladner,et al.  A Comparison of Cache Aware and Cache Oblivious Static Search Trees Using Program Instrumentation , 2000, Experimental Algorithmics.

[23]  Pankaj K. Agarwal,et al.  Cache-oblivious data structures for orthogonal range searching , 2003, SCG '03.

[24]  Michael A. Bender,et al.  Efficient Tree Layout in a Multilevel Memory Hierarchy , 2002, ESA.

[25]  R. Singleton An algorithm for computing the mixed radix fast Fourier transform , 1969 .

[26]  Michael A. Bender,et al.  Cache-oblivious streaming B-trees , 2007, SPAA '07.

[27]  Jeffrey Scott Vitter,et al.  A theoretical framework for memory-adaptive algorithms , 1999, 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039).

[28]  Alok Aggarwal,et al.  Hierarchical memory with block transfer , 1987, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).

[29]  Jeffrey Scott Vitter,et al.  Algorithms for parallel memory, II: Hierarchical multilevel memories , 1992, Algorithmica.

[30]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[31]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[32]  Gerth Stølting Brodal,et al.  Cache-Oblivious Algorithms and Data Structures , 2004, SWAT.

[33]  H. T. Kung,et al.  I/O complexity: The red-blue pebble game , 1981, STOC '81.

[34]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[35]  John Wilkes,et al.  An introduction to disk drive modeling , 1994, Computer.

[36]  Rudolf Bayer,et al.  Organization and maintenance of large ordered indexes , 1972, Acta Informatica.

[37]  Richard E. Ladner,et al.  The influence of caches on the performance of sorting , 1997, SODA '97.

[38]  Sandeep Sen,et al.  Towards a theory of cache-efficient algorithms , 2000, SODA '00.

[39]  Richard Cole,et al.  Exponential Structures for Efficient Cache-Oblivious Algorithms , 2002, ICALP.

[40]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[41]  Michael A. Bender,et al.  The Cost of Cache-Oblivious Searching , 2003, 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings..

[42]  Michael A. Bender,et al.  Cache-Oblivious B-Trees , 2005, SIAM J. Comput..

[43]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .

[44]  Gerth Stølting Brodal,et al.  Cache Oblivious Distribution Sweeping , 2002, ICALP.

[45]  Jeffrey Scott Vitter,et al.  Algorithms for parallel memory, I: Two-level memories , 2005, Algorithmica.

[46]  Michael A. Bender,et al.  Cache-oblivious priority queue and graph algorithm applications , 2002, STOC '02.

[47]  Michael A. Bender,et al.  Cache-oblivious string B-trees , 2006, PODS '06.

[48]  Matteo Frigo,et al.  An analysis of dag-consistent distributed shared-memory algorithms , 1996, SPAA '96.

[49]  Roberto Grossi,et al.  Optimal Implicit Dictionaries over Unbounded Universes , 2006, Theory of Computing Systems.

[50]  Michael A. Bender,et al.  New algorithms for the disk scheduling problem , 1996, Proceedings of 37th Conference on Foundations of Computer Science.