SHARDLP: a distributed GPU solver that handles billion‑variable linear programs across GPU clusters
Researchers present SHARDLP, a distributed linear‑programming (LP) solver that keeps the problem and the solver state split across many GPUs from input all the way to solution. The goal is to avoid the single‑node memory bottleneck that stops many large LPs from fitting on one machine. SHARDLP builds on a first‑order method called primal–dual hybrid gradient (PDHG), whose main computations—sparse matrix–vector products and simple vector updates—map well to GPUs.
The key idea is “persistent ownership”: SHARDLP partitions the constraint matrix and the primal–dual state into shards and keeps those shards on the same GPU throughout every solver phase. The authors arrange GPUs in a two‑dimensional process grid so each rank stores a block of the matrix and the matching slices of vectors. They also add “support‑aware” communication for column‑partitioned problems, which skips GPUs that hold no coefficients for a specific row and so reduces data movement.
The paper reports concrete scaling results on a published, large benchmark set from the Google PDLP study. SHARDLP met the Google study’s published acceptance criterion on nine of eleven instances (the CPU PDLP study reached eight). On the largest Google instance, eight H200 GPUs solved a problem with 1.185 billion variables and 6.338 billion nonzeros in about 9.9 minutes of solver time (933.4 seconds end‑to‑end), whereas the published 32‑core CPU run on different hardware took 21.06 hours. The authors also validated multi‑node solves that reached 13.604 billion variables and 40.807 billion nonzeros, including a run on 76 GPUs across 29 nodes that completed in 1,905 seconds. On one tested model with 2.76 billion nonzeros, support‑aware communication reduced modeled communication by 92.97% and sped up solver time by roughly 1.27×–1.52×.
Why this matters: factorization‑based LP solvers can hit memory limits when problems grow extremely large. First‑order methods like PDHG avoid those factorizations, so they suit GPUs and distributed memory better. By keeping shards distributed through every solver phase and by reducing unnecessary communication, SHARDLP makes it possible to solve very large LPs that would not fit in a single node and to do so much faster than some prior CPU results.