-
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
Fix modules which are directly calling DQMStore #18279
Comments
assign dqm |
A new Issue was created by @Dr15Jones Chris Jones. @davidlange6, @Dr15Jones, @smuzaffar can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
New categories assigned: dqm @vanbesien,@dmitrijus you have been requested to review this Pull request/Issue and eventually sign? Thanks |
I found an additional module which is calling unsafe DQM interfaces: This books and gets histograms without the lock being taken. |
assign alca |
@Dr15Jones can you clarify in which time-scale you foresee for the migration to happen?
|
Using multiple threads for Run, LuminosityBlock processing (as well as allowing multiple Run and LuminosityBlocks to be running concurrently) is the next item to address on increasing our threading efficiency. The framework should be capable of doing that early to mid Summer, but could not be put into the release until we have modules like these fixed.
I'm strongly of the opinion that we should make it possible to run all workflows with multiple threads. If we don't, at some time we will forget and move a module to a new workflow or change an existing workflow which will lead to unknown consequences. |
Contacted @fioriNTU, the SiStripCommissioningSource should be fixed soon. The RecoTau part I believe is not even used any more, will double check with RecoTau and hopefully remove this module. |
@dmitrijus thanks for following up so quickly. |
We cannot implement the thread safeness on SiStripGainFromCalibTree immediately because we are working on updating the monitoring histograms for the multi run harvesting. Such development is urgent and is expected to come within a couple of weeks. Is there any documentation that explains how the thread model works in CMSSW? For an analyser, at which point of its life state (e.g. BeginJob, BeginRun, etc.) the thread forks happens? We need some infos in order to perform the fix at best. Thanks. |
It is best to assume that anytime your module is called, another thread may be running another module. We are not there yet, but ultimately we have to move that way to get the most out of our computational resources. It is important to remember that for 'stream', 'one' and legacy modules, the framework will only allow one thread to work with that module at a time. Therefore it is only resources shared by multiple modules (such as the DQMStore) which need to be protected. As for documentation, you can find the outline for the design at with full module documentation |
thanks @Dr15Jones - We should indeed plan to migrate this SiStripGainFromCalibTree as soon as we can |
Hi, I was browsing open |
+alca |
Hi @cms-sw/dqm-l2 as this issue was solved years ago, can you please sign so it can be closed? Thanks! |
+1 |
This issue is fully signed and ready to be closed. |
The modules
https://github.com/cms-sw/cmssw/blob/09c3fce6626f70fd04223e7dacebf0b485f73f54/DQM/SiStripCommissioningSources/interface/SiStripCommissioningSource.h
https://github.com/cms-sw/cmssw/blob/09c3fce6626f70fd04223e7dacebf0b485f73f54/Validation/RecoTau/plugins/DQMFileLoader.h
are both directly calling thread-unsafe interfaces of DQMStore. These need to be converted to use the new IBooker interface or the modules should be removed.
The text was updated successfully, but these errors were encountered: