The Gaudi Framework  v30r3 (a5ef0a68)
IntelProfilerAuditor Class Reference
Inheritance diagram for IntelProfilerAuditor:
Collaboration diagram for IntelProfilerAuditor:

Classes

struct  stack_entity
 

Public Member Functions

StatusCode initialize () override
 
void handle (const Incident &incident) override
 
void before (StandardEventType type, INamedInterface *i) override
 
void after (StandardEventType type, INamedInterface *i, const StatusCode &sc) override
 
- Public Member Functions inherited from extends< Auditor, IIncidentListener >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from Auditor
 Auditor (const std::string &name, ISvcLocator *svcloc)
 Constructor. More...
 
 Auditor (const Auditor &a)=delete
 
Auditoroperator= (const Auditor &rhs)=delete
 
StatusCode sysInitialize () override
 Initialization method invoked by the framework. More...
 
StatusCode sysFinalize () override
 Finalization method invoked by the framework. More...
 
void before (StandardEventType, INamedInterface *) override
 The following methods are meant to be implemented by the child class... More...
 
void before (StandardEventType, const std::string &) override
 
void before (CustomEventTypeRef, INamedInterface *) override
 
void before (CustomEventTypeRef, const std::string &) override
 
void after (StandardEventType, INamedInterface *, const StatusCode &) override
 
void after (StandardEventType, const std::string &, const StatusCode &) override
 
void after (CustomEventTypeRef, INamedInterface *, const StatusCode &) override
 
void after (CustomEventTypeRef, const std::string &, const StatusCode &) override
 
void beforeInitialize (INamedInterface *) override
 
void afterInitialize (INamedInterface *) override
 
void beforeReinitialize (INamedInterface *) override
 
void afterReinitialize (INamedInterface *) override
 
void beforeExecute (INamedInterface *) override
 
void afterExecute (INamedInterface *, const StatusCode &) override
 
void beforeFinalize (INamedInterface *) override
 
void afterFinalize (INamedInterface *) override
 
void beforeBeginRun (INamedInterface *) override
 
void afterBeginRun (INamedInterface *) override
 
void beforeEndRun (INamedInterface *) override
 
void afterEndRun (INamedInterface *) override
 
virtual StatusCode finalize ()
 
const std::stringname () const override
 
bool isEnabled () const override
 
SmartIF< ISvcLocator > & serviceLocator () const override
 The standard service locator. More...
 
