In this paper, we study the single-source shortest-path (SSSP) problem with positive edge weights, which is a notoriously hard problem in the parallel context. In practice, the $\Delta$-stepping algorithm proposed by Meyer and Sanders has been widely adopted. However, $\Delta$-stepping has no known worst-case bounds for general graphs. The performance of $\Delta$-stepping also highly relies on the parameter $\Delta$. There have also been lots of algorithms with theoretical bounds, such as Radius-stepping, but they either have no implementations available or are much slower than $\Delta$-stepping in practice. We propose a stepping algorithm framework that generalizes existing algorithms such as $\Delta$-stepping and Radius-stepping. The framework allows for similar analysis and implementations of all stepping algorithms. We also propose a new ADT, lazy-batched priority queue (LaB-PQ), that abstracts the semantics of the priority queue needed by the stepping algorithms. We provide two data structures for LaB-PQ, focusing on theoretical and practical efficiency, respectively. Based on the new framework and LaB-PQ, we show two new stepping algorithms, $\rho$-stepping and $\Delta^*$-stepping, that are simple, with non-trivial worst-case bounds, and fast in practice. The stepping algorithm framework also provides almost identical implementations for three algorithms: Bellman-Ford, $\Delta^*$-stepping, and $\rho$-stepping. We compare our code with four state-of-the-art implementations. On five social and web graphs, $\rho$-stepping is 1.3--2.5x faster than all the existing implementations. On two road graphs, our $\Delta^*$-stepping is at least 14\% faster than existing implementations, while $\rho$-stepping is also competitive. The almost identical implementations for stepping algorithms also allow for in-depth analyses and comparisons among the stepping algorithms in practice.
翻译:在本文中,我们研究了单一源的最短路径(SSSP)问题, 其边际重量为正值, 但它在平行背景下是一个臭名昭著的难题。 实际上, 由迈耶 和桑德斯 提出的 $Delta 的渐进算法已被广泛采用。 然而, $Delta$ 的阶梯没有已知的一般最坏的框框。 $Delta$( SSSP) 的性能也高度依赖 $\ Delta 的参数 。 此外, 也有很多带有理论界限的算法, 如Radius 的阶梯值, 但是它们要么没有执行, 或者比 $Delta 的阶梯值要慢得多。 我们提出了一个跳梯法框架, 例如 $Delta 和 Radius 的阶梯度 。 我们还提出了一个新的 ADDDD, labrietri 优先队列 (LaB-PQ), 和 以两个阶梯级的阶梯队列 。 我们提供了两个在运行中的快速算法 Q 。