Skip to content

Adding Component Level Monitoring feature to PerfMonMT as part of GSoC work

This MR includes additions to PerfMonComps in the context of developing a new, thread-safe Performance Monitoring service.

In the current implementation, we measure CPU and Wall times both at the component level and also as a whole(Initialize - Event Loop - Finalize). Component level monitoring is implemented separately for serial and parallel steps. We have made event loop monitoring optional due to usage of locks which may cause a decrease in the job's performance. A very detailed information about the service can be found in this presentation.

For a better understanding, here is a snippet of service's output:

PerfMonMTSvc =======================================================================================
PerfMonMTSvc                           Serial Component Level Monitoring                            
PerfMonMTSvc =======================================================================================
PerfMonMTSvc Step             CPU Time [ms]       Wall Time [ms]      Component
PerfMonMTSvc Initialize       0                   1002                AvalancheSchedulerSvc 
PerfMonMTSvc Initialize       250                 321                 AthDictLoaderSvc 
PerfMonMTSvc Initialize       30                  27                  AthMasterSeq 
PerfMonMTSvc Initialize       20                  25                  AthAlgEvtSeq 
PerfMonMTSvc Initialize       20                  24                  AthAlgSeq 
PerfMonMTSvc Initialize       20                  24                  AthAllAlgSeq 
...
PerfMonMTSvc =======================================================================================
PerfMonMTSvc                           Aggregated Event Loop Monitoring                             
PerfMonMTSvc =======================================================================================
PerfMonMTSvc Step             CPU Time [ms]       Wall Time [ms]      Component
PerfMonMTSvc Execute          9.13                10                  xAODMaker::EventInfoCnvAlg 
PerfMonMTSvc Execute          3.03                2                   HelloWorld 
PerfMonMTSvc Execute          2.11                4                   BeginIncFiringAlg 
PerfMonMTSvc Execute          2.05                2                   SGInputLoader 
PerfMonMTSvc Execute          1.93                4                   IncidentProcAlg1 
PerfMonMTSvc Execute          1.54                1                   IncidentProcAlg2 
PerfMonMTSvc Execute          1.05                0                   EndIncFiringAlg 
...
PerfMonMTSvc =======================================================================================
PerfMonMTSvc                               PerfMonMT Results Summary                                
PerfMonMTSvc =======================================================================================
PerfMonMTSvc Total CPU time in the Initialization is:       380  ms 
PerfMonMTSvc Total Wall time in the Initialization is:      472  ms 
PerfMonMTSvc
PerfMonMTSvc Total CPU time in the Event Loop is:           120  ms 
PerfMonMTSvc Total Wall time in the Event Loop is:          123  ms 
PerfMonMTSvc
PerfMonMTSvc Total CPU time in the Finalize is:             0    ms 
PerfMonMTSvc Total Wall time in the Finalize is:            61   ms 
PerfMonMTSvc
PerfMonMTSvc Number of Events processed:                    77 
PerfMonMTSvc CPU Usage per Event:                           1.56 ms 
PerfMonMTSvc Events per second:                             0.626016 
PerfMonMTSvc =======================================================================================
PerfMonMTSvc                                   System Information                                   
PerfMonMTSvc =======================================================================================
PerfMonMTSvc CPU Model:                                     Intel Core Processor (Broadwell, IBRS) 
PerfMonMTSvc Number of Logical Cores:                       10 
PerfMonMTSvc =======================================================================================

Merge request reports