Solving Batched Linear Programs on GPU and Multicore CPU
Amit Gurung, Rajarshi Ray

TL;DR
This paper introduces a GPU-based batched LP solver that significantly accelerates solving large numbers of small to medium LPs, outperforming traditional CPU methods and extending existing solutions to more diverse LP types.
Contribution
The paper presents a novel CUDA implementation of a batched LP solver optimized for small to medium LPs, enabling high parallelism and performance improvements over sequential CPU solving.
Findings
Maximum speedup of 18.3x for 50k LPs of size 100
Up to 63x speedup for nearly 4 million small LPs
Open source GLPK can be extended for parallel LP solving, achieving 9.6x speedup
Abstract
Linear Programs (LPs) appear in a large number of applications and offloading them to the GPU is viable to gain performance. Existing work on offloading and solving an LP on GPU suggests that performance is gained from large sized LPs (typically 500 constraints, 500 variables and above). In order to gain performance from GPU for applications involving small to medium sized LPs, we propose batched solving of a large number of LPs in parallel. In this paper, we present the design and CUDA implementation of our batched LP solver library, keeping memory coalescent access, reduced CPU-GPU memory transfer latency and load balancing as the goals. The performance of the batched LP solver is compared against sequential solving in the CPU using an open source solver GLPK (GNU Linear Programming Kit). The performance is evaluated for three types of LPs. The first type is the initial basic solution…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Numerical Methods and Algorithms
