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

SiStripMonitorClient cleanup #24467

Merged
merged 4 commits into from Feb 28, 2019

Conversation

knoepfel
Copy link
Contributor

@knoepfel knoepfel commented Sep 4, 2018

The DQM/SiStripMonitorClient directly uses the DQMStore interface, instead of using the IBooker and IGetter transaction classes. In addition, a pointer to the DQMStore object is cached in several plugins. This PR removes explicitly caching of the DQMStore pointer. In addition, many C++ improvements are included related to ownership semantics, updated syntax, etc.

To actually move to using the IBooker and IGetter interface will require more effort.

Clang-format has been run for this PR--those changes are included as a separate commit.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 4, 2018

A new Pull Request was created by @knoepfel (Kyle Knoepfel) for master.

It involves the following packages:

DQM/SiStripMonitorClient

@kmaeshima, @cmsbuild, @andrius-k, @jfernan2, @schneiml can you please review it and eventually sign? Thanks.
@hdelanno, @fioriNTU, @jandrea, @idebruyn, @threus, @venturia this is something you requested to watch as well.
@davidlange6, @slava77, @fabiocos you are the release manager for this.

cms-bot commands are listed here

@andrius-k
Copy link

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2018

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/30273/console Started: 2018/09/05 15:10

@mmusich
Copy link
Contributor

mmusich commented Sep 5, 2018

@suchandradutta FYI

@mmusich
Copy link
Contributor

mmusich commented Sep 5, 2018

@knoepfel, thanks for the cleanup. May I ask why it was decided to do this now?
I think this will require quite some degree of validation on the Tk DPG side, as 10_3_X is a production release (that we'll use to certify 2018 PbPb data). Any reason this could not be postponed to LS2?

@knoepfel
Copy link
Contributor Author

knoepfel commented Sep 5, 2018

Hi @mmusich, good questions. @Dr15Jones, @schneiml and I have been working toward upgrading uses of DQMStore to support concurrent processing of events, lumis, etc. One of the impediments to getting there has been the direct use of the DQMStore interface. We are going through the DQM codebase trying to remove such uses. This PR is a step in that direction.

As far as when to include these changes, I do not have a strong preference. Note, however, that in a few weeks my development time on CMS will be zero due to other responsibilities. Also, none of the changes I made should have any effect on the histogram contents--hopefully there are enough PR tests that can exercise the modified code...?

@jandrea
Copy link
Contributor

jandrea commented Sep 5, 2018

@knoepfel Thank you very much for this. This seems to me like a major modification of the code, which is always a little scary when operations are running. May I ask you why these modifications were urgently needed ? Has somebody made sure that the DQM plots are left unchanged ?

@knoepfel
Copy link
Contributor Author

knoepfel commented Sep 5, 2018

@jandrea, see my comments to Marco.

@jandrea
Copy link
Contributor

jandrea commented Sep 5, 2018

@knoepfel sorry, our messages just crossed. I understand from your answer to Marco that there are no major issues with the current code. I also understand that it was not fully tested that the plots are left unchanged (?). So I would feel much more comfortable if we could postpone this PR to at least when these tests are performed ?

@knoepfel
Copy link
Contributor Author

knoepfel commented Sep 5, 2018

@jandrea, are you saying the integration tests that are currently being executed (as a consequence of @andrius-k typing please test) will not sufficiently test the modified code?

@jandrea
Copy link
Contributor

jandrea commented Sep 5, 2018

@knoepfel I actually don't know. Your modifications potentially affects all the plots, right ? I guess one would need to run on data with the old and new codes and make sure plots are the same ? Is this kind of things automatised ?

@knoepfel
Copy link
Contributor Author

knoepfel commented Sep 5, 2018

@jandrea, many tests are run during the PR "please test" phase, but I do not know which ones actually exercise the SiStripMonitorClient code. @schneiml, @Dr15Jones are you able to look if any runTheMatrix.py PR-testing workflows contain the modules in DQM/SiStripMonitorClient/plugins?

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2018

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2018

Comparison job queued.

@knoepfel
Copy link
Contributor Author

knoepfel commented Sep 5, 2018

We took an example module (SiStripOfflineDQM), and traced the following imports:

  • DQM/SiStripMonitorClient/python/SiStripClientConfig_Tier0_cff.py :
    siStripOfflineAnalyser_ = cms.EDAnalyzer("SiStripOfflineDQM", imported by
  • DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.p :
    from DQM.SiStripMonitorClient.SiStripClientConfig_Tier0_cff import * imported by
  • Configuration/StandardSequences/python/Harvesting_cff.py :
    from DQMOffline.Configuration.DQMOffline_SecondStep_cff import * imported by
  • Configuration/Applications/python/ConfigBuilder.py : self.HARVESTINGDefaultCFF="Configuration/StandardSequences/Harvesting_cff", which is used by cmsDriver.py for the harvesting step

Once the comparison job is done, we can make sure the histograms match with the reference histograms.

@Dr15Jones
Copy link
Contributor

@fabiocos I'm afraid @knoepfel no longer has any time on CMS. He was gracious enough to try to quickly resolve the merge conflicts via the web interface, however there is no opportunity to rebase.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-24467/8539

  • This PR adds an extra 76KB to repository

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 26, 2019

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/33296/console Started: 2019/02/26 15:57

@cmsbuild
Copy link
Contributor

Pull request #24467 was updated. @andrius-k, @kmaeshima, @schneiml, @cmsbuild, @jfernan2, @fioriNTU can you please check and sign again.

@arossi83
Copy link
Contributor

@fabiocos I think that indeed @arossi83 has validated the changes and the PR can proceed.

I confirm, I perform some local test and everything was fine.

@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-24467/33296/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 32
  • DQMHistoTests: Total histograms compared: 3098286
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3098088
  • DQMHistoTests: Total skipped: 197
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 31 files compared)
  • Checked 133 log files, 14 edm output root files, 32 DQM output files

@fabiocos
Copy link
Contributor

unhold

@cmsbuild cmsbuild removed the hold label Feb 27, 2019
@fabiocos
Copy link
Contributor

@andrius-k @schneiml do you confirm the signature?

@@ -1,899 +0,0 @@
#include "DQM/SiStripMonitorClient/interface/SiStripInformationExtractor.h"
Copy link
Contributor

Choose a reason for hiding this comment

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

why is this file and the corresponding header being removed entirely?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Honestly, I don't remember why I removed it. Of course, it could be added back if needed. As @Dr15Jones said above, I have no time to spend on CMS code, so I'm afraid someone else with have to restore it if that is necessary.

Copy link
Contributor

Choose a reason for hiding this comment

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

I just checked, and nothing in CMSSW refers to SiStripInformationExtractor. It is therefore easier to remove then to continue fixing.

@andrius-k
Copy link

+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. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2)

@fabiocos
Copy link
Contributor

+1

tests performed by the SiStrip groups outside of the regular production workflows were positive

@cmsbuild cmsbuild merged commit 030540c into cms-sw:master Feb 28, 2019
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