-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Refactoring CalibratedClusterPtr to CalibratedPFCluster #40460
Conversation
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40460/33623
|
A new Pull Request was created by @valsdav (Davide Valsecchi) for master. It involves the following packages:
@cmsbuild, @mandrenguyen, @clacaputo can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
enable profiling |
@cmsbuild please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-a3f7c8/29868/summary.html Comparison SummarySummary:
|
please test |
As reported in cms-sw/cms-bot#1912 Igprof comparison of cpu usage in RECO produce methods was not working correctly. |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-a3f7c8/29987/summary.html Comparison SummaryThere are some workflows for which there are errors in the baseline: Summary:
|
Hi @gartung , thanks. |
The IB CPU report for the 01-13-1100 IB crashed so there was nothing to compare to |
please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-a3f7c8/30032/summary.html Comparison SummaryThere are some workflows for which there are errors in the baseline: Summary:
|
CPU wise the PR has no measurable effect. @gartung do we have a similar automatic comparison of the memory usage? I could not find it in the folder.. Thanks! |
No. Sorry,. |
@gartung could you please check the MEM navigable results? They seems broken. If I check MEM for |
Yes memory profiling is broken for igprof on EL8. That is on my list of things to attempt to fix. The closest thing I can recommend is the allocate/deallocate per module produced by the FastTimerService. |
Checking the json dump CMSSW_13_0_X_2023-01-17-1100: {
"events": 20,
"label": "particleFlowSuperClusterECAL",
"mem_alloc": 7141,
"mem_free": 6498,
"time_real": 74.809651,
"time_thread": 74.768755,
"type": "PFECALSuperClusterProducer"
},
{
"events": 20,
"label": "particleFlowSuperClusterOOTECAL",
"mem_alloc": 6014,
"mem_free": 5787,
"time_real": 68.107309,
"time_thread": 68.072829,
"type": "PFECALSuperClusterProducer"
}, CMSSW_13_0_X_2023-01-17-1100 + PR40460: {
"events": 20,
"label": "particleFlowSuperClusterECAL",
"mem_alloc": 8180,
"mem_free": 7547,
"time_real": 72.021267,
"time_thread": 71.875447,
"type": "PFECALSuperClusterProducer"
},
{
"events": 20,
"label": "particleFlowSuperClusterOOTECAL",
"mem_alloc": 7057,
"mem_free": 6838,
"time_real": 63.98882,
"time_thread": 63.948582,
"type": "PFECALSuperClusterProducer"
}, |
I wrote up some directions for running jemalloc memory profiling https://docs.google.com/document/d/1oCpERrTUjcfXFj0xBZDZB5H-muqJPXQVNDQKzQuC2Mo/edit?usp=sharing |
Thanks a lot. I will try. |
I run the jemalloc memory profiling:
I don't see a line for |
This report is for the final memory in use. The good news is that |
The code touched by this PR can still be improved (see discussion in issue: #38059), but I would like to merge this intermediate step since I would have a PR on the DeepSC inference code which depends on this. I think that the additional improvements of refactoring |
+reconstruction |
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) |
please test
|
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-a3f7c8/30397/summary.html Comparison SummarySummary:
|
+1 |
PR description:
As suggested in the issue #38059, the type
typedef std::shared_ptr<CalibratedPFCluster> CalibratedClusterPtr
, which is essentially ashared_ptr<edm::Ptr<reco::PFCluster>>
can be replaced by just usingCalibratedPFCluster
by value. This type is heavily used in PFEcalSuperCluster code.The second part of the issue #38059 about the use of
vector<CalibratedPFCluster>
instead ofedm::PtrVector<>
is postponed to a later PR. For the moment, theCalibratedClusterPtrVector
has been changed fromvector<shared_ptr<CalibratedPFCluster>>
tovector<CalibratedPFCluster>
.PR validation:
This PR should not have any side effect. It would be interesting to trigger the profiling ON to check for any memory/timing improvement.