-
Notifications
You must be signed in to change notification settings - Fork 110
Forward-merge branch-25.05 into branch-25.08 #20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
These errors were caused by all LPs in the batch sharing the same concurrent halt variable. This meant that the first LP to solve, forced all other LPs to halt. So it was possible that both PDLP and Dual Simplex solves returned with a ConcurrentLimit termination status. This should never happen normally. For now, we fix this by disabling the Concurrent method in batch mode. We set the method to PDLP, if Concurrent was chosen, and tell the user to choose PDLP or Dual Simplex to avoid this warning in the future. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: #17
|
FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the |
There was a bug in pre_process_assignment function. During initial solve() we are doing preprocess and then trivial_presolve. That means, the free var replacements are added first then the variable eliminations are done. For that reason the user solution preprocessing should follow the same order. The bug of set_solution is called multiple times in the tests if fixed: we should to pop the back solution after solution is being set, otherwise it will always be set. The bug of he assignment resize is fixed: it should be called before the gather, if not the resize will enlarge it and it will have junk values, causing mismatch in objective costs and sometimes infeasible solutions. This also changes a slight issue where we assign 2x for y and x for z when x is positive, for large initial values this might cause numerical issues, that's why we now assign x for y and 0 for z. This PR also fixes the bug of empty solutions not being handled correctly after a presolve (previously we handled it only for trivial presolve). Authors: - Akif ÇÖRDÜK (https://github.com/akifcorduk) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: #18
This PR removes the following build flags: 1. cpp-mgtests: This is unused 2. no-fetch-rapids: This is broken in the latest version of rapids, this needs to be fixed to improve build times 3. skip_l1_tests: This is unused 4. d: The development build flag is unused Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Trevor McKay (https://github.com/tmckayus) URL: #15
This fixes a bug where the objective was not correctly set when an LP was determined to be dual infeasible / unbounded. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) - Rajesh Gandham (https://github.com/rg20) - Nicolas Blin (https://github.com/Kh4ster) URL: #19
…it (#23) Also adds the --relaxation flag to cuopt_cli to solve the LP relaxation of a MIP Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Nicolas Blin (https://github.com/Kh4ster) URL: #23
This PR adds two things: 1. Introduces a time limit for computing related variables. This function can take a lot of time for very large problems (in this case 20+ M variables). Ideally, we need to speed up this with a better algo and fine tune for larger problems 2. Catch `std::bad_alloc` exceptions in solve function. Currently, we only catch `cuopt::logic_error` Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: #22
This PR fixes occasional crashes seen in the regression tests caused by accesses to a global `lp_state_t` object across consecutive runs, becoming stale in later runs. The object has been moved to `mip_solver_context_t`. Authors: - Alice Boucher (https://github.com/aliceb-nv) Approvers: - Rajesh Gandham (https://github.com/rg20) URL: #24
Since C does not have a boolean type, we need to allow `cuOptGetIntParameter` and `cuOptSetIntParameter` to work for boolean parameters as well. On irish-electricity we had a bug where we were stopping PDLP early, due to a numerical error inside dual simplex. In concurrent mode we should only stop the other solver when we have reached a definitive conclusion on the problem. Fix a bug in the Python docstrings found by Flora. Also log whenever we change settings. And set the log pattern to `%v` outside the solve as well. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Trevor McKay (https://github.com/tmckayus) - Rajesh Gandham (https://github.com/rg20) URL: #25
This PR fixes two issues: 1. Solution file generated by PDLP presented several JSON issues, was still mentioning ms for the solve time and was not handling the potential missing fields from Dual Simplex. To handle the last and so that user can know, a bool was added to know which solver solved the LP problem 2. The default value for binary time limit was an int resulting in a bad any cast in case it was not set Authors: - Nicolas Blin (https://github.com/Kh4ster) - https://github.com/Iroy30 Approvers: - Alice Boucher (https://github.com/aliceb-nv) - https://github.com/Iroy30 URL: #21
…rary fix add B&B solution directly (#27) This PR fixes bugs in - Preprocess in set callback function, the checks were done on the original assignment before preprocess, thus rejecting almost all set_solution calls. - Line segment returning worse solutions because of bug. - A side effect of LS returning worse solutions is that B&B added solutions are not added to the population as LS makes them worse. Authors: - Akif ÇÖRDÜK (https://github.com/akifcorduk) Approvers: - Alice Boucher (https://github.com/aliceb-nv) - Hugo Linsenmaier (https://github.com/hlinsen) URL: #27
…ns (#29) Fixes an issue reported on the following MPS file, where `_dummy` variable does not appear in the constraints. We remove empty columns (and thus `_dummy`) in presolve for dual simplex. But do not take this into account when constructing the solution. Further work, is needed to develop an actual LP presolve. ``` *SENSE:Minimize NAME test_export_dict_LP_no_obj ROWS N OBJ G c1 E c2 L c3 G c4 COLUMNS __dummy OBJ 1.000000000000e+00 w c4 1.000000000000e+00 x c1 1.000000000000e+00 x c2 1.000000000000e+00 y c1 1.000000000000e+00 y c3 -1.000000000000e+00 z c2 1.000000000000e+00 z c3 1.000000000000e+00 RHS RHS c1 5.000000000000e+00 RHS c2 1.000000000000e+01 RHS c3 7.000000000000e+00 RHS c4 0.000000000000e+00 BOUNDS FX BND __dummy 0.000000000000e+00 FX BND w 0.000000000000e+00 UP BND x 4.000000000000e+00 LO BND y -1.000000000000e+00 UP BND y 1.000000000000e+00 ``` Fixes #13 which was caused by an issue in column scaling when the norm of a column is zero. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Rajesh Gandham (https://github.com/rg20) - Nicolas Blin (https://github.com/Kh4ster) URL: #29
The non-trivial presolve did not report optimality if the problem was fully reduced. Fixed by this PR Closes rapidsai/cuopt#2507 Authors: - Alice Boucher (https://github.com/aliceb-nv) Approvers: - Chris Maes (https://github.com/chris-maes) - Akif ÇÖRDÜK (https://github.com/akifcorduk) URL: #26
We are using 3.2 version of cpp-argparser from conda. This PR updates the version to 3.2 for wheel builds as well. Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Ramakrishnap (https://github.com/rgsl888prabhu) URL: #31
Should fix the interment CI issue we were seeing in batch mode It was possible for another CPU thread to call cudaMemcpyToSymbol while another was trying to capture on its stream. Solved by switching to the async API and use stream so that the call doesn't end up on the default stream. Authors: - Nicolas Blin (https://github.com/Kh4ster) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Akif ÇÖRDÜK (https://github.com/akifcorduk) - Ramakrishnap (https://github.com/rgsl888prabhu) URL: #34
Rapids is moving away from cuda11 support soon and we don't have particular request to support on cuda11. So removing support for cuda 11. This PR removes cuda 11 related dependencies, documentation and ci testing. Authors: - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Rajesh Gandham (https://github.com/rg20) - Trevor McKay (https://github.com/tmckayus) URL: #32
Forward-merge triggered by push to branch-25.05 that creates a PR to keep branch-25.08 up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.