NVIDIA / NVIDIA/cuopt

[Numerical] Barrier method fails on numerically difficult LP instance that solved by other cuOpt methods

Open
#1,045 4 comments 0 reactions 1 assignee View on GitHub

@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

  1. Unzip the attached file. It is double-compressed to meet github requirements.
  2. 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.

big_lp_obf.log

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.