[Numerical] Barrier method fails on numerically difficult LP instance that solved by other cuOpt methods
@chris-maes is already working on this.
Since Apr 8, 2026.
- Dominant language
- Cuda
- Stars
- 1k
- Forks
- 233
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 95
Description
Describe the bug
Running cuopt_cli with barrier method (method=3) on a big MPS model fails reproducibly with a numerical error during barrier search direction computation.
The model is numerically difficult, and cuOpt reports a very large coefficient range. However, the same instance is handled successfully by other methods within cuOpt, as well as by alternative solvers. This suggests a barrier-specific robustness issue rather than a general model validity issue.
Environment
- cuOpt version:
26.2.0 - git hash:
f73da24d - CUDA version:
12.9 - GPU:
NVIDIA H200 - CPU:
Intel(R) Xeon(R) Platinum 8480+ - RAM:
427.29 GiB
Problem summary
- LP instance
- 424118 constraints
- 1367797 variables
- 4512958 nonzeros
Coefficient ranges reported by cuOpt:
- Objective coefficients:
[1e-03, 8e+05] - Constraint matrix coefficients:
[1e-18, 8e+05] - RHS / bounds:
[5e-12, 3e+07] - Variable bounds:
[4e-15, 4e+07]
Reproduction
- Unzip the attached file. It is double-compressed to meet github requirements.
- Run
cuopt_cli --method 3 big_lp_obf.mps
Observed behavior
The barrier solve terminates with:
Search direction computation failed
Barrier Solve status A numerical error was encountered.
cuOpt also reports that the post-solved solution violates constraints.
Expected behavior
Barrier should either solve this instance successfully or fail more robustly on a model that is solvable by other cuOpt methods.
Attachments
- Full solver log
Notes
I understand that the model has serious numerical issues. However, since it is solved by other cuOpt methods and by other solvers, I believe this is a barrier-specific robustness bug.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.