The input/output complexity of sorting and related problems
Communications of the ACM
External-memory graph algorithms
Proceedings of the sixth annual ACM-SIAM symposium on Discrete algorithms
On external memory graph traversal
SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms
Introduction to algorithms
Heuristics for semi-external depth first search on directed graphs
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
I/O-efficient topological sorting of planar DAGs
Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures
Efficient Flow Computation on Massive Grid Terrain Datasets
Geoinformatica
STXXL: standard template library for XXL data sets
Software—Practice & Experience
I/O-efficient algorithms for computing planar geometric spanners
Computational Geometry: Theory and Applications
Finding strongly connected components in parallel using O(log2n) reachability queries
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
I/O-Efficient Planar Separators
SIAM Journal on Computing
A Heuristic Strong Connectivity Algorithm for Large Graphs
SEA '09 Proceedings of the 8th International Symposium on Experimental Algorithms
I/O-Efficient Contour Tree Simplification
ISAAC '09 Proceedings of the 20th International Symposium on Algorithms and Computation
Computing strongly connected components in the streaming model
TAPAS'11 Proceedings of the First international ICST conference on Theory and practice of algorithms in (computer) systems
Hi-index | 0.00 |
We present an I/O-efficient algorithm for topologically sorting directed acyclic graphs, called IterTS. In the worst case, our algorithm is extremely inefficient and performs O(n ċ sort(m)) I/Os. However, our experiments show that IterTS achieves good performance in practice. To evaluate IterTS, we compared its running time to those of three competitors: PeelTS, an I/O-efficient implementation of the standard strategy of iteratively removing sources and sinks; ReachTS, an I/O-efficient implementation of a recent parallel divide-and-conquer algorithm based on reachability queries; and SeTS, a standard DFS-based topological sorting built on top of a semiexternal DFS algorithm. In our evaluation on various types of input graphs, IterTS consistently outperformed PeelTS and ReachTS by at least an order of magnitude in most cases. SeTS outperformed IterTS on most graphs whose vertex sets fit in memory. However, IterTS often came close to the running time of SeTS on these inputs and, more importantly, SeTS was not able to process graphs whose vertex sets were beyond the size of main memory, while IterTS was able to process such inputs efficiently.