Skip to content
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 #11782

Conversation

Dr15Jones
Copy link
Contributor

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.

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.
@cmsbuild
Copy link
Contributor

A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_4_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.
@makortel, @GiacomoSguazzoni, @rovere, @VinInn, @cerati, @dgulhan this is something you requested to watch as well.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
If you are a L2 or a release manager you can ask for tests by saying 'please test' in the first line of a comment.
@Degano you are the release manager for this.
You can merge this pull request by typing 'merge' in the first line of your comment.

@Dr15Jones
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/8807/console

@cmsbuild
Copy link
Contributor

-1
Tested at: 331305a
The relvals timed out after 2 hours.

you can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-11782/8807/summary.html

@Dr15Jones
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/8917/console

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

@cvuosalo
Copy link
Contributor

+1

For #11782 331305a

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 #11781 for 75X (already approved by Reco).

The code changes are satisfactory, and Jenkins tests against baseline CMSSW_7_4_X_2015-10-15-1100 show no significant differences, as expected.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_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

@davidlange6 davidlange6 modified the milestones: Next CMSSW_7_4_X, Next CMSSW_7_6_X Oct 24, 2015
davidlange6 added a commit that referenced this pull request Oct 24, 2015
…erShapeLazyGetter_7_4

Removed inappropriate use of SerialTaskQueue from ClusterShapeLazyGetter
@davidlange6 davidlange6 merged commit ecd6ff7 into cms-sw:CMSSW_7_4_X Oct 24, 2015
@Dr15Jones Dr15Jones deleted the removeThreadInefficientClusterShapeLazyGetter_7_4 branch December 8, 2015 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants