![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
11 #ifndef PERFMONCOMPS_PERFMONSVC_H
12 #define PERFMONCOMPS_PERFMONSVC_H 1
23 #include <unordered_map>
26 #include "GaudiKernel/INamedInterface.h"
27 #include "GaudiKernel/ServiceHandle.h"
28 #include "GaudiKernel/IIncidentListener.h"
29 #include "GaudiKernel/StatEntity.h"
30 #include "GaudiKernel/IIoComponent.h"
50 typedef std::unordered_map<std::string, PerfMon::Component>
CompStore_t;
51 typedef std::unordered_map<std::string,PerfMon::IoContainer>
IoCompStore_t;
53 typedef std::unordered_map<std::string, CompStore_t>
CompTuple_t;
64 virtual public IIncidentListener,
65 virtual public IIoComponent,
90 virtual StatusCode queryInterface(
const InterfaceID& riid,
91 void** ppvInterface )
override;
111 std::vector<std::string>
112 components(
const std::string& stepName)
const override;
116 std::vector<std::string>
124 const std::string&
compName)
const override;
134 domain(
const std::string&
compName, std::string& domain)
const override;
145 void handle(
const Incident& incident )
override;
155 const std::string&
desc,
156 const IInterface* owner )
override;
159 const std::string&
desc,
160 const IInterface* owner )
override;
163 const std::string&
desc,
164 const IInterface* owner )
override;
167 const std::string&
desc,
168 const IInterface* owner )
override;
170 const std::string&
var,
171 const std::string&
desc,
172 const IInterface* owner )
override;
174 const std::pair<double,double>&
var,
175 const std::string&
desc,
176 const IInterface* owner )
override;
178 const AIDA::IBaseHistogram*
var,
179 const std::string&
desc,
180 const IInterface* owner )
override;
182 const std::string&
format,
184 const std::string&
desc,
185 const IInterface* owner )
override;
187 const StatEntity&
var,
188 const std::string&
desc,
189 const IInterface* owner)
override;
196 const IInterface* owner )
override;
200 virtual void undeclareAll(
const IInterface* owner )
override;
206 virtual std::set<std::string>*
getInfos(
const IInterface* owner )
override;
212 void startAud(
const std::string& stepName,
const std::string&
compName )
override;
217 void stopAud (
const std::string& stepName,
const std::string&
compName )
override;
228 void setupProfiledAlgList( Gaudi::Details::PropertyBase& profiledAlgNames );
231 void setupIoContainerList( Gaudi::Details::PropertyBase& ioContainerNames );
239 void comp_startAud(
const std::string& stepName,
244 void comp_stopAud(
const std::string& stepName,
349 vmem(0.), rss(0.), mall(0.), nmall(0.), nfree(0.)
368 Gaudi::Property<std::string> m_compBeginEvent {
369 this,
"compBeginEvent",
"AthMasterSeq",
"Component name that'll trigger begin event" };
372 Gaudi::Property<std::string> m_compEndEvent {
373 this,
"compEndEvent",
"AthMasterSeq",
"Component name that'll trigger end event" };
385 #endif //> PERFMONCOMPS_PERFMONSVC_H
StringProperty m_shelveFileName
Name of the shelve file containing jobo metadata.
DoubleProperty m_deltaVMemAlert
Maximum allowed variation of virtual memory (in bytes) between last print-out and current vmem value,...
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
std::string m_jobStartJiffies
(needed as a property to survive athena.py –drop-and-reload
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
std::unordered_map< std::string, IoCompStore_t > IoCompTuple_t
std::unordered_map< std::string, Stats_t > StatStore_t
BooleanProperty m_enableDblCountingCorrection
switch to enable or not the on-the-fly double-counting correction
const PerfMon::Component * component(PerfMon::State::Type step, const std::string &compName) const
retrieve the monitored value for the component compName and for the step step (ini,...
virtual const PerfMon::IoContainer * io_component(const std::string &compName) const =0
retrieve the I/O monitored value for the I/O component compName
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
PMonSD::SemiDetHelper * m_pmonsd
PerfMon::Tuple::IoCompTuple_t IoCompTuple_t
std::unordered_map< std::string, PerfMon::IoContainer > IoCompStore_t
virtual void undeclareInfo(const std::string &name, const IInterface *owner)=0
Undeclare monitoring information.
int m_semiDetMonLvl
Level of semi-detailed monitoring.
virtual void startAud(const std::string &stepName, const std::string &compName="PerfMonSlice")=0
Start collecting monitoring data for a given component, for a given step of the Gaudi FSM.
long m_nevts
number of events processed during the monitored job
ServiceHandle< IChronoStatSvc > m_chrono
handle to the chronostat service
virtual void domain(const std::string &compName, std::string &domain) const =0
retrieve the domain name for a given component compName
static const InterfaceID & interfaceID()
Inline methods:
The Athena Transient Store API.
a simple malloc wrapper that keeps track of the amount of memory allocated on the heap.
std::unordered_map< std::string, CompStore_t > CompTuple_t
::StatusCode StatusCode
StatusCode definition for legacy code.
PyObject * m_pySvc
Pointer to the PyObject doing the real work.
float m_firstVmem
first event vmem
StringProperty m_outFileName
Name of the output file to hold performance data.
PerfMon::LinFitSglPass m_vmemfit_evt101plus
StringArrayProperty m_ioContainerNames
List of containers for which one wants to gather I/O data.
std::unordered_map< std::string, PerfMon::Component > CompStore_t
StringArrayProperty m_profiledAlgNames
List of algorithms to be profiled.
PerfMon::LinFitSglPass m_vmemfit_evt21to100
int m_stream
pmon-stream data file descriptor
PerfMonSvc()
Default constructor:
virtual std::vector< std::string > io_components() const =0
return the list of io-components' names
float m_10evtVmem
10th-event vmem
float m_lastVmem
last event vmem
virtual void undeclareAll(const IInterface *owner)=0
Undeclare monitoring information.
std::string m_workerDir
Worker directory in athenaMP.
PerfMon::LinFitSglPass m_vmemfit_evt2to20
virtual void stopAud(const std::string &stepName, const std::string &compName="PerfMonSlice")=0
Stop collecting monitoring data for a given component, for a given step of the Gaudi FSM.
virtual std::set< std::string > * getInfos(const IInterface *owner=0)=0
Get the names for all declared monitoring informations for a given owener.
Define macros for attributes used to control the static checker.
int m_monLvl
level of granularity for monitoring
std::size_t m_nalgs
number of algorithms the monitored job ran
std::vector< std::string > components(PerfMon::State::Type step) const
return the list of components' names for a given step
static const InterfaceID & interfaceID()
PerfMon::Tuple m_ntuple
tuple of data (step->component[name->perf-data])