Skip to content

Prevent parallel simplex when solving MIPs - #3042

Merged
jajhall merged 1 commit into
latestfrom
no-pami-in-mip
May 27, 2026
Merged

jajhall merged 1 commit into
latestfrom
no-pami-in-mip

Conversation

@jajhall

@jajhall jajhall commented May 26, 2026

Copy link
Copy Markdown
Member

If the parallel option is set "on" by a user in an attempt to run the parallel MIP solver, don't allow this to cause a switch from kSimplexStrategyDual to kSimplexStrategyDualMulti (in HEkk::chooseSimplexStrategyThreads) otherwise the MIP solver may use parallel dual simplex - which is less robust.

A couple of un-used options have been deleted

…o kSimplexStrategyDualMulti so the MIP solver only ever uses serial simplex
@jajhall
jajhall requested a review from Opt-Mucca May 26, 2026 22:42
@codecov

codecov Bot commented May 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.94%. Comparing base (7f3f1c3) to head (dd33e6e).
⚠️ Report is 375 commits behind head on latest.

Additional details and impacted files
@@           Coverage Diff           @@
##           latest    #3042   +/-   ##
=======================================
  Coverage   72.94%   72.94%           
=======================================
  Files         426      426           
  Lines      102198   102185   -13     
  Branches    16443    16443           
=======================================
- Hits        74544    74540    -4     
+ Misses      27378    27369    -9     
  Partials      276      276           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jajhall jajhall changed the title Prevent parallel simplex when soving MIPs Prevent parallel simplex when solving MIPs May 26, 2026

@Opt-Mucca Opt-Mucca left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very happy with removing the unused options!

I'm assuming this call-path never affects any LP solve that's unrelated to a MIP solve? If so then I'm happy with the change!

@jajhall

jajhall commented May 27, 2026

Copy link
Copy Markdown
Member Author

I'm assuming this call-path never affects any LP solve that's unrelated to a MIP solve? If so then I'm happy with the change!

It will if someone wants to invoke the parallel simplex solver by setting parallel="on" and simplex_strategy=kSimplexStrategyDual, but I'll document this in the release notes. However,

  • there are two parallel dual simplex solvers, so it's better to force users to select the one they want, rather than only using PAMI
  • the use of parallel dual simplex is niche
  • it's preferable to having the MIP solver fail due to parallel simplex being used

@jajhall
jajhall merged commit 41ac58d into latest May 27, 2026
505 of 506 checks passed
@jajhall
jajhall deleted the no-pami-in-mip branch May 27, 2026 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants