Skip to content

Conversation

@guitargeek
Copy link
Contributor

The "dirty state propagation" is the mechanism that figures out which parts of the computation graph need to be re-evaluated.

It can be quite expensive if all the parameters in the model are changed at once, for example in the Minuit 2 line search step.

Changing only 1 or 2 parameters is common during numerical differentiation. But in the minimizer algorithms like Minuit 2, we can generally assume that if more than 2 parameter changed, then all of them are changed. Therefore, we should implement some mechanism that skips the dirty flag propagation in that case. This will greatly speed up fits with many parameters, especially when using AD, where the line search dominates the runtime. For ATLAS Higgs combinations, a speedup of 2x for minimization is expected.

To make some initial studies, this draft PR is opened with a relatively hacky way to implement this, using global state in RooFit.

@github-actions
Copy link

github-actions bot commented Oct 6, 2025

Test Results

    22 files      22 suites   3d 22h 18m 31s ⏱️
 3 692 tests  3 678 ✅ 0 💤  14 ❌
79 273 runs  79 074 ✅ 0 💤 199 ❌

For more details on these failures, see this check.

Results for commit 40a3dcd.

♻️ This comment has been updated with latest results.

@guitargeek guitargeek force-pushed the roofit_recompute_all branch from bfc76c8 to 40a3dcd Compare October 18, 2025 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant