-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Removed inappropriate use of SerialTaskQueue from ClusterShapeLazyGetter #11781
Removed inappropriate use of SerialTaskQueue from ClusterShapeLazyGetter #11781
Conversation
A SerialTaskQueue was added to ClusterShapeLazyGetter in an attempt to make it thread safe. Unfortunately, the implementation was not safe since the internals of SiPixelClusterShapeCache could be changed while another thread was reading the data outside of the queue. In addition, performance measurements done using VTune showed the fequent calls to SerialTaskQueue were causing a heavy CPU load when run with 8 threads. The thread safety of SiPixelClusterShapeCache will have to be handled in a different way in the future once we start using more than one thread per Event.
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_5_X. Removed inappropriate use of SerialTaskQueue from ClusterShapeLazyGetter It involves the following packages: RecoPixelVertexing/PixelLowPtUtilities @cmsbuild, @cvuosalo, @slava77 can you please review it and eventually sign? Thanks. |
please test |
The tests are being triggered in jenkins. |
+1 Reversing an attempt to make SiPixelClusterShapeCacheProducer thread-safe, because the attempt didn't really work and had a performance cost. Some other approach will have to be used. There should be no change in monitored quantities. Other versions of this PR: #11562 for 76X (already merged) and #11782 for 74X. The code changes are satisfactory, and Jenkins tests against baseline CMSSW_7_5_X_2015-10-13-2300 show no significant differences, as expected. |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_5_X IBs (tests are also fine) and once validation in the development release cycle CMSSW_7_6_X is complete. This pull request requires discussion in the ORP meeting before it's merged. @davidlange6, @Degano, @smuzaffar |
+1 |
…erShapeLazyGetter_7_5 Removed inappropriate use of SerialTaskQueue from ClusterShapeLazyGetter
A SerialTaskQueue was added to ClusterShapeLazyGetter in an attempt
to make it thread safe. Unfortunately, the implementation was not safe
since the internals of SiPixelClusterShapeCache could be changed
while another thread was reading the data outside of the queue.
In addition, performance measurements done using VTune showed
the fequent calls to SerialTaskQueue were causing a heavy CPU load
when run with 8 threads.
The thread safety of SiPixelClusterShapeCache will have to be handled
in a different way in the future once we start using more than one
thread per Event.
This was backported from CMSSW_7_6 since it improves thread efficiency with no change in behavior.