Ling Liu's SC13 paper "Large Graph Processing Without the Overhead" featured by HPCwire.
Another list highlighting Open Source Software Releases.
Second GraphLab workshop should be even bigger than the first! GraphLab is a new programming framework for graph-style data analytics.
Parallel Shortest Paths Using Radius Stepping
SPAA 2016. 28th ACM Symposium on Parallelism in Algorithms and Architectures. Jul 11, 2016 - Jul 13, 2016. Asilomar State Beach, California, USA.
Guy Blelloch, Yan Gu, Yihan Sun, Kanat Tangwongsan*
Carnegie Mellon University
* Mahidol University
The single-source shortest path problem (SSSP) with nonnegative edge weights is notoriously difficult to solve efficiently in parallel — it is one of the graph problems said to suffer from the transitive-closure bottleneck. Yet, in practice, the Δ-stepping algorithm of Meyer and Sanders (J. Algorithms, 2003) often works efficiently but has no known theoretical bounds on general graphs. The algorithm takes a sequence of steps, each increasing the radius by an user-specified value Δ. Each step settles the vertices in its annulus but can take Θ(n) substeps, each requiring Θ(m) work (n vertices and m edges).
Building on the success of Δ-stepping, this paper describes Radius-Stepping, an algorithm with one of the best-known tradeos between work and depth bounds for SSSP with nearly-linear (Õ(m)) work. The algorithm is a Δ-stepping-like algorithm but uses a variable instead of a fixed-size increase in radii, allowing us to prove a bound on the number of steps. In particular, by using what we define as a vertex k-radius, each step takes at most k+2 substeps. Furthermore, we define a (k, ρ)-graph property and show that if an undirected graph has this property, then the number of steps can be bounded by O(n/ρ ∙ log ρL), for a total of O(kn/ρ ∙ log ρL) substeps, each parallel. We describe how to preprocess a graph to have this property. Altogether, for an arbitrary input graph with n vertices and m edges, Radius-Stepping, after preprocessing, takes O((m + nρ) log n) work and O(n/ρ ∙ log n log(ρL)) depth per source. The preprocessing step takes O(m log n + nρ2) work and O(ρ log ρ) depth, adding no more than O(nρ) edges.
FULL PAPER: pdf