Release Notes#
Release Notes 25.08#
New Features (25.08)#
Added Python API for LP and MILP (#223)
Breaking Changes (25.08)#
Fixed versioning for nightly and release package (#175)
Improvements (25.08)#
New heuristic improvements (#178)
Add helm chart for cuOpt service (#224)
Add nightly container support (#180)
Adding deb package support as a beta feature (#190)
Use cusparsespmv_preprocess() now that Raft implements it (#120)
Create a bash script to run MPS files in parallel (#87)
Several fixes needed to compile cuOpt with LLVM (#121)
Small fixes for corner cases (#130)
Small improvements on how paths are handled in tests (#129)
Update cxxopts to v3.3.1 (#128)
Bump actions/checkout in nightly.yaml to v4 (#230)
Remove CUDA 11 specific changes from repo (#222)
Heuristic improvements with solution hash, MAB and simplex root solution (#216)
Various typos in comments and strings, note on result dir (#200)
Split very large tests into smaller individual test cases (#152)
Fix compile error when using clang with C++20 (#145)
Relax pinnings on several dependencies, remove nvidia channel (#125)
Fix compile error when building with clang (#119)
cuOpt service add healthcheck for / (#114)
refactor(shellcheck): fix all remaining shellcheck errors/warnings (#99)
Add CTK 12.9 fatbin flags to maintain existing binary sizes (#58)
Bug Fixes (25.08)#
Fixed a segfault on bnatt500 due to small mu leading to inf/nan (#254)
Fixed a bug in basis repair. Recover from numerical issues in primal update (#249)
Unset NDEBUG in cmake in assert mode (#248)
Manual cuda graph creation in load balanced bounds presolve (#242)
Fixed bug on initial solution size in the check and cuda set device order (#226)
Disable cuda graph in batched PDLP (#225)
Fix logging levels format with timestamps (#201)
Fix bug in scaling of dual slacks and sign of dual variables for >= constraints (#191)
Fix inversion crossover bug with PDP and prize collection (#179)
Fix a bug in extract_best_per_route kernel (#156)
Fix several bugs appeared in unit testing of JuMP interface (#149)
Fix incorrect reported solving time (#131)
Fix max offset (#113)
Fix batch graph capture issue caused by pinned memory allocator (#110)
Fix bug in optimization_problem_solution_t::copy_from (#109)
Fix issue when problem has an empty problem in PDLP (#107)
Fix crash on models with variables but no constraints (#105)
Fix inversion of constraint bounds in conditional bounds presolve (#75)
Fix data initialization in create depot node for max travel time feature (#74)
Documentation (25.08)#
Added more pre-commit checks to ensure coding standards (#213)
Mention GAMS and GAMSPy in third-party modeling languages page in documentation (#206)
Enable doc build workflow and build script for PR and Nightly (#203)
Fix the link to Python docs in README (#118)
Add link checker for doc build and test (#229)
Release Notes 25.05#
New Features (25.05)#
Added concurrent mode that runs PDLP and Dual Simplex together
Added crossover from PDLP to Dual Simplex
Added a C API for LP and MILP
PDLP: Faster iterations and new more robust default PDLPSolverMode Stable2
Added support for writing out mps file containing user problem. Useful for debugging
Breaking Changes (25.05)#
NoTermination is now a NumericalError
Split cuOpt as libcuopt and cuopt wheel
Improvements (25.05)#
Hook up MILP Gap parameters and add info about number of nodes explored and simplex iterations
FJ bug fixes, tests and improvements
Allow no time limit in MILP
Refactor routing
Probing cache optimization
Diversity improvements for routing
Enable more compile warnings and faster compile by bypassing rapids fetch
Constraint prop based on load balanced bounds update
Logger file handling and bug fixes on MILP
Add shellcheck to pre-commit and fix warnings
Bug Fixes (25.05)#
In the solution,
termination_status
should be cast to correct enum.Fixed a bug using vehicle IDs in construct feasible solution algorithm.
FP recombiner probing bug fix.
Fix concurrent LP crashes.
Fix print relative dual residual.
Handle empty problems gracefully.
Improve breaks to allow dimensions at arbitrary places in the route.
Free var elimination with a substitute variable for each free variable.
Fixed race condition when resetting vehicle IDs in heterogenous mode.
cuOpt self-hosted client, some MILPs do not have all fields in
lp_stats
.Fixed RAPIDS logger usage.
Handle LP state more cleanly, per solution.
Fixed routing solver intermittent failures.
Gracefully exit when the problem is infeasible after presolve.
Fixed bug on dual resizing.
Fix occasional incorrect solution bound on maximization problems
Fix inversion of constraint bounds in conditional bounds presolve
Pdlp fix batch cuda graph
Fix obj constant on max. Fix undefined memory access at root
Allow long client version in service version check, this fixes the issue in case version is of the format 25.05.00.dev0
Documentation (25.05)#
Restructure documementation to accomdate new APIs