Skip to content

ATLASRECTS-6783 TRTRawDataProvider: Use DataPool for the offline case

TRTRawDataProvider: Use DataPool for the offline data case

This is a follow-up of past MRs on using data pools

The more relevant would be MR !62116 (merged) MR !62369 (merged) reco on MC and Overlay.

We seem we do many small allocation (Number 1 in my Q442 heaptrack test)

MOST CALLS TO ALLOCATION FUNCTIONS                                              
 14226185 calls to allocation functions with 5.42M peak consumption from         
 TRT_RodDecoder::int_fillFullCompress(eformat::ROBFragment<> const*, InDetRawDataContainer<>*, TRT_RodDecoder::t_CompressTable const&, std::vector<> const*) const
 at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRT_RodDecoder.cxx:1187
 in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
14226185 calls with 5.42M peak consumption from:                                
TRT_RodDecoder::fillCollection(eformat::ROBFragment<> const*, InDetRawDataContainer<>*, TRT_BSErrContainer*, std::vector<> const*) const
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRT_RodDecoder.cxx:297
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
TRTRawDataProviderTool::convert(std::vector<> const&, InDetRawDataContainer<>*, TRT_BSErrContainer*, EventContext const&) const
 at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProviderTool.cxx:121
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
TRTRawDataProvider::execute(EventContext const&) const                      
at /build/atnight/localbuilds/nightlies/Athena/23.0/athena/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawDataProvider.cxx:129
in /cvmfs/atlas-nightlies.cern.ch/repo/sw/23.0_Athena_x86_64-centos7-gcc11-opt/2023-04-08T2101/Athena/23.0.24/InstallArea/x86_64-centos7-gcc11-opt/lib/libTRT_RawDataByteStreamCnv.so
Gaudi::Algorithm::sysExecute(EventContext const&)                           

In the other cases the improvements on cpu were not only in the producer side, but in access and also for deleting the elements at the end of the event.

Ping @jchapman and @ssnyder

Also ping @abarton , but mainly for the thing that is not happening here i.e I am not touching the online case ...

Edited by Christos Anastopoulos

Merge request reports