TL;DR
The paper introduces mplrs, a scalable parallel implementation of vertex enumeration that significantly improves performance and parallelization efficiency on multi-core and networked systems, demonstrating near-linear speedup on complex problems.
Contribution
It presents a new parallel implementation of lrs using MPI, introduces a budgeting method for better load balancing, and provides computational results showing substantial speedups.
Findings
Significant speedup with as few as 8 cores.
Near-linear speedup observed up to 1200 cores.
Budgeting method enhances parallel tree search efficiency.
Abstract
We describe a new parallel implementation, mplrs, of the vertex enumeration code lrs that uses the MPI parallel environment and can be run on a network of computers. The implementation makes use of a C wrapper that essentially uses the existing lrs code with only minor modifications. mplrs was derived from the earlier parallel implementation plrs, written by G. Roumanis in C++. plrs uses the Boost library and runs on a shared memory machine. In developing mplrs we discovered a method of balancing the parallel tree search, called budgeting, that greatly improves parallelization beyond the bottleneck encountered previously at around 32 cores. This method can be readily adapted for use in other reverse search enumeration codes. We also report some preliminary computational results comparing parallel and sequential codes for vertex/facet enumeration problems for convex polyhedra. The…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
