-
Notifications
You must be signed in to change notification settings - Fork 153
Race batch PDLP and dual simplex in strong branching / reliability branching #994
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
Merged
rapids-bot
merged 80 commits into
release/26.04
from
race_strong_branching_realibility_branching
Apr 3, 2026
Merged
Changes from all commits
Commits
Show all changes
80 commits
Select commit
Hold shift + click to select a range
70b251d
implement racing for strong branching
Kh4ster 6848df1
race on by default
Kh4ster fc7aa04
tmp
Kh4ster 1614bc1
fix
Kh4ster 4f33531
fix
Kh4ster e0a530e
workaround for thrust reverse iterator build error
tmckayus e330718
remove compile file
Kh4ster dce6d4f
fix
Kh4ster 9c03faf
final cleanup
Kh4ster 6c2fe35
addtional cleanup
Kh4ster eb60c98
Merge branch 'main' into fix_batch_pdlp
Kh4ster a43dc0c
address PR comments, add tests, update doc
Kh4ster c8b8b74
format
Kh4ster b1be5bb
format
Kh4ster fe31e7e
Merge branch 'main' into fix_batch_pdlp
Kh4ster d89af96
style
Kh4ster c7e3e22
put back changes in restart
Kh4ster 793345c
Merge remote-tracking branch 'upstream/fix_batch_pdlp' into race_stro…
Kh4ster 73a52b1
fix use overall time limit, reduce memory consumtion and add a bigger…
Kh4ster dbc94fd
switch to double for memory estimator as size_t was hitting overflow …
Kh4ster 8b1ec93
add support for dual simplex warm start
Kh4ster f97d817
Merge branch 'main' into race_strong_branching
Kh4ster 71e47eb
handle batch pdlp being out of memory not has teramintion error
Kh4ster d025441
add a basic batch pdlp race strategy in strong branching
Kh4ster b43d7f3
Merge branch 'main' into race_strong_branching_realibility_branching
Kh4ster 3044887
fix compilation issue
Kh4ster 0108de4
separate the two batch pdlp settings
Kh4ster 721a56a
Fix bug where batch PDLP for strong branching was running on problem …
chris-maes 13ae8b4
Merge remote-tracking branch 'chris/strong_branching_batch_lp_transla…
Kh4ster ba1e4bd
pass slack and correct problem convertion also in reliabiltiy branch…
Kh4ster d20efd4
Merge branch 'main' into race_strong_branching_realibility_branching
Kh4ster d513865
add initial pdlp iteartions to the warm start data and on by default
Kh4ster a3a458d
put clique table in lp necessary file, add solver setting flag to gen…
Kh4ster 79d05e7
initial version of work stealing
Kh4ster 2c8bbfd
add option to use either dual simplex, bpdlp, or both with work stealing
Kh4ster 0968167
fix: resize the buffers to handle the case where we go to a single co…
Kh4ster 7642ded
general batch pdlp improvements and support work stealing in RB
Kh4ster 84dab81
turn off logs
Kh4ster 004fe3e
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster a97cca7
few improvements to BPDLP
Kh4ster 6979086
reduce accuracy to 1e-5, no BPDLP if in sub mip, disable BPDLP in RB …
Kh4ster b0061e4
empty just to run a new benchmark
Kh4ster f504a75
fix PR review comments
Kh4ster f456c71
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 962c2ea
fix: disable batch pdlp if deterministic mode
Kh4ster 496c4fd
fix: add size assertion to shared strong branching context
Kh4ster 9ec3f40
cleanup names
Kh4ster 16e4e5f
multiples fixes: use span only in solver, use tasks to launch bpdlp r…
Kh4ster 843c532
two improvements: mark variables as solved in DS if node became relia…
Kh4ster a9fd420
fix: avoid early exit if solved at step 0 even when initial pdlp itea…
Kh4ster edae299
disable both by default
Kh4ster 6e5baa5
styl
Kh4ster aaecdcd
switch from std::span to cuda::std::span to support python compilatio…
Kh4ster 86455ef
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster a8256d5
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 2f05352
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster c888495
fix task parallelism
Kh4ster 95addf5
fix bpdlp objective to take into account offset, pass shared data in …
Kh4ster 7ea4a52
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 2aee2a1
fix and cleanup: clamp BPDLP objective to 0 in SB at root and rename …
Kh4ster 0dad91b
fix: handle both objective offset and max problem by not setting then…
Kh4ster 5c9f9bc
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 5466e42
verbose cleanup
Kh4ster de8fac6
remove the clamping on BPDLP objective in RB
Kh4ster 8f0e2f6
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 329c255
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster aecae93
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 0d5ae1c
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster 7504340
style
Kh4ster a7f79fa
style
Kh4ster ae8a8a2
fix parameter name
Kh4ster fdcdf0f
Merge branch 'release/26.04' into race_strong_branching_realibility_b…
Kh4ster dd07576
remove one useless print
Kh4ster bb50ad1
fix missig solved
Kh4ster 0e368e9
fix: not overwritie of pseudo cost in not using bpdlp
Kh4ster 0d51481
fix: forcing bpdlp to be used in rb in case mode 2 even if the other …
Kh4ster 8b33c0b
fix: add default value to mip_batch_pdlp_reliability_branching
Kh4ster 4bbe345
fix: apply the additonal memory associated to buffers only if is coll…
Kh4ster 774a63e
fix: remove useless header
Kh4ster 0a8b10a
style
Kh4ster File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep batch solution generation opt-out, not opt-in.
With this default at
false, generic batch LP solves now return empty primal/dual/reduced-cost buffers unless every caller remembers to opt in. Existing batch tests incpp/tests/linear_programming/pdlp_test.custill slice those buffers aftersolve_lp(..., new_bounds ...), so this silently regresses the non-MIP batch path and can drive helpers likeextract_subvector()past a zero-length buffer. The strong/reliability-branching call sites can disable collection explicitly, but the default here needs to preserve the old behavior.Suggested fix
📝 Committable suggestion
🤖 Prompt for AI Agents