-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[RF] Using a conditional RooProdPdf in a multi-channel fit spawns too many integrals with new CPU evaluation backend #15751
Labels
Comments
guitargeek
changed the title
[RF] Using a conditional RooProdPdf in a RooSimultaneous spawns too many integrals with new CPU evaluation backend
[RF] Using a conditional RooProdPdf in a multi-channel fit spawns too many integrals with new CPU evaluation backend
Jun 5, 2024
guitargeek
added a commit
to guitargeek/root
that referenced
this issue
Jun 7, 2024
When compiling a RooSimultaneous for a given normalization set, we can only prefix the observables after everything related the compiling of the compute graph for the normalization set is done. This is because of a subtlety in conditional RooProdPdfs, which stores the normalization sets for the individual pdfs in RooArgSets that are disconnected from the computation graph, so we have no control over them. An alternative would be to use recursive server re-direction, but this has more performance overhead. Closes root-project#15751 and fixes the CMS Run 1 Higgs combination with the new NLL evaluation backend.
guitargeek
added a commit
that referenced
this issue
Jun 8, 2024
When compiling a RooSimultaneous for a given normalization set, we can only prefix the observables after everything related the compiling of the compute graph for the normalization set is done. This is because of a subtlety in conditional RooProdPdfs, which stores the normalization sets for the individual pdfs in RooArgSets that are disconnected from the computation graph, so we have no control over them. An alternative would be to use recursive server re-direction, but this has more performance overhead. Closes #15751 and fixes the CMS Run 1 Higgs combination with the new NLL evaluation backend.
guitargeek
added a commit
to guitargeek/root
that referenced
this issue
Jun 10, 2024
When compiling a RooSimultaneous for a given normalization set, we can only prefix the observables after everything related the compiling of the compute graph for the normalization set is done. This is because of a subtlety in conditional RooProdPdfs, which stores the normalization sets for the individual pdfs in RooArgSets that are disconnected from the computation graph, so we have no control over them. An alternative would be to use recursive server re-direction, but this has more performance overhead. Closes root-project#15751 and fixes the CMS Run 1 Higgs combination with the new NLL evaluation backend.
guitargeek
added a commit
that referenced
this issue
Jun 10, 2024
When compiling a RooSimultaneous for a given normalization set, we can only prefix the observables after everything related the compiling of the compute graph for the normalization set is done. This is because of a subtlety in conditional RooProdPdfs, which stores the normalization sets for the individual pdfs in RooArgSets that are disconnected from the computation graph, so we have no control over them. An alternative would be to use recursive server re-direction, but this has more performance overhead. Closes #15751 and fixes the CMS Run 1 Higgs combination with the new NLL evaluation backend.
silverweed
pushed a commit
to silverweed/root
that referenced
this issue
Aug 19, 2024
When compiling a RooSimultaneous for a given normalization set, we can only prefix the observables after everything related the compiling of the compute graph for the normalization set is done. This is because of a subtlety in conditional RooProdPdfs, which stores the normalization sets for the individual pdfs in RooArgSets that are disconnected from the computation graph, so we have no control over them. An alternative would be to use recursive server re-direction, but this has more performance overhead. Closes root-project#15751 and fixes the CMS Run 1 Higgs combination with the new NLL evaluation backend.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
Using a conditional RooProdPdf in a RooSimultaneous spawns too many integrals with new CPU evaluation backend.
This is a deal breaker for fitting the open likelihood of the CMS Run 1 Higgs analysis with the new CPU evaluation backend, because evaluating these unnecessary integrals takes too much time (although the result is correct).
Since the RooFit AD backend uses the same "
compileForNormSet
" method to sanitize the computation graph, it's also a blocker for minimizing the CMS Higgs Run 1 likelihood with AD.Reproducer
The output is:
The text was updated successfully, but these errors were encountered: