Results 1 - 10
of
23
Cache-oblivious B-trees
, 2000
"... Abstract. This paper presents two dynamic search trees attaining near-optimal performance on any hierarchical memory. The data structures are independent of the parameters of the memory hierarchy, e.g., the number of memory levels, the block-transfer size at each level, and the relative speeds of me ..."
Abstract
-
Cited by 119 (21 self)
- Add to MetaCart
Abstract. This paper presents two dynamic search trees attaining near-optimal performance on any hierarchical memory. The data structures are independent of the parameters of the memory hierarchy, e.g., the number of memory levels, the block-transfer size at each level, and the relative speeds of memory levels. The performance is analyzed in terms of the number of memory transfers between two memory levels with an arbitrary block-transfer size of B; this analysis can then be applied to every adjacent pair of levels in a multilevel memory hierarchy. Both search trees match the optimal search bound of Θ(1+logB+1 N) memory transfers. This bound is also achieved by the classic B-tree data structure on a two-level memory hierarchy with a known block-transfer size B. The first search tree supports insertions and deletions in Θ(1 + logB+1 N) amortized memory transfers, which matches the B-tree’s worst-case bounds. The second search tree supports scanning S consecutive elements optimally in Θ(1 + S/B) memory transfers and supports insertions and deletions in Θ(1 + logB+1 N + log2 N) amortized memory transfers, matching the performance of the B-tree for B = B Ω(log N log log N).
Cache-Oblivious Data Structures and Algorithms for Undirected Breadth-First Search and Shortest Paths
- IN PROCEEDINGS OF THE 9TH SCANDINAVIAN WORKSHOP ON ALGORITHM THEORY
, 2004
"... We present improved cache-oblivious data structures and algorithms for breadth-first search and the single-source shortest path problem on undirected graphs with non-negative edge weights. Our results close the performance gap between the currently best cache-aware algorithms for these problems and ..."
Abstract
-
Cited by 21 (8 self)
- Add to MetaCart
We present improved cache-oblivious data structures and algorithms for breadth-first search and the single-source shortest path problem on undirected graphs with non-negative edge weights. Our results close the performance gap between the currently best cache-aware algorithms for these problems and their cache-oblivious counterparts. Our shortest-path algorithm relies on a new data structure, called bucket heap, which is the first cache-oblivious priority queue to efficiently support a weak DecreaseKey operation.
Engineering a cache-oblivious sorting algorithm
- In Proc. 6th Workshop on Algorithm Engineering and Experiments
, 2004
"... 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 mod ..."
Abstract
-
Cited by 20 (1 self)
- Add to MetaCart
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. Since the introduction of the cache-oblivious model by Frigo et al. in 1999, a number of algorithms and data structures in the model has been proposed and analyzed. However, less attention has been given to whether the nice theoretical proporities of cache-oblivious algorithms carry over into practice. This paper is an algorithmic engineering study of cache-oblivious sorting. We investigate a number of implementation issues and parameters choices for the cache-oblivious sorting algorithm Lazy Funnelsort by empirical methods, and compare the final algorithm with Quicksort, the established standard for comparison based sorting, as well as with recent cache-aware proposals. The main result is a carefully implemented cache-oblivious sorting algorithm, which we compare to the best implementation of Quicksort we can find, and find that it competes very well for input residing in RAM, and outperforms Quicksort for input on disk. 1
Cache-oblivious string dictionaries
- In Proc. 17th Annual Symposium on Discrete Algorithm (SODA
, 2006
"... Abstract We present static cache-oblivious dictionary structuresfor strings which provide analogues of tries and suffix trees in the cache-oblivious model. Our constructiontakes as input either a set of strings to store, a single string for which all suffixes are to be stored, a trie, acompressed tr ..."
Abstract
-
Cited by 15 (2 self)
- Add to MetaCart
Abstract We present static cache-oblivious dictionary structuresfor strings which provide analogues of tries and suffix trees in the cache-oblivious model. Our constructiontakes as input either a set of strings to store, a single string for which all suffixes are to be stored, a trie, acompressed trie, or a suffix tree, and creates a cacheoblivious data structure which performs prefix queriesin O(logB n + |P |/B) I/Os, where n is the number ofleaves in the trie, P is the query string, and B is theblock size. This query cost is optimal for unbounded alphabets. The data structure uses linear space. 1 Introduction Strings are one of basic data models of computer science.They have numerous applications, e.g. for textual and biological data, and generalize other models such asintegers and multi-dimensional data. A basic problem in the model is to store a set of strings such thatstrings in the set having a given query string
Cache-Oblivious Planar Orthogonal Range Searching and Counting
- In Proc. ACM Symposium on Computational Geometry
, 2005
"... We present the first cache-oblivious data structure for planar orthogonal range counting, and improve on previous results for cache-oblivious planar orthogonal range searching. Our range counting structure uses O(N log2 N) space and answers queries using O(logB N) memory transfers, where B is the bl ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
We present the first cache-oblivious data structure for planar orthogonal range counting, and improve on previous results for cache-oblivious planar orthogonal range searching. Our range counting structure uses O(N log2 N) space and answers queries using O(logB N) memory transfers, where B is the block size of any memory level in a multilevel memory hierarchy. Using bit manipulation techniques, the space can be further reduced to O(N). The structure can also be modified to support more general semigroup range sum queries in O(logB N) memory transfers, using O(N log2 N) space for three-sided queries and O(N log 2 2 N / log2 log2 N)
Cache-oblivious algorithms and data structures
- In SWAT
, 2004
"... 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 ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
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. 1
Cache-aware and cache-oblivious adaptive sorting
- In Proc. 32nd International Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science
, 2005
"... Abstract. Two new adaptive sorting algorithms are introduced which perform an optimal number of comparisons with respect to the number of inversions in the input. The first algorithm is based on a new linear time reduction to (non-adaptive) sorting. The second algorithm is based on a new division pr ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Abstract. Two new adaptive sorting algorithms are introduced which perform an optimal number of comparisons with respect to the number of inversions in the input. The first algorithm is based on a new linear time reduction to (non-adaptive) sorting. The second algorithm is based on a new division protocol for the GenericSort algorithm by Estivill-Castro and Wood. From both algorithms we derive I/O-optimal cache-aware and cache-oblivious adaptive sorting algorithms. These are the first I/Ooptimal adaptive sorting algorithms. 1
Network-Oblivious Algorithms
- IN PROC. OF 21ST INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM
, 2007
"... The design of algorithms that can run unchanged yet efficiently on a variety of machines characterized by different degrees of parallelism and communication capabilities is a highly desirable goal. We propose a framework for network-obliviousness based on a model of computation where the only parame ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
The design of algorithms that can run unchanged yet efficiently on a variety of machines characterized by different degrees of parallelism and communication capabilities is a highly desirable goal. We propose a framework for network-obliviousness based on a model of computation where the only parameter is the problem’s input size. Algorithms are then evaluated on a model with two parameters, capturing parallelism and granularity of communication. We show that, for a wide class of network-oblivious algorithms, optimality in the latter model implies optimality in a block-variant of the Decomposable BSP model, which effectively describes a wide and significant class of parallel platforms. We illustrate our framework by providing optimal network-oblivious algorithms for a few key problems, and also establish some negative results. 1
Cache-oblivious range reporting with optimal queries requires superlinear space
- In Proceedings of the 25th ACM Symposium on Computational Geometry
, 2009
"... We consider a number of range reporting problems in two and three dimensions and prove lower bounds on the amount of space required by any cache-oblivious data structure for these problems that achieves an optimal query bound of O(log B N + K/B) block transfers in the worst case, where K is the size ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We consider a number of range reporting problems in two and three dimensions and prove lower bounds on the amount of space required by any cache-oblivious data structure for these problems that achieves an optimal query bound of O(log B N + K/B) block transfers in the worst case, where K is the size of the query output. The problems we study are three-sided range reporting, 3-d dominance reporting, and 3-d halfspace range reporting. We prove that, in order to achieve the above query bound or even a bound of O((log B N) c (1 + K/B)), for any constant c> 0, the structure has to use Ω(N(log log N) ε) space, where ε> 0 is a constant that depends on c and on the constant hidden in the big-Oh notation of the query bound. Our result has a number of interesting consequences. The first one is a new type of separation between the I/O model and the cache-oblivious model, as I/O-efficient data structures with the optimal query bound and using linear or O(N log ∗ N) space are known for the above problems. The second consequence is the non-existence of a linear-space cache-oblivious persistent B-tree with worst-case optimal 1-d range reporting queries. Part of this work was done while visiting Dalhousie University.
Simple and semi-dynamic structures for cache-oblivious planar orthogonal range searching
- In Proc. 22nd ACM Symposium on Computational Geometry
, 2006
"... In this paper, we develop improved cache-oblivious data structures for two- and three-sided planar orthogonal range searching. Our main result is an optimal static structure for two-sided range searching that uses linear space and supports queries in O(logB N + T/B) memory transfers, where B is the ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
In this paper, we develop improved cache-oblivious data structures for two- and three-sided planar orthogonal range searching. Our main result is an optimal static structure for two-sided range searching that uses linear space and supports queries in O(logB N + T/B) memory transfers, where B is the block size of any level in a multi-level memory hierarchy and T is the number of reported points. Our structure is the first linear-space cache-oblivious structure for a planar range searching problem with the optimal O(logB N +T/B) query bound. The structure is very simple, and we believe it to be of practical interest. We also show that our two-sided range search structure can be constructed cache-obliviously in O(N logB N) memory transfers. Using the logarithmic method and fractional cascading, this leads to a semi-dynamic linear-space structure that supports two-sided range queries in O(log2 N + T/B) memory transfers and insertions in O(log2 N ·logB N) memory transfers amortized. This structure is the first (semi-)dynamic structure for any planar range searching problem with a query bound that is logarithmic in the number of elements in the structure and linear in the output size. Finally, using a simple standard construction, we also obtain a static O(N log2 N)-space structure for three-sided range searching that supports queries in the optimal bound of O(logB N +T/B) memory transfers. These bounds match the bounds of the best previously known structure for this

