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

Introduce autoNANO #42238

Merged
merged 2 commits into from
Nov 1, 2023
Merged

Introduce autoNANO #42238

merged 2 commits into from
Nov 1, 2023

Conversation

simonepigazzini
Copy link
Contributor

@simonepigazzini simonepigazzini commented Jul 12, 2023

PR description:

Introduce a new utility to configure the NANO step using a mapping technique similar to the one used by DQM to load only selected modules.

autoNANO allows one to customize the NANO step using a syntax like: -s NANO:@PHYS+@L1Full where the @ is then mapped to sequences and customize function and loaded into the processing. Previously we used the standard -s NANO:my_cff.my_sq1+sq2 syntax to customize the NANO step, this is still supported, but the two syntaxes cannot be mixed.

We also introduce a different mapping function than the one used by DQM, mainly because the latter uses a list of lists to specify different modules (pre, main, post) while we prefer to use a dictionary to avoid ordering related bugs (we can discuss if we actually want to port the DQM implementation to use a dictionary instead of a list of lists as well).

In this PR we insert a minimal set of workflows into autoNANO, the list will be expanded soon collecting the other existing workflow that are currently configured in a different way.

PR validation:

Ran few test jobs for all possible combination. Successfully reproduced PromptNano 2023 and standard NANO ntuples.

No backport foreseen at the moment.

Further details on the autoNANO syntax

The default NANO sequence (which includes a "default customize function") is loaded by default if no step modifer is specified (-s NANO) or if the mapping points to empty strings (`'PHYS': {'sequence': '', 'customize': ''},). Missing dictionary keys are instead used to specify a workflow that do not require a dedicated "sequence" or "customize".

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-42238/36255

  • This PR adds an extra 44KB to repository

@cmsbuild
Copy link
Contributor

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

It involves the following packages:

  • Configuration/Applications (operations)
  • PhysicsTools/NanoAOD (xpog)

@perrotta, @rappoccio, @vlimant, @cmsbuild, @simonepigazzini, @fabiocos, @davidlange6 can you please review it and eventually sign? Thanks.
@makortel, @AnnikaStein, @Martin-Grunewald, @missirol, @gpetruc, @fabiocos 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

@simonepigazzini
Copy link
Contributor Author

enable nano

@simonepigazzini
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals-INPUT
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b20932/33663/summary.html
COMMIT: d6bef67
CMSSW: CMSSW_13_2_X_2023-07-12-1100/el8_amd64_gcc11
Additional Tests: NANO
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/42238/33663/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals-INPUT

  • 4.424.42_RunMET2012A/step2_RunMET2012A.log
  • 4.284.28_HighMet2011A/step2_HighMet2011A.log
  • 4.434.43_RunMu2012A/step2_RunMu2012A.log
Expand to see more relval errors ...

Comparison Summary

Summary:

  • You potentially removed 6 lines from the logs
  • Reco comparison results: 6 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3193892
  • DQMHistoTests: Total failures: 6
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3193864
  • 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

NANO Comparison Summary

Summary:

  • You potentially added 7 lines to the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 15
  • DQMHistoTests: Total histograms compared: 15505
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 15505
  • DQMHistoTests: Total skipped: 0
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 14 files compared)
  • Checked 31 log files, 14 edm output root files, 15 DQM output files

Nano size comparison Summary:

Sample kb/ev ref kb/ev diff kb/ev ev/s/thd ref ev/s/thd diff rate mem/thd ref mem/thd
2500.0 2.443 2.443 0.000 ( +0.0% ) 5.47 5.46 +0.2% 2.081 2.072
2500.001 2.552 2.552 0.000 ( +0.0% ) 4.92 4.85 +1.5% 2.115 2.036
2500.002 2.497 2.497 0.000 ( +0.0% ) 5.09 5.04 +0.9% 2.128 2.119
2500.01 1.240 1.240 0.000 ( +0.0% ) 10.15 10.07 +0.8% 1.850 1.838
2500.011 1.604 1.604 0.000 ( +0.0% ) 5.41 5.37 +0.8% 1.919 1.905
2500.012 1.485 1.485 0.000 ( +0.0% ) 7.78 7.57 +2.9% 1.905 1.911
2500.1 2.168 2.168 0.000 ( +0.0% ) 5.43 5.43 -0.1% 1.953 1.953
2500.2 2.271 2.271 0.000 ( +0.0% ) 6.36 6.30 +1.0% 1.835 1.827
2500.21 1.146 1.146 0.000 ( +0.0% ) 4.51 4.44 +1.7% 1.848 1.846
2500.211 1.504 1.504 0.000 ( +0.0% ) 3.91 3.85 +1.8% 1.945 1.941
2500.3 2.008 2.008 0.000 ( +0.0% ) 14.05 13.72 +2.4% 1.668 1.665
2500.31 1.209 1.209 0.000 ( +0.0% ) 22.16 21.38 +3.6% 2.054 1.667
2500.311 1.585 1.585 0.000 ( +0.0% ) 15.69 15.41 +1.8% 2.134 1.767
2500.4 2.008 2.008 0.000 ( +0.0% ) 13.99 13.82 +1.3% 1.666 1.665

@vlimant
Copy link
Contributor

vlimant commented Jul 24, 2023

please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b20932/33845/summary.html
COMMIT: d6bef67
CMSSW: CMSSW_13_3_X_2023-07-24-1100/el8_amd64_gcc11
Additional Tests: NANO
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/42238/33845/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

There are some workflows for which there are errors in the baseline:
14234.0 step 2
The results for the comparisons for these workflows could be incomplete
This means most likely that the IB is having errors in the relvals.The error does NOT come from this pull request

Summary:

  • You potentially removed 3 lines from the logs
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3150087
  • DQMHistoTests: Total failures: 3
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3150062
  • 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

NANO Comparison Summary

Summary:

  • You potentially added 14 lines to the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 15
  • DQMHistoTests: Total histograms compared: 15526
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 15526
  • DQMHistoTests: Total skipped: 0
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 14 files compared)
  • Checked 31 log files, 14 edm output root files, 15 DQM output files

Nano size comparison Summary:

Sample kb/ev ref kb/ev diff kb/ev ev/s/thd ref ev/s/thd diff rate mem/thd ref mem/thd
2500.0 2.447 2.447 0.000 ( +0.0% ) 4.74 5.34 -11.3% 1.867 2.034
2500.001 2.553 2.553 0.000 ( +0.0% ) 4.27 4.76 -10.4% 1.958 2.421
2500.002 2.498 2.498 0.000 ( +0.0% ) 4.47 4.98 -10.3% 1.929 2.401
2500.01 1.241 1.241 0.000 ( +0.0% ) 8.02 9.80 -18.1% 1.746 2.162
2500.011 1.605 1.605 0.000 ( +0.0% ) 4.72 5.31 -11.2% 1.832 2.295
2500.012 1.486 1.486 0.000 ( +0.0% ) 6.50 7.55 -13.9% 1.837 2.246
2500.1 2.161 2.161 0.000 ( +0.0% ) 4.88 5.41 -9.9% 1.743 1.886
2500.2 2.271 2.271 0.000 ( +0.0% ) 5.53 6.19 -10.7% 1.778 1.794
2500.21 1.147 1.147 0.000 ( +0.0% ) 4.02 4.39 -8.5% 1.747 2.071
2500.211 1.505 1.505 0.000 ( +0.0% ) 2.75 3.79 -27.5% 1.736 2.123
2500.3 2.009 2.009 0.000 ( +0.0% ) 10.35 13.26 -22.0% 1.498 1.610
2500.31 1.209 1.209 0.000 ( +0.0% ) 13.27 21.01 -36.9% 1.476 2.056
2500.311 1.586 1.586 0.000 ( +0.0% ) 10.93 15.12 -27.7% 1.571 2.019
2500.4 2.009 2.009 0.000 ( +0.0% ) 10.58 13.24 -20.1% 1.498 1.687

@simonepigazzini
Copy link
Contributor Author

please test

@simonepigazzini simonepigazzini changed the title WIP: Introduce autoNANO Introduce autoNANO Oct 30, 2023
@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b20932/35500/summary.html
COMMIT: d6bef67
CMSSW: CMSSW_13_3_X_2023-10-29-2300/el8_amd64_gcc12
Additional Tests: NANO
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/42238/35500/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially removed 2 lines from the logs
  • Reco comparison results: 28 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 3362691
  • DQMHistoTests: Total failures: 1070
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3361599
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 214 log files, 167 edm output root files, 50 DQM output files
  • TriggerResults: no differences found

NANO Comparison Summary

Summary:

  • You potentially removed 2 lines from the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 15
  • DQMHistoTests: Total histograms compared: 15929
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 15929
  • DQMHistoTests: Total skipped: 0
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 14 files compared)
  • Checked 34 log files, 16 edm output root files, 15 DQM output files

Nano size comparison Summary:

Sample kb/ev ref kb/ev diff kb/ev ev/s/thd ref ev/s/thd diff rate mem/thd ref mem/thd
2500.0 2.500 2.500 0.000 ( +0.0% ) 5.30 5.35 -1.0% 2.087 2.129
2500.001 2.649 2.649 0.000 ( +0.0% ) 4.74 4.80 -1.4% 2.501 2.160
2500.002 2.556 2.556 0.000 ( +0.0% ) 4.91 4.96 -1.0% 2.483 2.174
2500.01 1.285 1.285 0.000 ( +0.0% ) 9.65 10.00 -3.6% 2.141 2.240
2500.011 1.659 1.659 0.000 ( +0.0% ) 5.18 5.34 -2.9% 2.294 2.042
2500.012 1.539 1.539 0.000 ( +0.0% ) 7.51 7.62 -1.4% 2.220 2.077
2500.1 2.155 2.155 0.000 ( +0.0% ) 5.38 5.42 -0.7% 1.932 1.986
2500.2 2.266 2.266 0.000 ( +0.0% ) 6.15 6.15 +0.1% 1.840 1.877
2500.21 1.147 1.147 0.000 ( +0.0% ) 4.38 4.41 -0.6% 2.117 1.903
2500.211 1.505 1.505 0.000 ( +0.0% ) 3.88 3.87 +0.2% 2.130 2.002
2500.3 2.024 2.024 0.000 ( +0.0% ) 12.91 13.08 -1.3% 1.830 1.911
2500.31 1.223 1.223 0.000 ( +0.0% ) 20.28 20.78 -2.4% 2.174 2.320
2500.311 1.606 1.606 0.000 ( +0.0% ) 13.86 14.49 -4.3% 2.217 2.389
2500.4 2.024 2.024 0.000 ( +0.0% ) 13.01 13.04 -0.2% 1.839 1.913
2500.5 19.544 19.544 0.000 ( +0.0% ) 1.38 1.49 -7.7% 1.324 1.327

@simonepigazzini
Copy link
Contributor Author

+1

@antoniovilela
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 1, 2023

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 be automatically merged.

@@ -1776,9 +1777,30 @@ def prepare_NANO(self, stepSpec = '' ):
print(f"in prepare_nano {stepSpec}")
''' Enrich the schedule with NANO '''
_,_nanoSeq,_nanoCff = self.loadDefaultOrSpecifiedCFF(stepSpec,self.NANODefaultCFF,self.NANODefaultSeq)
self.scheduleSequence(_nanoSeq,'nanoAOD_step')
custom = "nanoAOD_customizeCommon"
self._options.customisation_file.insert(0,'.'.join([_nanoCff,custom]))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NB : inserting at 0, versus appending has undesirable effects. #44908 helps once all is in autoNano

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.

5 participants