线性规划的GPU加速预求解
GPU-Accelerated Presolving for Linear Programming
查看机构详情
- Stanford University(斯坦福大学)
机构由 AI 辅助整理,请以论文原文为准。
浏览论文内容
中文总结 AI 辅助
本文挑战预求解本质顺序的观点,提出简单设计原则并实现GPU加速预求解器cuPSLP,在Mittelmann和GAMS基准集上分别提速11倍和42倍,且归约质量相当。
中文摘要 AI 辅助
近期的研究聚焦于开发用于求解线性规划(LP)的GPU加速算法,其结果非同凡响。但一个完整的求解器流程包含的远不止核心算法,一个显而易见的问题是,诸如预求解等阶段仍停留在CPU上,而这些阶段已日益成为巨大的瓶颈。预求解之所以仍留在CPU上,是因为学术界和工业界的开发者长期持有一种观点,认为预求解本质上是顺序且不规则的,因此难以高效并行化。在本文中,我们挑战了这一观点,并表明预求解能够从GPU加速中获益匪浅。我们描述了简单的设计原则,这些原则避免了严重的负载不平衡,并在看似本质顺序的归约中暴露了并行性。我们在cuPSLP中实现了这些原则,cuPSLP是PSLP的GPU加速版本,而PSLP本身是一个基于CPU的预求解器,其速度比最先进的商业预求解器快数倍。在我们的实验中,在Mittelmann LP基准集上,cuPSLP将PSLP的移位几何平均预求解时间减少了11倍,在GAMS大规模LP基准集上减少了42倍,且归约质量相似。
英文摘要
Recent research has focused on developing GPU-accelerated algorithms for solving linear programs (LPs), with results that are nothing short of extraordinary. But a complete solver pipeline consists of more than the core algorithm, and the elephant in the room is that stages such as presolve have remained on the CPU, where they have become an increasingly large bottleneck. Presolve has stayed on the CPU because of the longstanding view, held by academic and industrial developers alike, that it is inherently sequential and irregular, and therefore difficult to parallelize efficiently. In this paper we challenge this view and show that presolving can benefit substantially from GPU acceleration. We describe simple design principles that avoid severe load imbalance and expose parallelism in reductions that appear inherently sequential. We implement these principles in cuPSLP, a GPU-accelerated version of PSLP, a CPU-based presolver that is itself several times faster than a state-of-the-art commercial presolver. In our experiments, cuPSLP reduces the shifted geometric mean presolve time of PSLP by a factor of 11 on the Mittelmann LP benchmark set and 42 on the GAMS large-scale LP benchmark set, with similar reduction quality.