Support NVIDIA cuOpt solver
Summary
Please consider support NVIDIA cuOpt as a backend solver. It's recently open sourced, with GPU acceleration. NVIDIA has been working with COINOR, so PuLP already can work with cuOpt.
Official repo: https://github.com/NVIDIA/cuopt
Rationale
cuOpt is open source and GPU accelerated, it could deliver better performance in a large scale than HiGHS (I have not compared them, so "could"). It can be the best open source solver for scale at the moment.
Description
Just like how we assign solvers now: solver = SolverFactory("cuopt")
I'm not really familiar how the solvers are called under the hood.
Additional information
The example with PuLP is here (in a branch to be merged) https://github.com/adi0106/cuopt-examples/tree/branch-25.05/PuLP_integration_example
Thanks!
@zxnie there is already an open PR for this that is under review. See #3620. One of the biggest hurdles to merging the PR is figuring out how to test it.
Thanks! I'll close this.
I don't think the issue should be closed until the PR is merged. We can discuss adding CuOpt under this issue.
I should note, it is interesting that NVIDIA already claims Pyomo support of CuOpt: https://www.nvidia.com/en-us/ai-data-science/products/cuopt/. Technically this is already possible since you can use Pyomo to output an MPS and then use CuOpt to get a solution. (https://docs.nvidia.com/cuopt/user-guide/latest/cuopt-cli/quick-start.html)