-
Notifications
You must be signed in to change notification settings - Fork 4.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
include Scouting packers and collections in MC production [8_0_X
]
#40708
include Scouting packers and collections in MC production [8_0_X
]
#40708
Conversation
A new Pull Request was created by @missirol (Marino Missiroli) for CMSSW_8_0_X. It involves the following packages:
@cmsbuild, @missirol, @Martin-Grunewald can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
@cms-sw/orp-l2 @cms-sw/core-l2 If you consider this update too intrusive for such an old cycle, @cms-sw/hlt-l2 would be okay with not merging it (opening the PR makes it at least available to users). What is your take on this? What options do you see? |
fragment.ScoutingCaloOutput = cms.Path( fragment.hltGtStage2Digis + fragment.hltPreScoutingCaloOutput + fragment.hltFEDSelectorL1 + fragment.hltScoutingCaloPacker ) | ||
fragment.ScoutingPFOutput = cms.Path( fragment.hltGtStage2Digis + fragment.hltPreScoutingPFOutput + fragment.hltFEDSelectorL1 + fragment.HLTPFScoutingPackingSequence ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have done this PR "as a backport" (meaning, trying not to do new things), but I'm wondering if this change works (it might just be my ignorance of the framework).
Taking hltScoutingCaloPacker
as an example, it consumes products that are not in the Path ScoutingCaloOutput
, and HLTScoutingCaloProducer
will not complain about missing collections (it just produces empty/dummy collections if no inputs are found). The intention would be that hltScoutingCaloPacker
'waits' for those collections, but my understanding is that, if more than one thread is used (which is likely the case in production), there is no guarantee on the order in which the Paths run, so in general this would not work (it may work with 1 single thread, because the Paths are executed in order, and the Paths with the Scouting packers are towards the end of the Schedule). It can also be that (1) my understanding is wrong, and/or (2) 8_0_X
behaves differently from recent cycles in this respect.
@makortel, could you please clarify (and correct any of the above) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The framework behavior has indeed changed since 8_0_X. More specifically, since 9_0_0_pre1, all (End)Paths are processed concurrently (#15882) in non-deterministic order, such that the execution of modules in the Paths follow the order of data dependencies (i.e. hltScoutingCaloPacker
is run only after all its input producers either have been run, or known not to be run because of the filtering). (although note that <= 11_1_0_pre3, only one module per Path could be run at a time; this changed for 11_1_0_pre4 onwards with #29024)
Earlier (i.e. in 8_0_X) framework processes the (End)Paths in the order specified by the Schedule. If the Schedule definition below has all the Paths of the input producers before the Path(s?) that contains hltScoutingCaloPacker
, the job should behave as you'd expect (or how I understood what you'd expect). Note that I did not check the changes in the Schedule.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, thanks for clarifying (my understanding was wrong).
In case it was unclear, the desired behaviour is that hltScoutingCaloPacker
runs only after all the products it consumes ran (my doubt came from the fact that those products are created by Paths different from the one including hltScoutingCaloPacker
).
To see if I understand
since 9_0_0_pre1, all (End)Paths are processed concurrently (#15882) in non-deterministic order, such that the execution of modules in the Paths follow the order of data dependencies (i.e. hltScoutingCaloPacker is run only after all its input producers either have been run, or known not to be run because of the filtering)
this (esp. "that the execution of modules in the Paths follow the order of data dependencies") means that this approach leads to the desired behaviour in those release cycles (e.g. #21297 for 10_0_X
produces the desired behaviour).
Earlier (i.e. in 8_0_X) framework processes the (End)Paths in the order specified by the Schedule. If the Schedule definition below has all the Paths of the input producers before the Path(s?) that contains hltScoutingCaloPacker,
yes, this is the case (there is only 1 Path with hltScoutingCaloPacker
)
the job should behave as you'd expect (or how I understood what you'd expect).
this means this PR happens to create the desired behaviour for 8_0_X.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To see if I understand
since 9_0_0_pre1, all (End)Paths are processed concurrently (#15882) in non-deterministic order, such that the execution of modules in the Paths follow the order of data dependencies (i.e. hltScoutingCaloPacker is run only after all its input producers either have been run, or known not to be run because of the filtering)
this (esp. "that the execution of modules in the Paths follow the order of data dependencies") means that this approach leads to the desired behaviour in those release cycles (e.g. #21297 for
10_0_X
produces the desired behaviour).
Correct.
please test |
I don't see any particular issues from Also regarding scouting data format compatibility we should be fine (well, we have 8_0_X-collected data with scouting data formats, right?) |
(we do, e.g. |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-0e77a0/30430/summary.html Comparison SummarySummary:
|
This PR adds new collections on HLT MC. Provided it does not affect any other ones, I don't see a priori counterindications for merging it even in such an old release cysle. |
thanks @missirol ! |
Okay, I also don't see a showstopper with merging this PR. I just want to make sure that it works as intended (to close the loop on the discussion in #40708 (comment)), then I can sign it if it works. I will do this before the end of the week. |
883e102
to
59defc3
Compare
Pull request #40708 was updated. @cmsbuild, @missirol, @Martin-Grunewald can you please check and sign again. |
please test The latest push applies the fix also to (the cff fragment of) the other frozen HLT menu in this cycle, i.e. menu "25ns10e33_v2" (I forgot to update that one when I opened the PR). I have tested the output of [*] with this PR, and I can see that the Scouting collections are filled as expected (note that, since this is MC, most HLT objects used to build the Scouting collections are produced for every event, because of the Paths named [*] Command based on a UL16 MC workflow:
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-0e77a0/30552/summary.html Comparison SummarySummary:
|
please test Rerunning the tests once more, to see if some of the DQM differences are reproducible. |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-0e77a0/30571/summary.html Comparison SummarySummary:
|
The DQM comparisons show a few differences, but none of them can be attributed to this PR, as expected. Details below.
|
+hlt
|
This pull request is fully signed and it will be integrated in one of the next CMSSW_8_0_X IBs (tests are also fine) and once validation in the development release cycle CMSSW_13_0_X is complete. This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
type bugfix @cms-sw/orp-l2 , assuming this PR is merged and IBs are okay, HLT would like to have a new @cms-sw/pdmv-l2 , the next |
Thanks @missirol! PdmV took a note of this. To mitigate the risk of being forgotten, please don't hesitate to drop us a message when the release is built. |
+1
|
@cms-sw/orp-l2 , thanks for building the new releases.
@kskovpen , the new 8_0_X releases are available (I also notified PdmV L2s by email):
|
PR description:
This PR is a partial backport of #21297 (and #22943), to address the use case described in #40691. It allows to produce the HLT Scouting collections when running the HLT as a 'step' of
cmsDriver.py
, which is what is done in MC productions.The EventContents related to HLT are updated accordingly, adding the Scouting collections. This extends the content of the RAW data tier for MCs in
8_0_X
(because of the addition of the HLT Scouting collections). A similar update was done for MCs in9_4_X
when #21297 was backported to that cycle with #21295.Extra details for HLT.
8_0_X
, to remove the smart-prescale modules from the Scouting (End)Paths when converting said menus tocff
fragments.V253
toV254
is unconsequential; there are no differences betweenV253
menus andV254
menus.Summary.
ConfDB
.cff
python files (and the HLT-menu configs are updated accordingly), and (2) to the HLT EventContents.cff
python files of HLT menus with Scouting will now include 2 more Paths with the Scouting "packers" (i.e. the producers of the Scouting objects).CMSSW_9_4_X
with Include "Scouting" packers and collections in MC production #21295 for 2017 MCs (this PR is effectively the same fix for 2016 MCs, but done much, much, later).PR validation:
TSG tests.
If this PR is a backport, please specify the original PR and why you need to backport that PR. If this PR will be backported, please specify to which release cycle the backport is meant for:
Partial backport of #21297 (and #22943).
Use case: future 2016 ultra-legacy MC productions (central or private).