-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
OR-Tools (master branch) now includes a C++ implementation of the PDLP algorithm that we presented at NeurIPS 2021 (paper). In contrast to the Julia prototype used the paper, the C++ implementation is multithreaded and a bit faster in serial. Our experience is that it's the fastest LP solver among first-order solvers, especially when solving to high precision (we compared with SCS, haven't benchmarked with OSQP). It's not close to being uniformly better than simplex or barrier solvers, but it does outperform them on occasion. We think this solver would be a useful option for CVXPY users.
Could you provide some guidance on how to create a CVXPY interface?
Some relevant technical points:
- PDLP solves LPs and QPs with diagonal objective matrices (only). The underlying algorithm could be generalized to conic problems, but we're unlikely to implement that anytime soon.
- OR-Tools already has a python interface installable through pip and conda. (Though these releases don't include PDLP yet.)
- OR-Tools has its own solver abstraction. It may make sense to create an "or-tools" wrapper rather than a direct "PDLP" wrapper in order to enable users to access other solvers like Glop. Glop is a production-ready simplex-based solver that's used widely within Google.
rileyjmurray and Mizuxmkoeppe
Metadata
Metadata
Assignees
Labels
No labels