-
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
Use a quick union algorithm to speed up PFBlockAlgo (factor of 2-3x) #14138
Conversation
@cmsbuild please test |
The tests are being triggered in jenkins. |
A new Pull Request was created by @lgray (Lindsey Gray) for CMSSW_8_1_X. It involves the following packages: RecoParticleFlow/PFProducer @cmsbuild, @cvuosalo, @slava77, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are list here #13028 |
@fwyzard , measured factor 3 speedup of PFBlockProducer for HLT at PU22 corresponding to 4% of total time. |
On 4/19/16 3:28 PM, Vincenzo Innocente wrote:
Hi Vincenzo, Please post a link with HLT time instructions (or forward by email) Thank you.
|
I have with all other changes (including PFRecHit slimming) as well (but PFBlock has been touched only here) |
this summary |
Any movement on this? |
@lgray: Review should be done Thursday unless problems are found. |
@@ -153,11 +151,14 @@ class PFBlockAlgo { | |||
PFBlockLink::Type& linktype, | |||
reco::PFBlock::LinkTest& linktest, | |||
double& dist) const; | |||
|
|||
|
|||
std::auto_ptr< reco::PFBlockCollection > blocksNew_; | |||
std::auto_ptr< reco::PFBlockCollection > blocks_; |
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.
auto_ptr
has been deprecated. When adding new code, wouldn't it be better to use shared_ptr
or unique_ptr
instead?
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.
blocksNew_ was from debugging and implementation anyway, I'll fix it.
+1 Speeding up PFBlockAlgo. The code changes are satisfactory. Jenkins tests against baseline CMSSW_8_1_X_2016-04-18-2300 show numerous, very tiny differences at the level of statistical fluctuations in PF quantities. An extended test of workflow 25202.0_TTbar_13 with 70 events against baseline CMSSW_8_1_X_2016-04-17-0000 also shows numerous, tiny, insignificant differences in PF quantities. CPU time shrinks about 50-80% for the affected modules, though the effect on total time per event is harder to measure. For HLT (excluding the first event):
For RECO:
|
This pull request is fully signed and it will be integrated in one of the next CMSSW_8_1_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @slava77, @davidlange6, @Degano, @smuzaffar |
Use a quick union algorithm + knowledge of ranges of block element types to speed up PFBlockAlgo.
Minor regressions expected due to the order-sensitivity of PFAlgo.
Regressions appear as changes in the particle flow candidate list, and so can affect PF-met and PF-jets kinematic observables. Effect is statistical in nature and should be quantifiable using a large stats sample.