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

Strip clusterizer speedup: technical changes from #28304 #30046

Merged

Conversation

pieterdavid
Copy link
Contributor

@pieterdavid pieterdavid commented May 29, 2020

PR description:

This PR contains the technical changes from #28304 by @VinInn , i.e. those other than the new unpacker+clusterizer module and the use of the averaged noise per APV (rather than per strip), which need some more study and validation still (I did keep the changes to make the code that uses SiStripCluster independent of the amplitudes vector type because it makes future changes easier).

I also reorganised the StripClusterizer class a bit: the version currently in CMSSW caches indices of the quality, noise, and gain ranges etc. in a few vectors, and creates a helper object with all the information for one module when needed. #28304 added caching of all those per-module objects and pre-calculation of 1/gain (such that the gain calibration is a multiplication instead of a division) and the average noise per module (not included here) - I kept this, but then removed the vectors from StripClusterizer since they are not needed anymore, and moved all of this to the EventSetup to avoid having a copy for every stream.
This is where I have a few questions: is SiStripClusterizerConditions a reasonable name for that object? I kept the header in RecoLocalTracker/SiStripClusterizer and put the record in RecoLocalTracker/Records by analogy with the CPE, but I'm not sure these are the recommended places. Another option is to move the whole clusterizer tool to the EventSetup (like the CPE).

On the performance gain: in local tests in a rather unrealistic setup (only running strip local reco, so the limitation is IO and (de)compression) the full clusterizer seems a bit faster (that's also expected), but the numbers are not very reproducible (if there are instructions or tools to do proper benchmarking please let me know). Allocation and deallocation per event are a bit higher, but the difference is the same, so I suppose this is because of the reserve calls (the number of allocations should be smaller).

PR validation:

I dumped all reconstructed clusters in 5 data events (279076 in total) and found three digis that were different by 1 (probably due to numerical precision and truncation/rounding after applying the gain), charge/CM and noise squared (cuts in the clusterizer) are identical for all.

CC: @VinInn @vischia @robervalwalsh

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-30046/15751

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@slava77
Copy link
Contributor

slava77 commented May 29, 2020

This is where I have a few questions: is SiStripClusterizerConditions a reasonable name for that object? I kept the header in RecoLocalTracker/SiStripClusterizer and put the record in RecoLocalTracker/Records by analogy with the CPE, but I'm not sure these are the recommended places. Another option is to move the whole clusterizer tool to the EventSetup (like the CPE).

this apparently depends only on values in Cond or Calib Formats (SiStripGain, SiStripNoises, SiStripQuality). I'm thinking that it's more practical to place the object in CalibFormats/SiStripObjects.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-30046/15754

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @pieterdavid (Pieter David) for master.

It involves the following packages:

Alignment/APEEstimation
Alignment/OfflineValidation
CondFormats/SiStripObjects
DQM/SiStripMonitorTrack
DataFormats/SiStripCluster
EventFilter/SiStripRawToDigi
RecoLocalTracker/Records
RecoLocalTracker/SiStripClusterizer
RecoLocalTracker/SubCollectionProducers
Validation/TrackerRecHits

@perrotta, @andrius-k, @kmaeshima, @christopheralanwest, @tlampen, @schneiml, @tocheng, @cmsbuild, @jfernan2, @fioriNTU, @slava77, @ggovi, @pohsun can you please review it and eventually sign? Thanks.
@echabert, @erikbutz, @felicepantaleo, @yduhm, @robervalwalsh, @Martin-Grunewald, @mschrode, @fioriNTU, @tlampen, @threus, @ebrondol, @seemasharmafnal, @hdelanno, @makortel, @GiacomoSguazzoni, @rovere, @VinInn, @tocheng, @jandrea, @alesaggio, @idebruyn, @mmusich, @adewit, @gbenelli, @wmtford, @gpetruc this is something you requested to watch as well.
@silviodonato, @dpiparo you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor

slava77 commented May 29, 2020

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented May 29, 2020

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-run-pr-tests/6695/console Started: 2020/05/29 19:43

@cmsbuild
Copy link
Contributor

-1

Tested at: 32cb20d

CMSSW: CMSSW_11_2_X_2020-05-29-1100
SCRAM_ARCH: slc7_amd64_gcc820
You can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b45cec/6695/summary.html

I found follow errors while testing this PR

Failed tests: RelVals AddOn

  • RelVals:

When I ran the RelVals I found an error in the following workflows:
158.0 step2

runTheMatrix-results/158.0_HydjetQ_B12_5020GeV_2018_ppReco+HydjetQ_B12_5020GeV_2018_ppReco+DIGIHI2018PPRECO+RECOHI2018PPRECO+ALCARECOHI2018PPRECO+HARVESTHI2018PPRECO/step2_HydjetQ_B12_5020GeV_2018_ppReco+HydjetQ_B12_5020GeV_2018_ppReco+DIGIHI2018PPRECO+RECOHI2018PPRECO+ALCARECOHI2018PPRECO+HARVESTHI2018PPRECO.log

11634.0 step2
runTheMatrix-results/11634.0_TTbar_14TeV+TTbar_14TeV_TuneCP5_2021_GenSimFull+DigiFull_2021+RecoFull_2021+HARVESTFull_2021+ALCAFull_2021/step2_TTbar_14TeV+TTbar_14TeV_TuneCP5_2021_GenSimFull+DigiFull_2021+RecoFull_2021+HARVESTFull_2021+ALCAFull_2021.log

12434.0 step2
runTheMatrix-results/12434.0_TTbar_14TeV+TTbar_14TeV_TuneCP5_2023_GenSimFull+DigiFull_2023+RecoFull_2023+HARVESTFull_2023+ALCAFull_2023/step2_TTbar_14TeV+TTbar_14TeV_TuneCP5_2023_GenSimFull+DigiFull_2023+RecoFull_2023+HARVESTFull_2023+ALCAFull_2023.log

  • AddOn:

I found errors in the following addon tests:

cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_2018.py realData=False globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:34:55 2020-date Fri May 29 21:21:40 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_HIon.py realData=True globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:29:05 2020-date Fri May 29 21:21:42 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_GRun.py realData=False globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:34:33 2020-date Fri May 29 21:21:43 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_2018.py realData=True globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:33:27 2020-date Fri May 29 21:21:51 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_PRef.py realData=False globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:29:40 2020-date Fri May 29 21:21:55 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_HIon.py realData=False globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:30:44 2020-date Fri May 29 21:22:10 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_PRef.py realData=True globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:29:17 2020-date Fri May 29 21:22:17 2020 s - exit: 16640
cmsRun /cvmfs/cms-ib.cern.ch/week0/slc7_amd64_gcc820/cms/cmssw/CMSSW_11_2_X_2020-05-29-1100/src/HLTrigger/Configuration/test/OnLine_HLT_GRun.py realData=True globalTag=@ inputFiles=@ : FAILED - time: date Fri May 29 21:35:32 2020-date Fri May 29 21:26:26 2020 s - exit: 16640

@cmsbuild
Copy link
Contributor

Comparison not run due to runTheMatrix errors (RelVals and Igprof tests were also skipped)

@cmsbuild
Copy link
Contributor

+1
Tested at: 24e1b8c
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b45cec/7457/summary.html
CMSSW: CMSSW_11_2_X_2020-06-27-1100
SCRAM_ARCH: slc7_amd64_gcc820

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b45cec/7457/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 9 differences found in the comparisons
  • DQMHistoTests: Total files compared: 36
  • DQMHistoTests: Total histograms compared: 2778915
  • DQMHistoTests: Total failures: 681
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2778184
  • DQMHistoTests: Total skipped: 50
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 35 files compared)
  • Checked 152 log files, 16 edm output root files, 36 DQM output files

@slava77
Copy link
Contributor

slava77 commented Jun 27, 2020

+1

for #30046 24e1b8c

  • rebased after the last reco signoff as of fe6b06f, the update has only context line changes in HLTrigger/Configuration/python/customizeHLTforCMSSW.py compared to the previous version

@jfernan2
Copy link
Contributor

+1

@Martin-Grunewald
Copy link
Contributor

+1

@tlampen
Copy link
Contributor

tlampen commented Jun 30, 2020

+1

@ggovi
Copy link
Contributor

ggovi commented Jun 30, 2020

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo (and backports should be raised in the release meeting by the corresponding L2)

@silviodonato
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit b0ddd4e into cms-sw:master Jun 30, 2020
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.

None yet