Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation
Communications of the ACM
Faster algorithms for the shortest path problem
Journal of the ACM (JACM)
Fast and reliable parallel hashing
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
Network flows: theory, algorithms, and applications
Network flows: theory, algorithms, and applications
Shortest paths algorithms: theory and experimental evaluation
Mathematical Programming: Series A and B
LogP: a practical model of parallel computation
Communications of the ACM
Using selective path-doubling for parallel shortest-path computations
Journal of Algorithms
Shortest paths in digraphs of small treewidth. Part II: optimal parallel algorithms
ESA '95 Selected papers from the third European symposium on Algorithms
A parallel priority queue with constant time operations
Journal of Parallel and Distributed Computing - Parallel and distributed data structures
Polylog-time and near-linear work approximation scheme for undirected shortest paths
Journal of the ACM (JACM)
Average-case complexity of shortest-paths problems in the vertex-potential model
Random Structures & Algorithms
Distributed computation on graphs: shortest path algorithms
Communications of the ACM
Algorithm 360: shortest-path forest with topological ordering [H]
Communications of the ACM
A Parallelization of Dijkstra's Shortest Path Algorithm
MFCS '98 Proceedings of the 23rd International Symposium on Mathematical Foundations of Computer Science
Efficient Parallel Algorithms for Planar st-Graphs
ISAAC '97 Proceedings of the 8th International Symposium on Algorithms and Computation
Randomized parallel algorithms
Solving Combinatorial Optimization Problems in Parallel - Methods and Techniques
Software engineering for multicore systems: an experience report
Proceedings of the 1st international workshop on Multicore software engineering
CUDA Solutions for the SSSP Problem
ICCS '09 Proceedings of the 9th International Conference on Computational Science: Part I
PFunc: modern task parallelism for modern high performance computing
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Pregel: a system for large-scale graph processing
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
AM++: a generalized active message framework
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Multithreaded Asynchronous Graph Traversal for In-Memory and Semi-External Memory
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Ordered vs. unordered: a comparison of parallelism and work-efficiency in irregular algorithms
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Active pebbles: a programming model for highly parallel fine-grained data-driven computations
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
TAPAS'11 Proceedings of the First international ICST conference on Theory and practice of algorithms in (computer) systems
Elixir: a system for synthesizing concurrent graph programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Breaking the speed and scalability barriers for graph exploration on distributed-memory machines
SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Ligra: a lightweight graph processing framework for shared memory
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Expressing graph algorithms using generalized active messages
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Expressing graph algorithms using generalized active messages
Proceedings of the 27th international ACM conference on International conference on supercomputing
Hi-index | 0.00 |
The single source shortest path problem for arbitrary directed graphs with n nodes, m edges and nonnegative edge weights can sequentially be solved using O(n ċ log n + m) operations. However, no work-efficient parallel algorithm is known that runs in sublinear time for arbitrary graphs. In this paper we present a rather simple algorithm for the single source shortest path problem. Our new algorithm, which we call Delta-stepping, can be implemented very efficiently in sequential and parallel setting for a large class of graphs. For random edge weights and arbitrary graphs with maximum node degree d, sequential Δ-stepping needs O(n + m + d ċ L) total average-case time, where L denotes the maximum shortest path weight from the source node s to any node reachable from s. For example, this means linear time on directed graphs with constant maximum degree. Our best parallel version for a PRAM takes O(d ċ L ċ log n + log2 n) time and O(n + m + d ċ L ċ log n) work on average. For random graphs, even O(log2 n) time and O(n + m) work on average can be achieved. We also discuss how the algorithm can be adapted to work with nonrandom edge weights and how it can be implemented on distributed memory machines. Experiments indicate that already a simple implementation of the algorithm achieves significant speedup on real machines.