Results 1 
9 of
9
CacheOblivious Data Structures and Algorithms for Undirected BreadthFirst Search and Shortest Paths
 IN PROCEEDINGS OF THE 9TH SCANDINAVIAN WORKSHOP ON ALGORITHM THEORY
, 2004
"... We present improved cacheoblivious data structures and algorithms for breadthfirst search and the singlesource shortest path problem on undirected graphs with nonnegative edge weights. Our results close the performance gap between the currently best cacheaware algorithms for these problems and ..."
Abstract

Cited by 25 (9 self)
 Add to MetaCart
We present improved cacheoblivious data structures and algorithms for breadthfirst search and the singlesource shortest path problem on undirected graphs with nonnegative edge weights. Our results close the performance gap between the currently best cacheaware algorithms for these problems and their cacheoblivious counterparts. Our shortestpath algorithm relies on a new data structure, called bucket heap, which is the first cacheoblivious priority queue to efficiently support a weak DecreaseKey operation.
Engineering a cacheoblivious sorting algorithm
 In Proc. 6th Workshop on Algorithm Engineering and Experiments
, 2004
"... The cacheoblivious model of computation is a twolevel 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 multilevel memory mod ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
The cacheoblivious model of computation is a twolevel 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 multilevel memory model. Since the introduction of the cacheoblivious 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 cacheoblivious algorithms carry over into practice. This paper is an algorithmic engineering study of cacheoblivious sorting. We investigate a number of implementation issues and parameters choices for the cacheoblivious 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 cacheaware proposals. The main result is a carefully implemented cacheoblivious 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
Cacheoblivious algorithms and data structures
 IN SWAT
, 2004
"... Frigo, Leiserson, Prokop and Ramachandran in 1999 introduced the idealcache model as a formal model of computation for developing algorithms in environments with multiple levels of caching, and coined the terminology of cacheoblivious algorithms. Cacheoblivious algorithms are described as stand ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
Frigo, Leiserson, Prokop and Ramachandran in 1999 introduced the idealcache model as a formal model of computation for developing algorithms in environments with multiple levels of caching, and coined the terminology of cacheoblivious algorithms. Cacheoblivious 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 twolevel I/O model of Aggarwal and Vitter for an arbitrary memory and block size and an optimal offline cache replacement strategy. The result are algorithms that automatically apply to multilevel memory hierarchies. This paper gives an overview of the results achieved on cacheoblivious algorithms and data structures since the seminal paper by Frigo et al.
An Optimal CacheOblivious Priority Queue and its Application to Graph Algorithms
 SIAM JOURNAL ON COMPUTING
, 2007
"... We develop an optimal cacheoblivious priority queue data structure, supporting insertion, deletion, and deletemin operations in $O(\frac{1}{B}\log_{M/B}\frac{N}{B})$ amortized memory transfers, where $M$ and $B$ are the memory and block transfer sizes of any two consecutive levels of a multilevel ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We develop an optimal cacheoblivious priority queue data structure, supporting insertion, deletion, and deletemin operations in $O(\frac{1}{B}\log_{M/B}\frac{N}{B})$ amortized memory transfers, where $M$ and $B$ are the memory and block transfer sizes of any two consecutive levels of a multilevel memory hierarchy. In a cacheoblivious data structure, $M$ and $B$ are not used in the description of the structure. Our structure is as efficient as several previously developed external memory (cacheaware) priority queue data structures, which all rely crucially on knowledge about $M$ and $B$. Priority queues are a critical component in many of the best known external memory graph algorithms, and using our cacheoblivious priority queue we develop several cacheoblivious graph algorithms.
ExternalMemory Exact and Approximate AllPairs ShortestPaths in Undirected Graphs
, 2004
"... We present several new externalmemory algorithms for finding allpairs shortest paths in a Vnode, Eedge undirected graph. For allpairs shortest paths and diameter in unweighted undirected graphs we present cacheoblivious algorithnls with O(V. ~ log. ~ ~) I/Os, where B is the blocksize and M is ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We present several new externalmemory algorithms for finding allpairs shortest paths in a Vnode, Eedge undirected graph. For allpairs shortest paths and diameter in unweighted undirected graphs we present cacheoblivious algorithnls with O(V. ~ log. ~ ~) I/Os, where B is the blocksize and M is the size of internal memory. For weighted tmdirected graphs we present a cacheaware APSP algorithm that performs O(V. ( V/ ~ + ~ log ~)) I/Os. We also present efficient cacheaware algorithms that find paths between all pairs of vertices in an unweighted graph with lengths within a small additive constant of the shortest path length. All of our results improve earlier results known for these problems. For approximate APSP we provide the first nontrivial results. Our diameter result uses C9(V + E) extra space, and all of our other algorithms use O(V 2) space. 1
Implementation and experimental evaluation of the cacheoblivious buffer heap, 2006. Undergraduate Honors Thesis
, 2006
"... ..."
Experimental study of high performance priority queues, 2007. Undergraduate Honors Thesis
, 2007
"... The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the e ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the experiments is to measure the speed and performance of highly specialized priority queues in outofcore and memory intensive situations. The priority queues are run incore on small input sizes as well as outofcore using large input sizes and restricted memory. The experiments compare a variety of wellknown priority queue implementations such as Binary Heap with highly specialized implementations, such as 4ary Aligned Heap, Chowdhury and Ramachandran’s Auxiliary Buffer Heap, and Fast Binary Heap. The experiments include CacheAware as well as CacheOblivious priority queues. The results indicate that the highperformance priority queues easily outperform traditional implementations. Also, overall the Auxiliary Buffer Heap has the best performance among the priority queues considered in most incore and outofcore situations. 1 1
Cacheoblivious planar shortest paths
 In Proc. 32nd International Colloquium on Automata, Languages, and Programming. LNCS
, 2005
"... Abstract. We present an efficient cacheoblivious implementation of the shortestpath algorithm for planar graphs by Klein et al., and prove that it incurs no more than O ` N B1/2−ɛ + N B log N ´ block transfers on a graph with N vertices. This is the first cacheoblivious algorithm for this problem ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. We present an efficient cacheoblivious implementation of the shortestpath algorithm for planar graphs by Klein et al., and prove that it incurs no more than O ` N B1/2−ɛ + N B log N ´ block transfers on a graph with N vertices. This is the first cacheoblivious algorithm for this problem that incurs o(N) block transfers. 1
Priority Queues and Dijkstra’s Algorithm ∗
, 2007
"... We study the impact of using different priority queues in the performance of Dijkstra’s SSSP algorithm. We consider only general priority queues that can handle any type of keys (integer, floating point, etc.); the only exception is that we use as a benchmark the DIMACS Challenge SSSP code [1] which ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We study the impact of using different priority queues in the performance of Dijkstra’s SSSP algorithm. We consider only general priority queues that can handle any type of keys (integer, floating point, etc.); the only exception is that we use as a benchmark the DIMACS Challenge SSSP code [1] which can handle only integer values for distances. Our experiments were focussed on the following: 1. We study the performance of two variants of Dijkstra’s algorithm: the wellknown version that uses a priority queue that supports the DecreaseKey operation, and another that uses a basic priority queue that supports only Insert and DeleteMin. For the latter type of priority queue we include several for which highperformance code is available such as bottomup binary heap, aligned 4ary heap, and sequence heap [33]. 2. We study the performance of Dijkstra’s algorithm designed for flat memory relative to versions that try to be cacheefficient. For this, in main part, we study the difference in performance of Dijkstra’s algorithm relative to the cacheefficiency of the priority queue used, both incore and outofcore. We also study the performance of an implementation