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

Add Workflow for multi-run harvesting #24920

Merged
merged 2 commits into from Nov 2, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_standard.py
Expand Up @@ -386,6 +386,9 @@
workflows[136.895] = ['',['RunDisplacedJet2018D','HLTDR2_2018','RECODR2_2018reHLT_skimDisplacedJet_Prompt','HARVEST2018']]
workflows[136.896] = ['',['RunCharmonium2018D','HLTDR2_2018','RECODR2_2018reHLT_skimCharmonium_Prompt','HARVEST2018']]

# multi-run harvesting
workflows[137.8] = ['',['RunEGamma2018C','HLTDR2_2018','RECODR2_2018reHLT_skimEGamma_Prompt_L1TEgDQM',
'RunEGamma2018D','HLTDR2_2018','RECODR2_2018reHLT_skimEGamma_Prompt_L1TEgDQM','HARVEST2018_L1TEgDQM_MULTIRUN']]

### fastsim ###
workflows[5.1] = ['TTbar', ['TTbarFS','HARVESTFS']]
Expand Down
6 changes: 6 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_steps.py
Expand Up @@ -2233,6 +2233,12 @@ def gen2018HiMix(fragment,howMuch):
steps['HARVEST2018_HEfail'] = merge([ {'--conditions':'auto:run2_data_promptlike_HEfail'}, steps['HARVEST2018'] ])
steps['HARVEST2018_BadHcalMitig'] = merge([ {'--era' : 'Run2_2018,pf_badHcalMitigation','--conditions':'auto:run2_data_promptlike_HEfail'}, steps['HARVEST2018'] ])

steps['HARVEST2018_L1TEgDQM_MULTIRUN'] = merge([ {
'--customise':"Configuration/StandardSequences/DQMSaverAtJobEnd_cff",
# hardcode the input files since we need multiple, from each of the RECO steps.
'--filein':"file:step6_inDQM.root,file:step3_inDQM.root",
}, steps['HARVEST2018_L1TEgDQM'] ])

steps['DQMHLTonAOD_2017']={
'-s':'DQM:offlineHLTSourceOnAOD', ### DQM-only workflow on AOD input: for HLT
'--conditions':'auto:run2_data_promptlike',
Expand Down
Expand Up @@ -15,6 +15,11 @@

dqmSaver.saveByRun = -1
dqmSaver.saveAtJobEnd = True
dqmSaver.forceRunNumber = 1
dqmSaver.forceRunNumber = 999999
Copy link
Contributor

Choose a reason for hiding this comment

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

@schneiml could you please explain the reason for this and its impacts as it is a global change, not just for the new workflow? Is this basically a dummy parameter affecting just the output file name in https://cmssdt.cern.ch/lxr/source/DQMServices/Components/src/DQMFileSaver.cc#0097
and the internal location of saving the plot in dbe:save?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AFAIK this file is not used anywhere in CMSSW, except for the new wf. This is the "reference" multi run harvesting config, and as such it is wrong; the number has to be 999999 so the output follows the conventions for DQMGUI.

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@fabiocos It turns out it is used, here:

self.DQMSaverCFF='Configuration/StandardSequences/DQMSaver'+self._options.harvesting+'_cff'
self.loadAndRemember(self.DQMSaverCFF)

I was not aware of that, and it breaks the pre2 relval now.

Just removing the --harvesting AtJobEnd option in wf 503 et.al. seems to not work either, then we get run number 0.

See also #25272 , FYI @prebello @zhenhu

Copy link
Contributor

Choose a reason for hiding this comment

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

@schneiml thanks. did you test these changes in DQM, I mean the use of multirun harvesting, locally? do you think it is the reason of GEN relvals fail? why only GEN then?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Only the GEN workflows use the --harvesting AtEndJob option. On the conceptual level, I don't see why they do that, since there should only be one run there.

In practise, I checked what happens if I make them use --harvesting AtEndRun as most of the other WFs do, but this does not work, since apparently the internal CMSSW run number in these jobs is 0, and the AtEndJob was required to force it to 1.

I think the proper solution would be to modify some part of the configuration in some way (many ways are possible) to set dqmSaver.forceRunNumber = 1 for the GEN jobs, and remove the --harvesting AtEndJob. Note that this might change the behaviour of the DQM in these jobs, but probably for the better.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@prebello Sang Hyun Ko reported on JIRA that it works for him to just remove the --harvesting AtEndJob. Not sure what happend in my case, I can't reproduce the run 0 file now...

So, we should just remove the --harvesting AtEndJob (https://github.com/cms-sw/cmssw/blob/master/Configuration/PyReleaseValidation/python/relval_steps.py#L2320) and everything should be good.


DQMSaver = cms.Sequence(dqmSaver)

# configuration is modified as a side effect, this is just a placeholder
# to allow using this file as a customisation for cmsDriver.
def customise(process):
return process