Papers › A Combinatorial Algorithm for Approximating the Optimal Transport in the Parallel and...

A Combinatorial Algorithm for Approximating the Optimal Transport in the Parallel and MPC Settings

21 Sep 2023NeurIPS 2023 11archive 2025-07-28

Optimal Transport is a popular distance metric for measuring similarity between distributions. Exact and approximate combinatorial algorithms for computing the optimal transport distance are hard to parallelize. This has motivated the development of numerical solvers (e.g. Sinkhorn method) that can exploit GPU parallelism and produce approximate solutions. We introduce the first parallel combinatorial algorithm to find an additive ε-approximation of the OT distance. The parallel complexity of our algorithm is O(log(n)/ ε²) where n is the total support size for the input distributions. In Massive Parallel Computation (MPC) frameworks such as Hadoop and MapReduce, our algorithm computes an ε-approximate transport plan in O(log(log(n/ε))/ε²) rounds with O(n/ε) space per machine; all prior algorithms in the MPC framework take Ω(logn) rounds. We also provide a GPU-friendly matrix-based interpretation of our algorithm where each step of the algorithm is row or column manipulation of the matrix. Experiments suggest that our combinatorial algorithm is faster than the state-of-the-art approximate solvers in the GPU, especially for higher values of n.

PaperPDFCode

Code

kaiyiz/combinatorial-parallel-ot officialmentioned in paperpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections