Skip to content

Presolve profile#2950

Open
jajhall wants to merge 29 commits into
latestfrom
presolve-profile
Open

Presolve profile#2950
jajhall wants to merge 29 commits into
latestfrom
presolve-profile

Conversation

@jajhall
Copy link
Copy Markdown
Member

@jajhall jajhall commented Apr 3, 2026

Adds profiling of presolve and enhancement of dependent equations time-out

Dependent equations time-out is still not deterministic: see #2949

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 66.31130% with 158 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.90%. Comparing base (d3f667b) to head (560c7aa).
⚠️ Report is 374 commits behind head on latest.

Files with missing lines Patch % Lines
highs/presolve/PresolveTimer.h 0.00% 92 Missing ⚠️
highs/presolve/HPresolve.cpp 83.80% 34 Missing ⚠️
highs/presolve/HPresolveAnalysis.cpp 68.42% 18 Missing ⚠️
highs/util/HFactor.cpp 92.06% 5 Missing ⚠️
highs/lp_data/HighsModelUtils.cpp 57.14% 3 Missing ⚠️
highs/simplex/HighsSimplexAnalysis.cpp 0.00% 3 Missing ⚠️
highs/simplex/HEkk.cpp 0.00% 2 Missing ⚠️
highs/lp_data/HighsOptions.h 75.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #2950      +/-   ##
==========================================
- Coverage   72.94%   72.90%   -0.05%     
==========================================
  Files         425      428       +3     
  Lines      102181   102563     +382     
  Branches    16442    16495      +53     
==========================================
+ Hits        74539    74771     +232     
- Misses      27366    27516     +150     
  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 requested a review from fwesselm May 21, 2026 14:38
@jajhall
Copy link
Copy Markdown
Member Author

jajhall commented May 21, 2026

@fwesselm This is now ready for review. It mainly implements profiling for LP presolve and improvements to the dependent equations presolve rule.

However - motivated by presolving models for a client - I've also introduced the presolve_light option which switches off the expensive presolve rules.

I've also added the method HighLp::numNz, and used it wherever there was a_matrix_.numNz(), so there are quite a few small changes in a number of files.

There's some more refactoring of presolve that I want to do in order to address #3040, but I'll do that in a separate branch.

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