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

Customize function to provide a minimal configuration for profiling #106

Merged

Conversation

makortel
Copy link

Resolves #70.

Can be included with the following snippet in the configuration

from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
process = customizePixelTracksForProfiling(process)

Essentially removes validation, DQM, and output modules. As suggested in #70 (comment), an AsciiOutputModule is used to require the pixelTracks (with output suppressed by the configuration).

@fwyzard @felicepantaleo @VinInn @rovere

@fwyzard
Copy link

fwyzard commented Jul 30, 2018

Thanks @makortel .
I guess we should run

  • the original workflow to look at the validation results
  • a profiling workflow making use of this customisation to look at the performance

Do we care about both Zmumu and TTbar ?
I'd like to run the performance over data, but we still have to set up a workflow for it :-(

@fwyzard fwyzard merged commit 8c948e7 into cms-patatrack:CMSSW_10_2_X_Patatrack Jul 30, 2018
@makortel
Copy link
Author

I guess we should run

  • the original workflow to look at the validation results
  • a profiling workflow making use of this customisation to look at the performance

Indeed. I think for performance only ttbar+PU matters. On the other hand, the significant reduction of CPU work may reveal some further synchronization issues (if not now maybe later), so in that view Zmumu could be interesting (as it has a "good" record of catching this kind of problems). I don't hav a strong opinion though.

@fwyzard
Copy link

fwyzard commented Jul 30, 2018

Let's try to add this to all .5 and .8 workflows; we can later review it also for the Riemann fit ones

@fwyzard
Copy link

fwyzard commented Jul 30, 2018

@fwyzard
Copy link

fwyzard commented Jul 30, 2018

Validation summary

Reference release CMSSW_10_2_0_pre6 at a674e1f
Development branch CMSSW_10_2_X_Patatrack at 8c948e7
Testing PRs:

makeTrackValidationPlots.py plots

/RelValTTbar_13/CMSSW_10_2_0_pre6-PU25ns_102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

/RelValZMM_13/CMSSW_10_2_0_pre6-102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

DQM GUI plots

/RelValTTbar_13/CMSSW_10_2_0_pre6-PU25ns_102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

/RelValZMM_13/CMSSW_10_2_0_pre6-102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

logs and nvprof/nvvp profiles

/RelValTTbar_13/CMSSW_10_2_0_pre6-PU25ns_102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

/RelValZMM_13/CMSSW_10_2_0_pre6-102X_upgrade2018_realistic_v7-v1/GEN-SIM-DIGI-RAW

Logs

The full log is available at https://fwyzard.web.cern.ch/fwyzard/patatrack/pulls/8351249261585185f6a95ffe1195c38258f232d5/log .

fwyzard pushed a commit to fwyzard/cmssw that referenced this pull request Aug 14, 2018
Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in cms-patatrack#70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.

