-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
HLTPrescaleProvider optimization: minimize repeated calls to retrieveL1Event #19085
Comments
assign hlt |
New categories assigned: hlt @Martin-Grunewald,@silviodonato,@fwyzard you have been requested to review this Pull request/Issue and eventually sign? Thanks |
A new Issue was created by @slava77 Slava Krutelyov. @davidlange6, @Dr15Jones, @smuzaffar can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
It looks to me one could simply remove the calls to I'd just hope that MT would not screw this up! |
@Martin-Grunewald the HLTPrescaleProvider is already thread-friendly but not thread safe so as long as each module has its own copy of the object, there shouldn't be a threading problem. |
PRs made - can close this issue! |
Sub-optimal behavior was found in analysis ntupling code.
The code loops over all triggers in the table (per event) and calls HLTPrescaleProvider::prescaleValuesInDetail, which turned out to be a significant user of CPU.
Profiler showed that more than 95% of CPU is taken by calls to
l1t::L1TGlobalUtil::retrieveL1Event
repeated twice for every call toHLTPrescaleProvider::prescaleValuesInDetail
. One is called directly, and another via ::prescaleSet method call.The retrieveL1Event call is the same per event, while the call to prescaleValuesInDetail is specific per trigger.
Calls to
l1t::L1TGlobalUtil::retrieveL1Event
can be done once per event with appropriate caching.The text was updated successfully, but these errors were encountered: