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

DQM perLS in one shot #41196

Merged
merged 9 commits into from
Apr 13, 2023
Merged

DQM perLS in one shot #41196

merged 9 commits into from
Apr 13, 2023

Conversation

jfernan2
Copy link
Contributor

@jfernan2 jfernan2 commented Mar 27, 2023

PR description:

DQMIO data tier is saved perRun basis up to now, while perLS mode was activated in the so called nanoDQMIO format which is described here:
https://twiki.cern.ch/twiki/bin/view/CMS/PerLsDQMIO

This implied running RECO-DQM steps twice, one perRun and one perLS. This PR attempts to create the output in one shot to reduce computing resource needs, by enabling perLS mode for the list of (needed) MEs requested by DPG/POGs in [1].

These changes result in an (expected) increase of the DQMIO data tier (usual perRun MEs + additional dedicated perLS MEs) but maintaining at the same time (plain root) DQM format (to be uploaded to DQM GUI) after HARVESTING identical (up to rounding errors).

With this single shot mode, there will only be one output file, with both per-run and per-lumi histograms in it (depending on the ME). For the per-lumi MEs, no per-run results will be present, but that is fine, the harvesting job will make per-run histograms from the per-lumi ones. The Harvesting Job will see per-lumi histograms (which only matters if there is endLumi code, which is rare outside online), and save per-Job histograms in the end (which will be full runs for the usual Harvesting jobs). The plain ROOT file should be the same, up to rounding errors, which the DQM BinByBin tool may detect in this PR.

Needless to say that, future updates of the list of MEs in file [1], will chnage the content of per LS MEs to be saved in the future.

PR validation:

Uisng file: /store/data/Run2022G/Muon/RAW/v1/000/362/596/00000/6e355fc9-e4e9-478a-9ce4-d3b6c1d6135e.root from /Muon/Run2022G which contains 8 LS from run 362596, I performed standard RECO and DQM with command in [2]:

  • Checked MEs from [1] are created in a per LS basis (identified one typo in [1] and 3 MEs from Tracking POG which apparently do not exist in this run[3], so I flagged them in [1] file)

  • Checked DQMIO output does not explode (average increase is 72kB per LS with the current version of [1]). Indeed, standard DQM workflow already contains 1366 MEs in perLS mode by default (used by DPGs and POGs to created plots vs LS in DQM GUI), out of which 14 are again requested in [1].

  • Hence, we are adding only 148 new MEs in per LS to the standard DQMIO data tier, which acocunt for 578545 extra bytes / 8 LSs = 72318 bytes = 72.3 kB per LS. An increase totally acceptable bearing in mind that DQMIO datasets are small (order of of dozens of GB) compared to the rest of CMS datasets in DAS[4]

  • The total numbers of MEs in default DQMIO for a given run and in the new version after this PR iare the following:
    Default (before):
    Run 362596, 72672 MEs (per Run MEs)
    Run 362596, Lumi 31-38, 1514 MEs (per LS MEs)

After this PR:
Run 362596, 72820 MEs (per Run MEs)
Run 362596, Lumi 31-38, 1366 MEs (per LS MEs)

and the type composition is detailed in [5]

  • Checked that DQM Harvesting works out of the box taking as input the new DQMIO with mixed per Run and per LS MEs:
    https://tinyurl.com/27pmw76f (differences in the bin by bin tool ONLY for process time in DQM modules)

  • runTheMatrix.py -l limited -t 8 works

[1] DQMServices/Core/python/nanoDQMIO_perLSoutput_cff.py

[2] cmsDriver.py step2 --conditions 124X_dataRun3_v10 --data --datatier DQMIO --era Run3 --eventcontent DQM --filein file:/eos/cms/store/data/Run2022B/SingleMuon/RAW/v1/000/355/094/00000/1ed76311-a4df-4699-885e-965087521f03.root --fileout file:step2.root --nStreams 2 --nThreads 8 --no_exec --number 10 --process RECO --python_filename step_2_nano_cfg.py --scenario pp --step RAW2DIGI,L1Reco,RECO,DQM

[3] https://tinyurl.com/2oy3k7vc does not contain the following MEs:
Tracking/TrackParameters/GeneralProperties/Chi2oNDF_lumiFlag_GenTk
Tracking/TrackParameters/GeneralProperties/NumberOfRecHitsPerTrack_lumiFlag_GenTk
Tracking/TrackParameters/GeneralProperties/NumberOfTracks_lumiFlag_GenTk
requested in [1]

[4] https://cmsweb.cern.ch/das/request?view=list&limit=50&instance=prod%2Fglobal&input=size+dataset%3D%2FMuon%2FRun2022G-PromptReco-v1%2FDQMIO

[5] Before (default DQM) and now (after this PR) perLS ME composition:
+--------+------+------------+-----------+------------------+----------+
| Run | Lumi | FirstIndex | LastIndex | Type | ME Count |
+--------+------+------------+-----------+------------------+----------+
| 362596 | 31 | 0 | 984 | 3 (TH1Fs) | 985 |
| 362596 | 31 | 0 | 19 | 5 (TH1Ds) | 20 |
| 362596 | 31 | 0 | 38 | 6 (TH2Fs) | 39 |
| 362596 | 31 | 0 | 265 | 10 (TProfiles) | 266 |
| 362596 | 31 | 0 | 55 | 11 (TProfile2Ds) | 56 |
+--------+------+------------+-----------+------------------+----------+
| Run | Lumi | FirstIndex | LastIndex | Type | ME Count |
+--------+------+------------+-----------+------------------+----------+
| 362596 | 31 | 0 | 0 | 0 (Ints) | 1 |
| 362596 | 31 | 0 | 1109 | 3 (TH1Fs) | 1110 |
| 362596 | 31 | 0 | 19 | 5 (TH1Ds) | 20 |
| 362596 | 31 | 0 | 60 | 6 (TH2Fs) | 61 |
| 362596 | 31 | 0 | 265 | 10 (TProfiles) | 266 |
| 362596 | 31 | 0 | 55 | 11 (TProfile2Ds) | 56 |

Used dqmiodumpmetadata.py , dqmiodumpindices.py and dqmiolistmes.py scripts for these checks

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-41196/34892

  • This PR adds an extra 28KB to repository

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

@jfernan2
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-41196/34894

  • This PR adds an extra 28KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @jfernan2 for master.

It involves the following packages:

  • DQMServices/Core (dqm)

@emanueleusai, @cmsbuild, @syuvivida, @rvenditti, @micsucmed, @pmandrik can you please review it and eventually sign? Thanks.
@barvic this is something you requested to watch as well.
@perrotta, @dpiparo, @rappoccio you are the release manager for this.

cms-bot commands are listed here

@jfernan2
Copy link
Contributor Author

@cmsbuild please test

@jfernan2
Copy link
Contributor Author

@cms-sw/dqm-l2 could you please trigger the tests at your earliest convenience. I don't have privileges as in the past :-)
Thanks

@perrotta
Copy link
Contributor

@cmsbuild please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-30f993/31623/summary.html
COMMIT: a43515f
CMSSW: CMSSW_13_1_X_2023-03-27-1100/el8_amd64_gcc11
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/41196/31623/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 16 lines to the logs
  • Reco comparison results: 16 differences found in the comparisons
  • DQMHistoTests: Total files compared: 49
  • DQMHistoTests: Total histograms compared: 3554286
  • DQMHistoTests: Total failures: 8
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3554256
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 48 files compared)
  • Checked 213 log files, 164 edm output root files, 49 DQM output files
  • TriggerResults: no differences found

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-41196/35134

  • This PR adds an extra 28KB to repository

@cmsbuild
Copy link
Contributor

Pull request #41196 was updated. @emanueleusai, @cmsbuild, @syuvivida, @rvenditti, @micsucmed, @pmandrik can you please check and sign again.

@emanueleusai
Copy link
Member

please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-30f993/31926/summary.html
COMMIT: 52fa822
CMSSW: CMSSW_13_1_X_2023-04-11-2300/el8_amd64_gcc11
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/41196/31926/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially removed 21 lines from the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3459609
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3459587
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 47 files compared)
  • Checked 207 log files, 159 edm output root files, 48 DQM output files
  • TriggerResults: no differences found

@emanueleusai
Copy link
Member

+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. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2)

@perrotta
Copy link
Contributor

+1

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.

8 participants