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.

Copy link

github-actions bot commented Oct 6, 2025

Test Results

    22 files      22 suites   4d 1h 20m 52s ⏱️
 3 685 tests  3 677 ✅ 0 💤   8 ❌
79 141 runs  78 984 ✅ 0 💤 157 ❌

For more details on these failures, see this check.

Results for commit bfc76c8.

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