Results 1 
8 of
8
STXXL: Standard template library for XXL data sets
 In: Proc. of ESA 2005. Volume 3669 of LNCS
, 2005
"... for processing huge data sets that can fit only on hard disks. It supports parallel disks, overlapping between disk I/O and computation and it is the first I/Oefficient algorithm library that supports the pipelining technique that can save more than half of the I/Os. STXXL has been applied both in ..."
Abstract

Cited by 39 (5 self)
 Add to MetaCart
for processing huge data sets that can fit only on hard disks. It supports parallel disks, overlapping between disk I/O and computation and it is the first I/Oefficient algorithm library that supports the pipelining technique that can save more than half of the I/Os. STXXL has been applied both in academic and industrial environments for a range of problems including text processing, graph algorithms, computational geometry, gaussian elimination, visualization, and analysis of microscopic images, differential cryptographic analysis, etc. The performance of STXXL and its applications is evaluated on synthetic and realworld inputs. We present the design of the library, how its performance features are supported, and demonstrate how the library integrates with STL. KEY WORDS: very large data sets; software library; C++ standard template library; algorithm engineering 1.
I/Oefficient undirected shortest paths
 In Proc. 11th Annual European Symposium on Algorithms, volume 2832 of LNCS
, 2003
"... Abstract. We show how to compute singlesource shortest paths in undirected graphs with nonnegative edge lengths in O ( p nm/B log n + MST (n, m)) I/Os, where n is the number of vertices, m is the number of edges, B is the disk block size, and MST (n, m) is the I/Ocost of computing a minimum spann ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
Abstract. We show how to compute singlesource shortest paths in undirected graphs with nonnegative edge lengths in O ( p nm/B log n + MST (n, m)) I/Os, where n is the number of vertices, m is the number of edges, B is the disk block size, and MST (n, m) is the I/Ocost of computing a minimum spanning tree. For sparse graphs, the new algorithm performs O((n / √ B) log n) I/Os. This result removes our previous algorithm’s dependence on the edge lengths in the graph. 1
I/Oefficient strong connectivity and depthfirst search for directed planar graphs
 In Proceedings of the 44th IEEE Symposium on Foundations of Computer Science
, 2003
"... We present the first I/Oefficient algorithms for the following fundamental problems on directed planar graphs: finding the strongly connected components, finding a simplepath 2 3separator, and computing a depthfirst spanning (DFS) tree. Our algorithms for the first two problems perform O(sort(N ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
We present the first I/Oefficient algorithms for the following fundamental problems on directed planar graphs: finding the strongly connected components, finding a simplepath 2 3separator, and computing a depthfirst spanning (DFS) tree. Our algorithms for the first two problems perform O(sort(N)) I/Os, where N = V + E and sort(N) = Θ((N/B)log M/B (N/B)) is the number of I/Os required to sort N elements. The DFSalgorithm performs O(sort(N)log(N/M)) I/Os, where M is the number of elements that fit into main memory. 1.
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.
Structures for External Memory
"... Data sets in large applications are often too massive to fit completely inside the computer's internal memory. The resulting input/output communication (or I/O) between fast internal memory and slower external memory (such as disks) can be a major performance bottleneck. Algorithms and Data Structur ..."
Abstract
 Add to MetaCart
Data sets in large applications are often too massive to fit completely inside the computer's internal memory. The resulting input/output communication (or I/O) between fast internal memory and slower external memory (such as disks) can be a major performance bottleneck. Algorithms and Data Structures for External Memory surveys the state of the art in the design and analysis of external memory (or EM) algorithms and data structures, where the goal is to exploit locality in order to reduce the I/O costs. A variety of EM paradigms are considered for solving batched and online problems efficiently in external memory. Algorithms and Data Structures for External Memory describes several useful paradigms for the design and implementation of efficient EM algorithms and data structures. The problem domains considered include sorting, permuting, FFT, scientific computing, computational geometry, graphs, databases, geographic information systems, and text and string processing. Algorithms and Data Structures for External Memory is an invaluable reference for anybody interested in, or conducting research in the design, analysis, and implementation of algorithms and data structures. This book is originally published as
Pruning spanners and constructing wellseparated pair decompositions in the presence of memory hierarchies
, 2010
"... ..."
I/OEfficient Algorithms on NearPlanar Graphs
, 2011
"... Obtaining I/Oefficient algorithms for basic graph problems on sparse directed graphs has been a longstanding open problem. The best known algorithms for most basic problems on such graphs still require Ω(V) I/Os in the worst case, where V is the number of vertices in the graph. Nevertheless optima ..."
Abstract
 Add to MetaCart
Obtaining I/Oefficient algorithms for basic graph problems on sparse directed graphs has been a longstanding open problem. The best known algorithms for most basic problems on such graphs still require Ω(V) I/Os in the worst case, where V is the number of vertices in the graph. Nevertheless optimal O(sort(V)) I/O algorithms are known for special classes of sparse graphs, like planar graphs and grid graphs. It is hard to accept that a problem becomes difficult as soon as the graph contains a few deviations from planarity. In this paper we extend the class of graphs on which basic graph problems can be solved I/Oefficiently. We discuss several ways to transform graphs that are almost planar into planar graphs (given a suitable drawing), and based on those transformations we obtain the first I/Oefficient algorithms for directed graphs that are almost planar. Let G be a directed graph that is given as a planar subgraph (V, E) and a set of additional edges EC. Our main result is a singlesourceshortestpaths algorithm that runs in O(EC + sort(V + EC)) I/Os. When EC is small our algorithm is a significant improvement over the best previously known algorithms, which required Ω(V) I/Os. Alternatively, when G is given with a drawing with T crossings, we can compute singlesource shortest paths in O(sort(V + T)) I/Os. We obtain similar bounds for computing (strongly) connected components, breadthfirst and depthfirst traversals and topological ordering. Submitted:
SelfAdaptive Containers: Functionality Extensions and Further Case Study
"... Abstract—As the number of execution environments and application contexts rises exponentially, everchanging nonfunctional requirements can lead to repeated code refactoring. In addition, scaling up software to support large input sizes may require major modification of code. To address these chall ..."
Abstract
 Add to MetaCart
Abstract—As the number of execution environments and application contexts rises exponentially, everchanging nonfunctional requirements can lead to repeated code refactoring. In addition, scaling up software to support large input sizes may require major modification of code. To address these challenges, we have previously proposed a framework of selfadaptive containers which can automatically adjust their resource usage to meet Service Level Objectives and dynamically deploy the techniques of outofcore storage and probabilistic data structures. A prototype with limited functionalities was implemented and applied to explicit state space exploration to prove the viability of our framework. In this paper, we broaden the library’s functionalities through support for the important container class of keyvalue stores and integration of priority queues ’ functionalities into our previouslydeveloped container class. We then utilise them in a new case study centred on route planning, adopting Dijkstra’s shortest path algorithm. For this, a graph representing the full USA road network, which contains approximately 24 million nodes and 58 million arcs, is input to the algorithm so as to find the shortest paths from a random node to all the other nodes. The experimental results have shown that, under particular Service Level Objectives our library reduces update time by 21.4%, primary memory usage of node storage by 85.3%, and primary memory consumption required by the priority queue by 78%, compared with the Standard Template Library.