template<class T >
StatusCode service (const std::string &name, T *&svc, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T = IService>
SmartIF< T > service (const std::string &name, bool createIf=false) const
 
StatusCode setProperties ()
 Set the auditor's properties. More...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p) override
 set the property form another property More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 set the property from name and the value More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (const std::string &name) const override
 get the property by name More...
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (const std::string &name) const override
 Return true if we have a property with the given name. More...
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
MSG::Level outputLevel () const
 Backward compatibility function for getting the output level. More...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
const SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 

Private Member Functions

void start_profiling_component (const std::string &name)
 
void skip_profiling_component (const std::string &name)
 
void start ()
 
void pause ()
 
void resume ()
 
void stop ()
 
bool hasIncludes () const
 
bool isIncluded (const std::string &name) const
 
bool isExcluded (const std::string &name) const
 
bool isRunning () const
 
int stackLevel () const
 
std::string stackIndent (bool newLevel=false) const
 
std::string taskTypeName (const std::string &component_name) const
 

Private Attributes

Gaudi::Property< std::vector< std::string > > m_included {this, "IncludeAlgorithms", {}, "Names of included algorithms."}
 
Gaudi::Property< std::vector< std::string > > m_excluded {this, "ExcludeAlgorithms", {}, "Names of excluded algorithms."}
 
Gaudi::Property< int > m_nStartFromEvent
 
Gaudi::Property< int > m_nStopAtEvent
 
Gaudi::Property< std::vector< std::string > > m_algs_for_tasktypes
 
Gaudi::Property< std::stringm_alg_delim
 
Gaudi::Property< bool > m_enable_frames
 
Gaudi::Property< int > m_frames_rate
 
int m_nEvents = 0
 
__itt_domain * domain = nullptr
 
bool m_isStarted = false
 
std::vector< stack_entitym_stack
 
TaskTypes m_tasktypes
 

Additional Inherited Members

- Public Types inherited from extends< Auditor, IIncidentListener >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- Public Types inherited from Auditor
using Factory = Gaudi::PluginService::Factory< IAuditor *(const std::string &, ISvcLocator *)>
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAuditor, IProperty > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 
- Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
Gaudi::Details::PropertyBaseproperty (const std::string &name) const
 
- Protected Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Detailed Description

Definition at line 31 of file IntelProfilerAuditor.cpp.

Member Function Documentation

void IntelProfilerAuditor::after ( StandardEventType  type,
INamedInterface i,
const StatusCode sc 
)
override

Definition at line 344 of file IntelProfilerAuditor.cpp.

345 {
346  // Skip unnecessary event types
347  if ( !( ( type == IAuditor::Execute ) && m_isStarted ) ) return;
348 
349  if ( ( m_nEvents + 1 ) % m_frames_rate == 0 ) {
350  __itt_frame_end_v3( domain, NULL );
351  }
352 
353  // Name of the current component
354  const std::string& name = i->name();
355  stack_entity state = m_stack.back();
356  // Remove component from stack.
357  m_stack.pop_back();
358 
359  if ( state.event != 0 ) {
360  debug() << stackIndent( true ) << "End event for " << name << endmsg;
361  __itt_event_end( state.event );
362 
363  if ( state.parent_event != 0 ) {
364  debug() << stackIndent() << "Resume event for " << state.parent_event << endmsg;
365  __itt_event_start( state.parent_event );
366  }
367  }
368 
369  if ( m_stack.empty() ) {
370  // Pause if there are no parent components (top algorithm).
371  pause();
372  } else if ( state.status ) {
373  // If the profiling is running and we have parent component that is
374  // paused then pause the profiling.
375  if ( !m_stack.back().status ) {
376  pause();
377  }
378  } else {
379  // If the profiling was stopped, but the parent component should be profiled
380  // then resume profiling.
381  if ( m_stack.back().status ) {
382  resume();
383  }
384  }
385 }
Gaudi::Property< int > m_frames_rate
STL class.
std::vector< stack_entity > m_stack
std::string stackIndent(bool newLevel=false) const
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
const std::string & name() const override
Definition: Auditor.cpp:202
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
virtual const std::string & name() const =0
Retrieve the name of the instance.
void IntelProfilerAuditor::before ( StandardEventType  type,
INamedInterface i 
)
override

Definition at line 297 of file IntelProfilerAuditor.cpp.

298 {
299  // Skip unnecessary event types.
300  if ( !( ( type == IAuditor::Execute ) && m_isStarted ) ) return;
301 
302  // Name of the current component.
303  const std::string& name = i->name();
304  // debug() << "Before: " << name << " " << type << endmsg;
305 
306  if ( isRunning() ) {
307  if ( isExcluded( name ) ) {
308  // If profiling is running and component is explicitly excluded
309  // then skip component.
310  skip_profiling_component( name );
311  } else {
312  // If profiling is running and component is'not explicitly excluded
313  // then start profiling for component (add to stack).
315  }
316  } else {
317  if ( hasIncludes() ) {
318  // If the profiling is not running and "includes" is explicitly defined ...
319  if ( isIncluded( name ) ) {
320  // and the current component is in the include's list then start the
321  // component profiling.
323  } else {
324  // and the current component is not in the includes list then skip
325  // a profiling of the component.
326  skip_profiling_component( name );
327  }
328  } else {
329  // If "Includes" property isn't present and the component is ...
330  if ( isExcluded( name ) ) {
331  // in the excludes list then skip a profiling
332  skip_profiling_component( name );
333  } else {
334  // not in the exclude list then start a profiling
336  }
337  }
338  }
339  if ( m_nEvents % m_frames_rate == 0 ) {
340  __itt_frame_begin_v3( domain, NULL );
341  }
342 }
void start_profiling_component(const std::string &name)
void skip_profiling_component(const std::string &name)
bool isExcluded(const std::string &name) const
Gaudi::Property< int > m_frames_rate
STL class.
bool isIncluded(const std::string &name) const
const std::string & name() const override
Definition: Auditor.cpp:202
virtual const std::string & name() const =0
Retrieve the name of the instance.
void IntelProfilerAuditor::handle ( const Incident incident)
override

Definition at line 280 of file IntelProfilerAuditor.cpp.

281 {
282  if ( IncidentType::BeginEvent != incident.type() ) return;
283  // Increment the event counter
284  ++m_nEvents;
285 
286  if ( m_nStartFromEvent == m_nEvents ) {
287  info() << "Start profiling (event #" << m_nEvents << ")" << endmsg;
288  start();
289  }
290 
291  if ( m_nStopAtEvent == m_nEvents ) {
292  info() << "Stop profiling (event #" << m_nEvents << ")" << endmsg;
293  stop();
294  }
295 }
Gaudi::Property< int > m_nStartFromEvent
Gaudi::Property< int > m_nStopAtEvent
const std::string & type() const
Access to the incident type.
Definition: Incident.h:41
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
bool IntelProfilerAuditor::hasIncludes ( ) const
private

Definition at line 201 of file IntelProfilerAuditor.cpp.

201 { return !m_included.empty(); }
Gaudi::Property< std::vector< std::string > > m_included
StatusCode IntelProfilerAuditor::initialize ( )
overridevirtual

Reimplemented from Auditor.

Definition at line 235 of file IntelProfilerAuditor.cpp.

236 {
237  info() << "Initialised" << endmsg;
238 
239  IIncidentSvc* inSvc = NULL;
240  const StatusCode sc = serviceLocator()->service( "IncidentSvc", inSvc );
241  if ( sc.isFailure() ) return sc;
242  // Useful to start profiling only after some event, we don't need profile
243  // initialization stage. For that we need to count events with BeginEvent
244  // listener.
245  inSvc->addListener( this, IncidentType::BeginEvent );
246  // If the end event number don't setup we finish profiling at the end
247  // of loop. We don't need profiling finalization stage.
248  inSvc->addListener( this, IncidentType::EndProcessing );
249 
250  std::string str_excluded, str_included, str_eventtypes;
251  for ( const auto& name : m_excluded ) {
252  str_excluded += " " + name;
253  }
254  for ( const auto& name : m_included ) {
255  str_included += " " + name;
256  }
257  for ( const auto& name : m_algs_for_tasktypes ) {
258  str_eventtypes += " " + name;
259  }
260 
261  if ( !m_included.empty() ) {
262  info() << "Included algorithms (" << m_included.size() << "): " << str_included << endmsg;
263  }
264 
265  if ( !m_excluded.empty() ) {
266  info() << "Excluded algorithms (" << m_excluded.size() << "): " << str_excluded << endmsg;
267  }
268 
269  if ( !m_algs_for_tasktypes.empty() ) {
270  info() << "Event types (" << m_algs_for_tasktypes.size() << "): " << str_eventtypes << endmsg;
271  }
272 
273  // Create a profiler domain for detection of slow events.
274  domain = __itt_domain_create( "Event loop" );
275  domain->flags = m_enable_frames;
276 
277  return StatusCode::SUCCESS;
278 }
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Gaudi::Property< std::vector< std::string > > m_algs_for_tasktypes
Gaudi::Property< std::vector< std::string > > m_included
bool isFailure() const
Definition: StatusCode.h:139
STL class.
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:51
SmartIF< ISvcLocator > & serviceLocator() const override
The standard service locator.
Definition: Auditor.cpp:206
Gaudi::Property< std::vector< std::string > > m_excluded
constexpr static const auto SUCCESS
Definition: StatusCode.h:87
Gaudi::Property< bool > m_enable_frames
virtual void addListener(IIncidentListener *lis, const std::string &type="", long priority=0, bool rethrow=false, bool singleShot=false)=0
Add listener.
const std::string & name() const override
Definition: Auditor.cpp:202
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:23
bool IntelProfilerAuditor::isExcluded ( const std::string name) const
private

Definition at line 208 of file IntelProfilerAuditor.cpp.

209 {
210  return std::find( m_excluded.begin(), m_excluded.end(), name ) != m_excluded.end();
211 }
Gaudi::Property< std::vector< std::string > > m_excluded
T find(T...args)
const std::string & name() const override
Definition: Auditor.cpp:202
bool IntelProfilerAuditor::isIncluded ( const std::string name) const
private

Definition at line 203 of file IntelProfilerAuditor.cpp.

204 {
205  return std::find( m_included.begin(), m_included.end(), name ) != m_included.end();
206 }
Gaudi::Property< std::vector< std::string > > m_included
T find(T...args)
const std::string & name() const override
Definition: Auditor.cpp:202
bool IntelProfilerAuditor::isRunning ( ) const
private

Definition at line 213 of file IntelProfilerAuditor.cpp.

213 { return !m_stack.empty() && m_stack.back().status; }
std::vector< stack_entity > m_stack
void IntelProfilerAuditor::pause ( )
private

Definition at line 180 of file IntelProfilerAuditor.cpp.

181 {
182  if ( !m_isStarted ) return;
183  debug() << stackIndent() << "Pause" << endmsg;
184  __itt_pause();
185 }
std::string stackIndent(bool newLevel=false) const
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
void IntelProfilerAuditor::resume ( )
private

Definition at line 173 of file IntelProfilerAuditor.cpp.

174 {
175  if ( !m_isStarted ) return;
176  debug() << stackIndent() << "Resume" << endmsg;
177  __itt_resume();
178 }
std::string stackIndent(bool newLevel=false) const
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
void IntelProfilerAuditor::skip_profiling_component ( const std::string name)
private

Definition at line 187 of file IntelProfilerAuditor.cpp.

188 {
189  if ( !m_isStarted ) return;
190  m_stack.push_back( stack_entity( name, false ) );
191  debug() << stackIndent() << "Skip component " << name << endmsg;
192 }
std::vector< stack_entity > m_stack
std::string stackIndent(bool newLevel=false) const
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
std::string IntelProfilerAuditor::stackIndent ( bool  newLevel = false) const
private

Definition at line 217 of file IntelProfilerAuditor.cpp.

218 {
219  std::stringstream indent( std::stringstream::out );
220  indent << std::setw( stackLevel() * 2 + ( newLevel ? 2 : 0 ) ) << " ";
221  return indent.str();
222 }
T setw(T...args)
int IntelProfilerAuditor::stackLevel ( ) const
private

Definition at line 215 of file IntelProfilerAuditor.cpp.

215 { return m_stack.size(); }
std::vector< stack_entity > m_stack
void IntelProfilerAuditor::start ( )
private

Definition at line 123 of file IntelProfilerAuditor.cpp.

124 {
125  m_isStarted = true;
126  __itt_resume();
127 }
void IntelProfilerAuditor::start_profiling_component ( const std::string name)
private

Definition at line 129 of file IntelProfilerAuditor.cpp.

130 {
131  if ( !m_isStarted ) return;
133  __itt_event taskId = 0;
134  TaskTypes::const_iterator iter = m_tasktypes.find( typeName );
135  if ( iter != m_tasktypes.end() ) {
136  taskId = iter->second;
137  }
138 
139  if ( !taskId && m_algs_for_tasktypes.empty() ) {
140  // Create event
141  taskId = __itt_event_create( typeName.c_str(), typeName.size() );
142  m_tasktypes.insert( TaskTypes::value_type( typeName, taskId ) );
143  }
144 
145  stack_entity state = stack_entity( name, true, taskId );
146  stack_entity* parent = !m_stack.empty() ? &m_stack.back() : NULL;
147 
148  if ( parent != NULL ) {
149  if ( parent->event ) {
150  state.parent_event = parent->event;
151  } else {
152  state.parent_event = parent->parent_event;
153  }
154  }
155 
156  if ( taskId && state.parent_event ) {
157  debug() << stackIndent() << "Pause event " << state.parent_event << endmsg;
158  __itt_event_end( state.parent_event );
159  }
160  m_stack.push_back( state );
161 
162  debug() << stackIndent() << "Start profiling component " << typeName << endmsg;
163 
164  if ( taskId ) {
165  // Start event
166  debug() << stackIndent() << "Start event type " << state.event << " for " << typeName << endmsg;
167  __itt_event_start( state.event );
168  }
169 
170  __itt_resume();
171 }
Gaudi::Property< std::vector< std::string > > m_algs_for_tasktypes
T end(T...args)
STL class.
std::vector< stack_entity > m_stack
std::string stackIndent(bool newLevel=false) const
T insert(T...args)
T find(T...args)
std::string taskTypeName(const std::string &component_name) const
T size(T...args)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
T c_str(T...args)
std::string typeName(const std::type_info &typ)
Definition: Dictionary.cpp:23
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
void IntelProfilerAuditor::stop ( )
private

Definition at line 194 of file IntelProfilerAuditor.cpp.

195 {
196  if ( !m_isStarted ) return;
197  m_isStarted = false;
198  __itt_pause();
199 }
std::string IntelProfilerAuditor::taskTypeName ( const std::string component_name) const
private

Definition at line 224 of file IntelProfilerAuditor.cpp.

225 {
226  std::string result;
227  std::string delim = "";
228  for ( const auto& value : m_stack ) {
229  result += delim + value.name;
230  delim = m_alg_delim;
231  }
232  return result + m_alg_delim + component_name;
233 }
STL class.
std::vector< stack_entity > m_stack
Gaudi::Property< std::string > m_alg_delim

Member Data Documentation

__itt_domain* IntelProfilerAuditor::domain = nullptr
private

Definition at line 95 of file IntelProfilerAuditor.cpp.

Gaudi::Property<std::string> IntelProfilerAuditor::m_alg_delim
private
Initial value:
{this, "TaskTypeNameDelimeter", " ",
"The String delimiter between sequences/algorithms names in "
"\"Task Type\" grouping at Amplifier. Default=\" \"."}

Definition at line 77 of file IntelProfilerAuditor.cpp.

Gaudi::Property<std::vector<std::string> > IntelProfilerAuditor::m_algs_for_tasktypes
private
Initial value:
{
this,
"ComponentsForTaskTypes",
{},
"Algorithm name, for which intel amplifier task type will be created."
"By default all algorithms have a corresponding task type."}

Definition at line 71 of file IntelProfilerAuditor.cpp.

Gaudi::Property<bool> IntelProfilerAuditor::m_enable_frames
private
Initial value:
{this, "EnableFrames", false,
"Enable frames (needed for detecting slow events). Default=false."}

Definition at line 80 of file IntelProfilerAuditor.cpp.

Gaudi::Property<std::vector<std::string> > IntelProfilerAuditor::m_excluded {this, "ExcludeAlgorithms", {}, "Names of excluded algorithms."}
private

Definition at line 65 of file IntelProfilerAuditor.cpp.

Gaudi::Property<int> IntelProfilerAuditor::m_frames_rate
private
Initial value:
{this, "FramesRate", 100,
"Frames rate. The recommended maximum rate for calling the Frame API is "
"1000 frames (events) per second. A higher rate may result in large product"
" memory consumption and slow finalization. "
"You need update \"slow-frames-threshold\" and \"fast-frames-threshold\" "
"parameters of amplxe-cl tool to separate slow, medium and fast events. "
"For use frames you need to switch on \"EnableFrames\". "
"Default=100"}

Definition at line 82 of file IntelProfilerAuditor.cpp.

Gaudi::Property<std::vector<std::string> > IntelProfilerAuditor::m_included {this, "IncludeAlgorithms", {}, "Names of included algorithms."}
private

Definition at line 64 of file IntelProfilerAuditor.cpp.

bool IntelProfilerAuditor::m_isStarted = false
private

Definition at line 97 of file IntelProfilerAuditor.cpp.

int IntelProfilerAuditor::m_nEvents = 0
private

Definition at line 93 of file IntelProfilerAuditor.cpp.

Gaudi::Property<int> IntelProfilerAuditor::m_nStartFromEvent
private
Initial value:
{
this, "StartFromEventN", 1, "After what event we stop profiling. If 0 than we also profile finalization stage."}

Definition at line 66 of file IntelProfilerAuditor.cpp.

Gaudi::Property<int> IntelProfilerAuditor::m_nStopAtEvent
private
Initial value:
{
this, "StopAtEventN", 0,
"After what event we stop profiling. If 0 than we also profile finalization stage. Default = 0."}

Definition at line 68 of file IntelProfilerAuditor.cpp.

std::vector<stack_entity> IntelProfilerAuditor::m_stack
private

Definition at line 99 of file IntelProfilerAuditor.cpp.

TaskTypes IntelProfilerAuditor::m_tasktypes
private

Definition at line 101 of file IntelProfilerAuditor.cpp.


The documentation for this class was generated from the following file: