Skip to content

tauRec: make TauProcessorAlg re-entrant

Hello,

This MR is changing TauRunnerAlg from AthAlgorithm to AthReentrantAlgorithm (ATLTAU-1723). The EventContext is now explicitly passed to the execute method. The tool handles are now const, and consequently, the non-const tool::finalize() methods are no longer called from within TauRunnerAlg::finalize(), which is dropped. I ran a standalone tau reconstruction from ESD over 200 events. The reconstruction output is identical for AthAlgorithm with 1 thread, AthAlgorithm with 5 threads, and AthReentrantAlgorithm with 5 threads.

Performance with AthAlgorithm and 5 threads:

PerfMonMTSvc                                                  INFO ***************************************************************************************
PerfMonMTSvc                                                  INFO Number of events processed:        1000
PerfMonMTSvc                                                  INFO CPU usage per event [ms]:          232
PerfMonMTSvc                                                  INFO Events per second:                 5.352
PerfMonMTSvc                                                  INFO ***************************************************************************************
PerfMonMTSvc                                                  INFO Max Vmem:                          3.49 GB
PerfMonMTSvc                                                  INFO Max Rss:                           2.12 GB
PerfMonMTSvc                                                  INFO Max Pss:                           2.12 GB
PerfMonMTSvc                                                  INFO ***************************************************************************************

Performance with AthReentrantAlgorithm and 5 threads:

PerfMonMTSvc                                                  INFO ***************************************************************************************
PerfMonMTSvc                                                  INFO Number of events processed:        1000
PerfMonMTSvc                                                  INFO CPU usage per event [ms]:          235
PerfMonMTSvc                                                  INFO Events per second:                 5.742
PerfMonMTSvc                                                  INFO ***************************************************************************************
PerfMonMTSvc                                                  INFO Max Vmem:                          3.53 GB
PerfMonMTSvc                                                  INFO Max Rss:                           2.08 GB
PerfMonMTSvc                                                  INFO Max Pss:                           2.08 GB
PerfMonMTSvc                                                  INFO ***************************************************************************************

The memory saving is not obvious :-( We still need to migrate TauRunnerAlg to AthReentrantAlgorithm, but this requires some underlying tool to have a const execute method ( !36215 (closed) ).

Cheers, Bertrand

Merge request reports