Backport from the Patatrack fork (cms-patatrack#106).
fwyzard pushed a commit to fwyzard/cmssw that referenced this pull request Aug 14, 2018
Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in cms-patatrack#70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.

Backport from the Patatrack fork (cms-patatrack#106).
@fwyzard
Copy link

fwyzard commented Aug 17, 2018

@makortel, would this work also for the Riemann fit workflows (on cpu and gpu) ?

@makortel
Copy link
Author

would this work also for the Riemann fit workflows (on cpu and gpu) ?

I think it should. There are no assumptions on the content of reconstruction_step in the customize function, so it should run whatever is put there.

@fwyzard
Copy link

fwyzard commented Aug 17, 2018

OK, I'll try to add a customised version also to the .7 and .9 workflows.
Thank you.

fwyzard pushed a commit that referenced this pull request Dec 14, 2018
fwyzard pushed a commit that referenced this pull request Dec 15, 2018
* First implementation of deep tau id.

* Building dpf isolation module

* Adding in v1

* Adding in runTauIDMVA for other users

* making things fully reproducible

* Reorganisation of configuration files: cff split to cfi and cff

* Some code cleaning

* adapt to cfi/cff reorganization

* Review of DPF and DeepTauId code.

- Defined base class for deep tau discriminators.
- Removed weight files from home cms repository. Now using weights from cms-data.
- Defined WP for both discriminators. Now all discriminators return the corresponding WP results.
- Removed cfi files. Using fillDescriptions instead.
- General code review and cleaning.

* Added example of a python configuration file to produce pat::Tau collection with the new Tau-Ids

* requested changes on runDeepTauIDsOnMiniAOD.py

* Clean runTauIdMVA.py tool and test config to run tauIDs

* Made DeepTauId and DPFIsolation thread-safe

* Finish implement thread-safe requirements on DPFIsolation

* Disable DPFTau_2016_v1 and issue some warnings

* Remove assigning value of variable to itself

* - Implemented on runTauIdMVA the option to work with new training files quantized
- Added a new parameter 'version' on runTauIdMVA, used on DPFIsolation
- Changes on DeepTauId to reduce memory consumption

* - Implementation of global cache to avoid reloading graph for each thread and reduce the memory consuption
- Creation of class DeepTauCache in DeepTauBase, in which now is created graph and session
- Implementation of two new static methods inside the class DeepTauBase: initializeGlobalCache and globalEndJob. The graph and DeepTauCache object are created now inside initializeGlobalCache

* Applied changes on DeepTauBase to allow load new training files using memory mapping

* Implemented TauWPThreshold class.

TauWPThreshold class parses WP cut string (or value) provided in the
python configuration. It is needed because the use of the standard
StringObjectFunction class to parse complex expression results in an
extensive memory usage (> 100 MB per expression).

* Remove the qm.pb input files and leaving just the quantized and the original files

* -Overall, changes to improve memory usage, among these are:
	- Implementation of global cache to avoid reloading graph for each thread
	- Creation of two new static methods inside the class DeepTauBase: initializeGlobalCache and globalEndJob. The graph and DeepTauCache object are created now inside initializeGlobalCache. The memory consumption of initializeGlobalCache for the original, quantized and files that are load using memory mapping method are in the memory_usage.pdf file
	- Implemented configuration to use new training files quantized, and set them as default
	- Implementation of configuration for load files using memory mapping. In our case there wasn't any improvement, respect at the memory consumption of this method, respect the quantized files, so this is not used, but set for future training files
- General code review and cleaning.

* Applied style comments

* Applied style comments

* Applied comments

* Change to be by default the original training file for deepTau, instead of the quantized

* Changes regarding forward-porting DNN-related developments from the PRs #105 and #106 from 94X to 104X

* Applied commets of previus PR

* cleaning code

* Modification in the config to work with new label in files

* Applied comment about the expected format of name of training file

* Fix in last commit

* Applied last comments

* Changes regarding forward-porting DNN-related developments from the PRs #105 and #106 from 94X to 104X

* Applied @perrotta comments on 104X

* Fix error

* Applied comments

* Applied comments

* Fix merge problem

* Applied a few commets

* Applied more changes

* Applied a few small followups

*  Fixed error on DPFIsolation

* Update DPFIsolation.cc

* - RecoTauTag/RecoTau/plugins/DeepTauId.cc: Remove ' clusterVariables 'as a  class member
- RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py: Update globaltag and sample

* Added changes in RecoTauTag/RecoTau/python/tools/runTauIdMVA.py made in the commit 194a1d5 from the PR cms-sw#25016

* Fix error on runDeepTauIDsOnMiniAOD

* Change the GT in RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py
fwyzard pushed a commit that referenced this pull request Oct 8, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Oct 20, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Oct 23, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Nov 6, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Nov 6, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Nov 16, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard added a commit that referenced this pull request Nov 27, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Dec 26, 2020
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Jan 15, 2021
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
fwyzard pushed a commit that referenced this pull request Apr 1, 2021
…106)

Can be included with the following snippet in the configuration:

    from RecoPixelVertexing.Configuration.customizePixelTracksForProfiling import customizePixelTracksForProfiling
    process = customizePixelTracksForProfiling(process)

Removes validation, DQM, and output modules.
As suggested in #70 (comment), an `AsciiOutputModule` is used to require the `pixelTracks`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants