CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
NVProfilerService Class Reference

Public Member Functions

 NVProfilerService (const edm::ParameterSet &, edm::ActivityRegistry &)
 
void postBeginJob ()
 
void postCloseFile (std::string const &, bool)
 
void postEndJob ()
 
void postEvent (edm::StreamContext const &)
 
void postEventReadFromSource (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postGlobalBeginLumi (edm::GlobalContext const &)
 
void postGlobalBeginRun (edm::GlobalContext const &)
 
void postGlobalEndLumi (edm::GlobalContext const &)
 
void postGlobalEndRun (edm::GlobalContext const &)
 
void postModuleBeginJob (edm::ModuleDescription const &)
 
void postModuleBeginStream (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleConstruction (edm::ModuleDescription const &)
 
void postModuleDestruction (edm::ModuleDescription const &)
 
void postModuleEndJob (edm::ModuleDescription const &)
 
void postModuleEndStream (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleEventAcquire (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleEventDelayedGet (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleEventPrefetching (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleGlobalBeginLumi (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void postModuleGlobalBeginRun (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void postModuleGlobalEndLumi (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void postModuleGlobalEndRun (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void postModuleStreamBeginLumi (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleStreamBeginRun (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleStreamEndLumi (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postModuleStreamEndRun (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void postOpenFile (std::string const &, bool)
 
void postPathEvent (edm::StreamContext const &, edm::PathContext const &, edm::HLTPathStatus const &)
 
void postSourceConstruction (edm::ModuleDescription const &)
 
void postSourceEvent (edm::StreamID)
 
void postSourceLumi (edm::LuminosityBlockIndex)
 
void postSourceRun (edm::RunIndex)
 
void postStreamBeginLumi (edm::StreamContext const &)
 
void postStreamBeginRun (edm::StreamContext const &)
 
void postStreamEndLumi (edm::StreamContext const &)
 
void postStreamEndRun (edm::StreamContext const &)
 
void preallocate (edm::service::SystemBounds const &)
 
void preBeginJob (edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &)
 
void preCloseFile (std::string const &, bool)
 
void preEvent (edm::StreamContext const &)
 
void preEventReadFromSource (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preGlobalBeginLumi (edm::GlobalContext const &)
 
void preGlobalBeginRun (edm::GlobalContext const &)
 
void preGlobalEndLumi (edm::GlobalContext const &)
 
void preGlobalEndRun (edm::GlobalContext const &)
 
void preModuleBeginJob (edm::ModuleDescription const &)
 
void preModuleBeginStream (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleConstruction (edm::ModuleDescription const &)
 
void preModuleDestruction (edm::ModuleDescription const &)
 
void preModuleEndJob (edm::ModuleDescription const &)
 
void preModuleEndStream (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleEvent (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleEventAcquire (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleEventDelayedGet (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleEventPrefetching (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleGlobalBeginLumi (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void preModuleGlobalBeginRun (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void preModuleGlobalEndLumi (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void preModuleGlobalEndRun (edm::GlobalContext const &, edm::ModuleCallingContext const &)
 
void preModuleStreamBeginLumi (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleStreamBeginRun (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleStreamEndLumi (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preModuleStreamEndRun (edm::StreamContext const &, edm::ModuleCallingContext const &)
 
void preOpenFile (std::string const &, bool)
 
void prePathEvent (edm::StreamContext const &, edm::PathContext const &)
 
void preSourceConstruction (edm::ModuleDescription const &)
 
void preSourceEvent (edm::StreamID)
 
void preSourceLumi (edm::LuminosityBlockIndex)
 
void preSourceRun (edm::RunIndex)
 
void preStreamBeginLumi (edm::StreamContext const &)
 
void preStreamBeginRun (edm::StreamContext const &)
 
void preStreamEndLumi (edm::StreamContext const &)
 
void preStreamEndRun (edm::StreamContext const &)
 
 ~NVProfilerService ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

bool highlight (std::string const &label) const
 
uint32_t labelColor (std::string const &label) const
 
uint32_t labelColorLight (std::string const &label) const
 

Private Attributes

std::vector< nvtxRangeId_t > event_
 
nvtxDomainHandle_t global_domain_
 
tbb::concurrent_vector
< nvtxRangeId_t > 
global_modules_
 
std::atomic< bool > globalFirstEventDone_ = false
 
std::vector< std::string > highlightModules_
 
const bool showModulePrefetching_
 
const bool skipFirstEvent_
 
std::vector< nvtxDomainHandle_t > stream_domain_
 
std::vector< std::vector
< nvtxRangeId_t > > 
stream_modules_
 
std::vector< std::atomic< bool > > streamFirstEventDone_
 

Detailed Description

Definition at line 124 of file NVProfilerService.cc.

Constructor & Destructor Documentation

NVProfilerService::NVProfilerService ( const edm::ParameterSet config,
edm::ActivityRegistry registry 
)

Definition at line 306 of file NVProfilerService.cc.

References global_domain_, highlightModules_, postBeginJob(), postCloseFile(), postEndJob(), postEvent(), postEventReadFromSource(), postGlobalBeginLumi(), postGlobalBeginRun(), postGlobalEndLumi(), postGlobalEndRun(), postModuleBeginJob(), postModuleBeginStream(), postModuleConstruction(), postModuleDestruction(), postModuleEndJob(), postModuleEndStream(), postModuleEvent(), postModuleEventAcquire(), postModuleEventDelayedGet(), postModuleEventPrefetching(), postModuleGlobalBeginLumi(), postModuleGlobalBeginRun(), postModuleGlobalEndLumi(), postModuleGlobalEndRun(), postModuleStreamBeginLumi(), postModuleStreamBeginRun(), postModuleStreamEndLumi(), postModuleStreamEndRun(), postOpenFile(), postPathEvent(), postSourceConstruction(), postSourceEvent(), postSourceLumi(), postSourceRun(), postStreamBeginLumi(), postStreamBeginRun(), postStreamEndLumi(), postStreamEndRun(), preallocate(), preBeginJob(), preCloseFile(), preEvent(), preEventReadFromSource(), preGlobalBeginLumi(), preGlobalBeginRun(), preGlobalEndLumi(), preGlobalEndRun(), preModuleBeginJob(), preModuleBeginStream(), preModuleConstruction(), preModuleDestruction(), preModuleEndJob(), preModuleEndStream(), preModuleEvent(), preModuleEventAcquire(), preModuleEventDelayedGet(), preModuleEventPrefetching(), preModuleGlobalBeginLumi(), preModuleGlobalBeginRun(), preModuleGlobalEndLumi(), preModuleGlobalEndRun(), preModuleStreamBeginLumi(), preModuleStreamBeginRun(), preModuleStreamEndLumi(), preModuleStreamEndRun(), preOpenFile(), prePathEvent(), preSourceConstruction(), preSourceEvent(), preSourceLumi(), preSourceRun(), preStreamBeginLumi(), preStreamBeginRun(), preStreamEndLumi(), preStreamEndRun(), showModulePrefetching_, skipFirstEvent_, edm::ActivityRegistry::watchPostBeginJob(), edm::ActivityRegistry::watchPostCloseFile(), edm::ActivityRegistry::watchPostEndJob(), edm::ActivityRegistry::watchPostEvent(), edm::ActivityRegistry::watchPostEventReadFromSource(), edm::ActivityRegistry::watchPostGlobalBeginLumi(), edm::ActivityRegistry::watchPostGlobalBeginRun(), edm::ActivityRegistry::watchPostGlobalEndLumi(), edm::ActivityRegistry::watchPostGlobalEndRun(), edm::ActivityRegistry::watchPostModuleBeginJob(), edm::ActivityRegistry::watchPostModuleBeginStream(), edm::ActivityRegistry::watchPostModuleConstruction(), edm::ActivityRegistry::watchPostModuleDestruction(), edm::ActivityRegistry::watchPostModuleEndJob(), edm::ActivityRegistry::watchPostModuleEndStream(), edm::ActivityRegistry::watchPostModuleEvent(), edm::ActivityRegistry::watchPostModuleEventAcquire(), edm::ActivityRegistry::watchPostModuleEventDelayedGet(), edm::ActivityRegistry::watchPostModuleEventPrefetching(), edm::ActivityRegistry::watchPostModuleGlobalBeginLumi(), edm::ActivityRegistry::watchPostModuleGlobalBeginRun(), edm::ActivityRegistry::watchPostModuleGlobalEndLumi(), edm::ActivityRegistry::watchPostModuleGlobalEndRun(), edm::ActivityRegistry::watchPostModuleStreamBeginLumi(), edm::ActivityRegistry::watchPostModuleStreamBeginRun(), edm::ActivityRegistry::watchPostModuleStreamEndLumi(), edm::ActivityRegistry::watchPostModuleStreamEndRun(), edm::ActivityRegistry::watchPostOpenFile(), edm::ActivityRegistry::watchPostPathEvent(), edm::ActivityRegistry::watchPostSourceConstruction(), edm::ActivityRegistry::watchPostSourceEvent(), edm::ActivityRegistry::watchPostSourceLumi(), edm::ActivityRegistry::watchPostSourceRun(), edm::ActivityRegistry::watchPostStreamBeginLumi(), edm::ActivityRegistry::watchPostStreamBeginRun(), edm::ActivityRegistry::watchPostStreamEndLumi(), edm::ActivityRegistry::watchPostStreamEndRun(), edm::ActivityRegistry::watchPreallocate(), edm::ActivityRegistry::watchPreBeginJob(), edm::ActivityRegistry::watchPreCloseFile(), edm::ActivityRegistry::watchPreEvent(), edm::ActivityRegistry::watchPreEventReadFromSource(), edm::ActivityRegistry::watchPreGlobalBeginLumi(), edm::ActivityRegistry::watchPreGlobalBeginRun(), edm::ActivityRegistry::watchPreGlobalEndLumi(), edm::ActivityRegistry::watchPreGlobalEndRun(), edm::ActivityRegistry::watchPreModuleBeginJob(), edm::ActivityRegistry::watchPreModuleBeginStream(), edm::ActivityRegistry::watchPreModuleConstruction(), edm::ActivityRegistry::watchPreModuleDestruction(), edm::ActivityRegistry::watchPreModuleEndJob(), edm::ActivityRegistry::watchPreModuleEndStream(), edm::ActivityRegistry::watchPreModuleEvent(), edm::ActivityRegistry::watchPreModuleEventAcquire(), edm::ActivityRegistry::watchPreModuleEventDelayedGet(), edm::ActivityRegistry::watchPreModuleEventPrefetching(), edm::ActivityRegistry::watchPreModuleGlobalBeginLumi(), edm::ActivityRegistry::watchPreModuleGlobalBeginRun(), edm::ActivityRegistry::watchPreModuleGlobalEndLumi(), edm::ActivityRegistry::watchPreModuleGlobalEndRun(), edm::ActivityRegistry::watchPreModuleStreamBeginLumi(), edm::ActivityRegistry::watchPreModuleStreamBeginRun(), edm::ActivityRegistry::watchPreModuleStreamEndLumi(), edm::ActivityRegistry::watchPreModuleStreamEndRun(), edm::ActivityRegistry::watchPreOpenFile(), edm::ActivityRegistry::watchPrePathEvent(), edm::ActivityRegistry::watchPreSourceConstruction(), edm::ActivityRegistry::watchPreSourceEvent(), edm::ActivityRegistry::watchPreSourceLumi(), edm::ActivityRegistry::watchPreSourceRun(), edm::ActivityRegistry::watchPreStreamBeginLumi(), edm::ActivityRegistry::watchPreStreamBeginRun(), edm::ActivityRegistry::watchPreStreamEndLumi(), and edm::ActivityRegistry::watchPreStreamEndRun().

307  : highlightModules_(config.getUntrackedParameter<std::vector<std::string>>("highlightModules")),
308  showModulePrefetching_(config.getUntrackedParameter<bool>("showModulePrefetching")),
309  skipFirstEvent_(config.getUntrackedParameter<bool>("skipFirstEvent")) {
310  // make sure that CUDA is initialised, and that the CUDAService destructor is called after this service's destructor
311  edm::Service<CUDAService> cudaService;
312 
313  std::sort(highlightModules_.begin(), highlightModules_.end());
314 
315  // create the NVTX domain for global EDM transitions
316  global_domain_ = nvtxDomainCreate("EDM Global");
317 
318  // enables profile collection; if profiling is already enabled it has no effect
319  if (not skipFirstEvent_) {
320  cudaProfilerStart();
321  }
322 
324 
325  // these signal pair are NOT guaranteed to be called by the same thread
328 
329  // there is no preEndJob() signal
331 
332  // these signal pair are NOT guaranteed to be called by the same thread
335 
336  // these signal pair are NOT guaranteed to be called by the same thread
339 
340  // these signal pair are NOT guaranteed to be called by the same thread
343 
344  // these signal pair are NOT guaranteed to be called by the same thread
347 
348  // these signal pair are NOT guaranteed to be called by the same thread
351 
352  // these signal pair are NOT guaranteed to be called by the same thread
355 
356  // these signal pair are NOT guaranteed to be called by the same thread
359 
360  // these signal pair are NOT guaranteed to be called by the same thread
363 
364  // these signal pair are NOT guaranteed to be called by the same thread
367 
368  // these signal pair are NOT guaranteed to be called by the same thread
371 
373  // these signal pair are NOT guaranteed to be called by the same thread
376  }
377 
378  // these signal pair are guaranteed to be called by the same thread
381 
382  // these signal pair are guaranteed to be called by the same thread
385 
386  // these signal pair are guaranteed to be called by the same thread
389 
390  // these signal pair are guaranteed to be called by the same thread
393 
394  // these signal pair are guaranteed to be called by the same thread
397 
398  // these signal pair are guaranteed to be called by the same thread
401 
402  // these signal pair are guaranteed to be called by the same thread
405 
406  // these signal pair are guaranteed to be called by the same thread
409 
410  // these signal pair are guaranteed to be called by the same thread
413 
414  // these signal pair are guaranteed to be called by the same thread
417 
418  // these signal pair are guaranteed to be called by the same thread
421 
422  // these signal pair are guaranteed to be called by the same thread
425 
426  // these signal pair are guaranteed to be called by the same thread
429 
430  // these signal pair are guaranteed to be called by the same thread
433 
434  // these signal pair are guaranteed to be called by the same thread
437 
438  // these signal pair are guaranteed to be called by the same thread
441 
442  // these signal pair are guaranteed to be called by the same thread
445 
446  // these signal pair are guaranteed to be called by the same thread
449 
450  // these signal pair are guaranteed to be called by the same thread
453 
454  // these signal pair are guaranteed to be called by the same thread
457 
458  // these signal pair are guaranteed to be called by the same thread
461 
462  // these signal pair are guaranteed to be called by the same thread
465 
466  // these signal pair are guaranteed to be called by the same thread
469 
470  // these signal pair are guaranteed to be called by the same thread
473 }
void watchPostModuleGlobalEndLumi(PostModuleGlobalEndLumi::slot_type const &iSlot)
void watchPostModuleConstruction(PostModuleConstruction::slot_type const &iSlot)
void watchPreModuleGlobalBeginRun(PreModuleGlobalBeginRun::slot_type const &iSlot)
T getUntrackedParameter(std::string const &, T const &) const
void watchPreEvent(PreEvent::slot_type const &iSlot)
void postStreamEndLumi(edm::StreamContext const &)
void preOpenFile(std::string const &, bool)
void preModuleEventPrefetching(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preGlobalBeginRun(edm::GlobalContext const &)
void postGlobalEndRun(edm::GlobalContext const &)
void preGlobalEndLumi(edm::GlobalContext const &)
void postOpenFile(std::string const &, bool)
void postModuleEventDelayedGet(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postModuleStreamBeginLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPrePathEvent(PrePathEvent::slot_type const &iSlot)
void watchPreallocate(Preallocate::slot_type const &iSlot)
void postModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPreModuleEventAcquire(PreModuleEventAcquire::slot_type const &iSlot)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void preModuleEndStream(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preModuleEventAcquire(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPostModuleEndStream(PostModuleEndStream::slot_type const &iSlot)
void postCloseFile(std::string const &, bool)
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
void postModuleEventAcquire(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const &iSlot)
void watchPostEvent(PostEvent::slot_type const &iSlot)
void preStreamBeginLumi(edm::StreamContext const &)
void preModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPreStreamEndRun(PreStreamEndRun::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void preSourceRun(edm::RunIndex)
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const &iSlot)
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
void preModuleStreamBeginLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postSourceConstruction(edm::ModuleDescription const &)
void preModuleStreamBeginRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPreEventReadFromSource(PreEventReadFromSource::slot_type const &iSlot)
void watchPreModuleDestruction(PreModuleDestruction::slot_type const &iSlot)
void watchPostPathEvent(PostPathEvent::slot_type const &iSlot)
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
void watchPostModuleGlobalBeginLumi(PostModuleGlobalBeginLumi::slot_type const &iSlot)
void preCloseFile(std::string const &, bool)
void watchPostModuleStreamEndLumi(PostModuleStreamEndLumi::slot_type const &iSlot)
void watchPostGlobalBeginLumi(PostGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamBeginRun(PostModuleStreamBeginRun::slot_type const &iSlot)
void watchPostSourceEvent(PostSourceEvent::slot_type const &iSlot)
void postStreamEndRun(edm::StreamContext const &)
void postModuleEndJob(edm::ModuleDescription const &)
void postGlobalEndLumi(edm::GlobalContext const &)
void preModuleEndJob(edm::ModuleDescription const &)
void preModuleGlobalBeginLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void watchPreModuleBeginStream(PreModuleBeginStream::slot_type const &iSlot)
void preGlobalBeginLumi(edm::GlobalContext const &)
void postSourceLumi(edm::LuminosityBlockIndex)
void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::slot_type const &iSlot)
void watchPreModuleEventPrefetching(PreModuleEventPrefetching::slot_type const &iSlot)
void preModuleStreamEndLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postModuleConstruction(edm::ModuleDescription const &)
void postModuleEventPrefetching(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preModuleGlobalBeginRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void preGlobalEndRun(edm::GlobalContext const &)
void postSourceEvent(edm::StreamID)
void watchPostModuleEventPrefetching(PostModuleEventPrefetching::slot_type const &iSlot)
void preStreamEndRun(edm::StreamContext const &)
void postModuleGlobalEndLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const &iSlot)
void watchPostCloseFile(PostCloseFile::slot_type const &iSlot)
void postModuleDestruction(edm::ModuleDescription const &)
void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const &iSlot)
void preModuleEventDelayedGet(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPostSourceRun(PostSourceRun::slot_type const &iSlot)
void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const &iSlot)
void preSourceConstruction(edm::ModuleDescription const &)
void watchPreSourceLumi(PreSourceLumi::slot_type const &iSlot)
void postModuleGlobalEndRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void watchPreModuleEventDelayedGet(PreModuleEventDelayedGet::slot_type const &iSlot)
void preModuleGlobalEndRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void preBeginJob(edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &)
void watchPostModuleEventAcquire(PostModuleEventAcquire::slot_type const &iSlot)
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
void postPathEvent(edm::StreamContext const &, edm::PathContext const &, edm::HLTPathStatus const &)
void postStreamBeginLumi(edm::StreamContext const &)
void preStreamEndLumi(edm::StreamContext const &)
void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const &iSlot)
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
void preModuleBeginJob(edm::ModuleDescription const &)
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
void postGlobalBeginLumi(edm::GlobalContext const &)
void watchPostStreamEndRun(PostStreamEndRun::slot_type const &iSlot)
void postEventReadFromSource(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postModuleBeginStream(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPostModuleStreamEndRun(PostModuleStreamEndRun::slot_type const &iSlot)
void watchPreModuleGlobalBeginLumi(PreModuleGlobalBeginLumi::slot_type const &iSlot)
void postModuleGlobalBeginRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void preModuleBeginStream(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preSourceEvent(edm::StreamID)
void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const &iSlot)
void watchPreModuleStreamBeginLumi(PreModuleStreamBeginLumi::slot_type const &iSlot)
nvtxDomainHandle_t global_domain_
void watchPostModuleBeginStream(PostModuleBeginStream::slot_type const &iSlot)
void preModuleConstruction(edm::ModuleDescription const &)
void watchPostSourceLumi(PostSourceLumi::slot_type const &iSlot)
void watchPreCloseFile(PreCloseFile::slot_type const &iSlot)
void watchPostModuleEventDelayedGet(PostModuleEventDelayedGet::slot_type const &iSlot)
void watchPostModuleGlobalEndRun(PostModuleGlobalEndRun::slot_type const &iSlot)
void watchPostModuleStreamBeginLumi(PostModuleStreamBeginLumi::slot_type const &iSlot)
void preStreamBeginRun(edm::StreamContext const &)
void postModuleStreamBeginRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preModuleStreamEndRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
void watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const &iSlot)
void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const &iSlot)
void watchPostGlobalEndRun(PostGlobalEndRun::slot_type const &iSlot)
void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const &iSlot)
void watchPostOpenFile(PostOpenFile::slot_type const &iSlot)
void watchPreModuleEndStream(PreModuleEndStream::slot_type const &iSlot)
void postGlobalBeginRun(edm::GlobalContext const &)
void watchPreBeginJob(PreBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
void postModuleStreamEndLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postEvent(edm::StreamContext const &)
void watchPostStreamBeginRun(PostStreamBeginRun::slot_type const &iSlot)
void postSourceRun(edm::RunIndex)
void watchPreStreamBeginRun(PreStreamBeginRun::slot_type const &iSlot)
void watchPostModuleDestruction(PostModuleDestruction::slot_type const &iSlot)
void preallocate(edm::service::SystemBounds const &)
void watchPreModuleStreamEndRun(PreModuleStreamEndRun::slot_type const &iSlot)
void postModuleEndStream(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preSourceLumi(edm::LuminosityBlockIndex)
void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const &iSlot)
void watchPostEventReadFromSource(PostEventReadFromSource::slot_type const &iSlot)
void watchPostModuleGlobalBeginRun(PostModuleGlobalBeginRun::slot_type const &iSlot)
const bool showModulePrefetching_
void preEventReadFromSource(edm::StreamContext const &, edm::ModuleCallingContext const &)
void preEvent(edm::StreamContext const &)
void preModuleGlobalEndLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void watchPreSourceEvent(PreSourceEvent::slot_type const &iSlot)
void postStreamBeginRun(edm::StreamContext const &)
void prePathEvent(edm::StreamContext const &, edm::PathContext const &)
void postModuleStreamEndRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
void postModuleGlobalBeginLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
void watchPostModuleEndJob(PostModuleEndJob::slot_type const &iSlot)
std::vector< std::string > highlightModules_
void preModuleDestruction(edm::ModuleDescription const &)
void watchPreModuleGlobalEndLumi(PreModuleGlobalEndLumi::slot_type const &iSlot)
void postModuleBeginJob(edm::ModuleDescription const &)
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
NVProfilerService::~NVProfilerService ( )

Definition at line 475 of file NVProfilerService.cc.

References global_domain_, and stream_domain_.

475  {
476  for (unsigned int sid = 0; sid < stream_domain_.size(); ++sid) {
477  nvtxDomainDestroy(stream_domain_[sid]);
478  }
479  nvtxDomainDestroy(global_domain_);
480  cudaProfilerStop();
481 }
std::vector< nvtxDomainHandle_t > stream_domain_
nvtxDomainHandle_t global_domain_

Member Function Documentation

void NVProfilerService::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 483 of file NVProfilerService.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addUntracked(), submitPVResolutionJobs::desc, and edm::ConfigurationDescriptions::setComment().

483  {
485  desc.addUntracked<std::vector<std::string>>("highlightModules", {})->setComment("");
486  desc.addUntracked<bool>("showModulePrefetching", false)
487  ->setComment("Show the stack of dependencies that requested to run a module.");
488  desc.addUntracked<bool>("skipFirstEvent", false)
489  ->setComment(
490  "Start profiling after the first event has completed.\nWith multiple streams, ignore transitions belonging "
491  "to events started in parallel to the first event.\nRequires running nvprof with the '--profile-from-start "
492  "off' option.");
493  descriptions.add("NVProfilerService", desc);
494  descriptions.setComment(R"(This Service provides CMSSW-aware annotations to nvprof/nvvm. Notes on nvprof options: - the option '--profile-from-start off' should be used if skipFirstEvent is True. - the option '--cpu-profiling on' currently results in cmsRun being stuck at the beginning of the job. - the option '--cpu-thread-tracing on' is not compatible with jemalloc, and should only be used with cmsRunGlibC.)");
495 }
496 
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void setComment(std::string const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool NVProfilerService::highlight ( std::string const &  label) const
inlineprivate

Definition at line 281 of file NVProfilerService.cc.

References label.

281  {
282  return (std::binary_search(highlightModules_.begin(), highlightModules_.end(), label));
283  }
char const * label
std::vector< std::string > highlightModules_
uint32_t NVProfilerService::labelColor ( std::string const &  label) const
inlineprivate

Definition at line 285 of file NVProfilerService.cc.

285 { return highlight(label) ? nvtxAmber : nvtxGreen; }
bool highlight(std::string const &label) const
char const * label
uint32_t NVProfilerService::labelColorLight ( std::string const &  label) const
inlineprivate

Definition at line 287 of file NVProfilerService.cc.

287  {
288  return highlight(label) ? nvtxLightAmber : nvtxLightGreen;
289  }
bool highlight(std::string const &label) const
char const * label
void NVProfilerService::postBeginJob ( )

Definition at line 540 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

540  {
542  nvtxDomainMark(global_domain_, "postBeginJob");
543  }
544 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postCloseFile ( std::string const &  lfn,
bool   
)

Definition at line 606 of file NVProfilerService.cc.

References edm::ModuleDescription::id(), label, edm::ModuleCallingContext::moduleDescription(), edm::ModuleDescription::moduleLabel(), or, skipFirstEvent_, streamFirstEventDone_, and edm::StreamContext::streamID().

Referenced by NVProfilerService().

606  {
608  nvtxDomainRangePop(global_domain_);
609  }
610 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postEndJob ( )

Definition at line 546 of file NVProfilerService.cc.

References or, skipFirstEvent_, stream_domain_, and streamFirstEventDone_.

Referenced by NVProfilerService().

546  {
548  nvtxDomainMark(global_domain_, "postEndJob");
549  }
550 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postEvent ( edm::StreamContext const &  sc)

Definition at line 761 of file NVProfilerService.cc.

Referenced by NVProfilerService().

761  {
762  auto sid = sc.streamID();
764  nvtxDomainRangeEnd(stream_domain_[sid], event_[sid]);
765  event_[sid] = nvtxInvalidRangeId;
766  } else {
767  streamFirstEventDone_[sid] = true;
768  auto identity = [](bool x) { return x; };
769  if (std::all_of(streamFirstEventDone_.begin(), streamFirstEventDone_.end(), identity)) {
770  bool expected = false;
771  if (globalFirstEventDone_.compare_exchange_strong(expected, true))
772  cudaProfilerStart();
773  }
774  }
775 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
T identity(T t)
std::vector< nvtxRangeId_t > event_
std::vector< nvtxDomainHandle_t > stream_domain_
std::atomic< bool > globalFirstEventDone_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postEventReadFromSource ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 959 of file NVProfilerService.cc.

Referenced by NVProfilerService().

959  {
960  /* FIXME
961  auto sid = sc.streamID();
962  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
963  auto mid = mcc.moduleDescription()->id();
964  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
965  stream_modules_[sid][mid] = nvtxInvalidRangeId;
966  }
967  */
968 }
void NVProfilerService::postGlobalBeginLumi ( edm::GlobalContext const &  gc)

Definition at line 710 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

710  {
712  nvtxDomainRangePop(global_domain_);
713  }
714 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postGlobalBeginRun ( edm::GlobalContext const &  gc)

Definition at line 658 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

658  {
660  nvtxDomainRangePop(global_domain_);
661  }
662 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postGlobalEndLumi ( edm::GlobalContext const &  gc)

Definition at line 722 of file NVProfilerService.cc.

References or, skipFirstEvent_, stream_domain_, streamFirstEventDone_, and edm::StreamContext::streamID().

Referenced by NVProfilerService().

722  {
724  nvtxDomainRangePop(global_domain_);
725  }
726 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postGlobalEndRun ( edm::GlobalContext const &  gc)

Definition at line 670 of file NVProfilerService.cc.

References or, skipFirstEvent_, stream_domain_, streamFirstEventDone_, and edm::StreamContext::streamID().

Referenced by NVProfilerService().

670  {
672  nvtxDomainRangePop(global_domain_);
673  }
674 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleBeginJob ( edm::ModuleDescription const &  desc)

Definition at line 858 of file NVProfilerService.cc.

Referenced by NVProfilerService().

858  {
859  if (not skipFirstEvent_) {
860  auto mid = desc.id();
861  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
862  global_modules_[mid] = nvtxInvalidRangeId;
863  }
864 }
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
void NVProfilerService::postModuleBeginStream ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 623 of file NVProfilerService.cc.

Referenced by NVProfilerService().

623  {
624  auto sid = sc.streamID();
626  auto mid = mcc.moduleDescription()->id();
627  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
628  stream_modules_[sid][mid] = nvtxInvalidRangeId;
629  }
630 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleConstruction ( edm::ModuleDescription const &  desc)

Definition at line 823 of file NVProfilerService.cc.

Referenced by NVProfilerService().

823  {
824  if (not skipFirstEvent_) {
825  auto mid = desc.id();
826  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
827  global_modules_[mid] = nvtxInvalidRangeId;
828  }
829 }
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
void NVProfilerService::postModuleDestruction ( edm::ModuleDescription const &  desc)

Definition at line 841 of file NVProfilerService.cc.

Referenced by NVProfilerService().

841  {
842  if (not skipFirstEvent_) {
843  auto mid = desc.id();
844  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
845  global_modules_[mid] = nvtxInvalidRangeId;
846  }
847 }
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
void NVProfilerService::postModuleEndJob ( edm::ModuleDescription const &  desc)

Definition at line 875 of file NVProfilerService.cc.

Referenced by NVProfilerService().

875  {
877  auto mid = desc.id();
878  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
879  global_modules_[mid] = nvtxInvalidRangeId;
880  }
881 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleEndStream ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 643 of file NVProfilerService.cc.

Referenced by NVProfilerService().

643  {
644  auto sid = sc.streamID();
646  auto mid = mcc.moduleDescription()->id();
647  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
648  stream_modules_[sid][mid] = nvtxInvalidRangeId;
649  }
650 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleEvent ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 913 of file NVProfilerService.cc.

Referenced by NVProfilerService().

913  {
914  auto sid = sc.streamID();
916  auto mid = mcc.moduleDescription()->id();
917  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
918  stream_modules_[sid][mid] = nvtxInvalidRangeId;
919  }
920 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleEventAcquire ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 894 of file NVProfilerService.cc.

Referenced by NVProfilerService().

894  {
895  auto sid = sc.streamID();
897  auto mid = mcc.moduleDescription()->id();
898  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
899  stream_modules_[sid][mid] = nvtxInvalidRangeId;
900  }
901 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleEventDelayedGet ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 935 of file NVProfilerService.cc.

Referenced by NVProfilerService().

935  {
936  /* FIXME
937  auto sid = sc.streamID();
938  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
939  auto mid = mcc.moduleDescription()->id();
940  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
941  stream_modules_[sid][mid] = nvtxInvalidRangeId;
942  }
943  */
944 }
void NVProfilerService::postModuleEventPrefetching ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 804 of file NVProfilerService.cc.

Referenced by NVProfilerService().

804  {
805  auto sid = sc.streamID();
807  auto mid = mcc.moduleDescription()->id();
808  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
809  stream_modules_[sid][mid] = nvtxInvalidRangeId;
810  }
811 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleGlobalBeginLumi ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1093 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1093  {
1095  auto mid = mcc.moduleDescription()->id();
1096  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
1097  global_modules_[mid] = nvtxInvalidRangeId;
1098  }
1099 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleGlobalBeginRun ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1059 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1059  {
1061  auto mid = mcc.moduleDescription()->id();
1062  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
1063  global_modules_[mid] = nvtxInvalidRangeId;
1064  }
1065 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleGlobalEndLumi ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1110 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1110  {
1112  auto mid = mcc.moduleDescription()->id();
1113  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
1114  global_modules_[mid] = nvtxInvalidRangeId;
1115  }
1116 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleGlobalEndRun ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1076 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1076  {
1078  auto mid = mcc.moduleDescription()->id();
1079  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
1080  global_modules_[mid] = nvtxInvalidRangeId;
1081  }
1082 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postModuleStreamBeginLumi ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1021 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1021  {
1022  auto sid = sc.streamID();
1023  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
1024  auto mid = mcc.moduleDescription()->id();
1025  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
1026  stream_modules_[sid][mid] = nvtxInvalidRangeId;
1027  }
1028 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleStreamBeginRun ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 981 of file NVProfilerService.cc.

Referenced by NVProfilerService().

981  {
982  auto sid = sc.streamID();
984  auto mid = mcc.moduleDescription()->id();
985  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
986  stream_modules_[sid][mid] = nvtxInvalidRangeId;
987  }
988 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleStreamEndLumi ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1041 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1041  {
1042  auto sid = sc.streamID();
1043  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
1044  auto mid = mcc.moduleDescription()->id();
1045  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
1046  stream_modules_[sid][mid] = nvtxInvalidRangeId;
1047  }
1048 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postModuleStreamEndRun ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1001 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1001  {
1002  auto sid = sc.streamID();
1003  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
1004  auto mid = mcc.moduleDescription()->id();
1005  nvtxDomainRangeEnd(stream_domain_[sid], stream_modules_[sid][mid]);
1006  stream_modules_[sid][mid] = nvtxInvalidRangeId;
1007  }
1008 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postOpenFile ( std::string const &  lfn,
bool   
)

Definition at line 594 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, alignCSCRings::s, and skipFirstEvent_.

Referenced by NVProfilerService().

594  {
596  nvtxDomainRangePop(global_domain_);
597  }
598 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postPathEvent ( edm::StreamContext const &  sc,
edm::PathContext const &  pc,
edm::HLTPathStatus const &  hlts 
)

Definition at line 784 of file NVProfilerService.cc.

Referenced by NVProfilerService().

786  {
787  auto sid = sc.streamID();
789  nvtxDomainMark(global_domain_, ("after path "s + pc.pathName()).c_str());
790  }
791 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postSourceConstruction ( edm::ModuleDescription const &  desc)

Definition at line 1128 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1128  {
1129  if (not skipFirstEvent_) {
1130  auto mid = desc.id();
1131  nvtxDomainRangeEnd(global_domain_, global_modules_[mid]);
1132  global_modules_[mid] = nvtxInvalidRangeId;
1133  }
1134 }
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
void NVProfilerService::postSourceEvent ( edm::StreamID  sid)

Definition at line 558 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

558  {
560  nvtxDomainRangePop(stream_domain_[sid]);
561  }
562 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postSourceLumi ( edm::LuminosityBlockIndex  index)

Definition at line 570 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

570  {
572  nvtxDomainRangePop(global_domain_);
573  }
574 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postSourceRun ( edm::RunIndex  index)

Definition at line 582 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, alignCSCRings::s, and skipFirstEvent_.

Referenced by NVProfilerService().

582  {
584  nvtxDomainRangePop(global_domain_);
585  }
586 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::postStreamBeginLumi ( edm::StreamContext const &  sc)

Definition at line 735 of file NVProfilerService.cc.

Referenced by NVProfilerService().

735  {
736  auto sid = sc.streamID();
738  nvtxDomainRangePop(stream_domain_[sid]);
739  }
740 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postStreamBeginRun ( edm::StreamContext const &  sc)

Definition at line 683 of file NVProfilerService.cc.

Referenced by NVProfilerService().

683  {
684  auto sid = sc.streamID();
686  nvtxDomainRangePop(stream_domain_[sid]);
687  }
688 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postStreamEndLumi ( edm::StreamContext const &  sc)

Definition at line 747 of file NVProfilerService.cc.

Referenced by NVProfilerService().

747  {
748  auto sid = sc.streamID();
750  nvtxDomainRangePop(stream_domain_[sid]);
751  }
752 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::postStreamEndRun ( edm::StreamContext const &  sc)

Definition at line 697 of file NVProfilerService.cc.

Referenced by NVProfilerService().

697  {
698  auto sid = sc.streamID();
700  nvtxDomainRangePop(stream_domain_[sid]);
701  }
702 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preallocate ( edm::service::SystemBounds const &  bounds)

Definition at line 502 of file NVProfilerService.cc.

References stream_domain_.

Referenced by NVProfilerService().

502  {
503  std::stringstream out;
504  out << "preallocate: " << bounds.maxNumberOfConcurrentRuns() << " concurrent runs, "
505  << bounds.maxNumberOfConcurrentLuminosityBlocks() << " luminosity sections, " << bounds.maxNumberOfStreams()
506  << " streams\nrunning on" << bounds.maxNumberOfThreads() << " threads";
507  nvtxDomainMark(global_domain_, out.str().c_str());
508 
509  auto concurrentStreams = bounds.maxNumberOfStreams();
510  // create the NVTX domains for per-EDM-stream transitions
511  stream_domain_.resize(concurrentStreams);
512  for (unsigned int sid = 0; sid < concurrentStreams; ++sid) {
513  stream_domain_[sid] = nvtxDomainCreate(fmt::sprintf("EDM Stream %d", sid).c_str());
514  }
515 
516  event_.resize(concurrentStreams);
517  stream_modules_.resize(concurrentStreams);
518  if (skipFirstEvent_) {
519  globalFirstEventDone_ = false;
520  std::vector<std::atomic<bool>> tmp(concurrentStreams);
521  for (auto& element : tmp)
522  std::atomic_init(&element, false);
524  }
525 }
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
def move
Definition: eostools.py:511
std::vector< nvtxRangeId_t > event_
std::vector< nvtxDomainHandle_t > stream_domain_
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
std::vector< std::atomic< bool > > streamFirstEventDone_
tmp
align.sh
Definition: createJobs.py:716
void NVProfilerService::preBeginJob ( edm::PathsAndConsumesOfModulesBase const &  pathsAndConsumes,
edm::ProcessContext const &  pc 
)

Definition at line 527 of file NVProfilerService.cc.

References stream_modules_.

Referenced by NVProfilerService().

528  {
529  nvtxDomainMark(global_domain_, "preBeginJob");
530 
531  // FIXME this probably works only in the absence of subprocesses
532  // size() + 1 because pathsAndConsumes.allModules() does not include the source
533  unsigned int modules = pathsAndConsumes.allModules().size() + 1;
534  global_modules_.resize(modules, nvtxInvalidRangeId);
535  for (unsigned int sid = 0; sid < stream_modules_.size(); ++sid) {
536  stream_modules_[sid].resize(modules, nvtxInvalidRangeId);
537  }
538 }
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
void NVProfilerService::preCloseFile ( std::string const &  lfn,
bool   
)

Definition at line 600 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

600  {
602  nvtxDomainRangePush(global_domain_, ("close file "s + lfn).c_str());
603  }
604 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preEvent ( edm::StreamContext const &  sc)

Definition at line 754 of file NVProfilerService.cc.

Referenced by NVProfilerService().

754  {
755  auto sid = sc.streamID();
757  event_[sid] = nvtxDomainRangeStartColor(stream_domain_[sid], "event", nvtxDarkGreen);
758  }
759 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxRangeId_t > event_
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preEventReadFromSource ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 946 of file NVProfilerService.cc.

Referenced by NVProfilerService().

946  {
947  /* FIXME
948  auto sid = sc.streamID();
949  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
950  auto mid = mcc.moduleDescription()->id();
951  auto const & label = mcc.moduleDescription()->moduleLabel();
952  auto const & msg = label + " read from source";
953  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
954  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColorLight(label));
955  }
956  */
957 }
void NVProfilerService::preGlobalBeginLumi ( edm::GlobalContext const &  gc)

Definition at line 704 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

704  {
706  nvtxDomainRangePush(global_domain_, "global begin lumi");
707  }
708 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preGlobalBeginRun ( edm::GlobalContext const &  gc)

Definition at line 652 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

652  {
654  nvtxDomainRangePush(global_domain_, "global begin run");
655  }
656 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preGlobalEndLumi ( edm::GlobalContext const &  gc)

Definition at line 716 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

716  {
718  nvtxDomainRangePush(global_domain_, "global end lumi");
719  }
720 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preGlobalEndRun ( edm::GlobalContext const &  gc)

Definition at line 664 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

664  {
666  nvtxDomainRangePush(global_domain_, "global end run");
667  }
668 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleBeginJob ( edm::ModuleDescription const &  desc)

Definition at line 849 of file NVProfilerService.cc.

Referenced by NVProfilerService().

849  {
850  if (not skipFirstEvent_) {
851  auto mid = desc.id();
852  auto const& label = desc.moduleLabel();
853  auto const& msg = label + " begin job";
854  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
855  }
856 }
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
void NVProfilerService::preModuleBeginStream ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 612 of file NVProfilerService.cc.

Referenced by NVProfilerService().

612  {
613  auto sid = sc.streamID();
615  auto mid = mcc.moduleDescription()->id();
616  auto const& label = mcc.moduleDescription()->moduleLabel();
617  auto const& msg = label + " begin stream";
618  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
619  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
620  }
621 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleConstruction ( edm::ModuleDescription const &  desc)

Definition at line 813 of file NVProfilerService.cc.

Referenced by NVProfilerService().

813  {
814  if (not skipFirstEvent_) {
815  auto mid = desc.id();
816  global_modules_.grow_to_at_least(mid + 1);
817  auto const& label = desc.moduleLabel();
818  auto const& msg = label + " construction";
819  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
820  }
821 }
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
void NVProfilerService::preModuleDestruction ( edm::ModuleDescription const &  desc)

Definition at line 831 of file NVProfilerService.cc.

Referenced by NVProfilerService().

831  {
832  if (not skipFirstEvent_) {
833  auto mid = desc.id();
834  global_modules_.grow_to_at_least(mid + 1);
835  auto const& label = desc.moduleLabel();
836  auto const& msg = label + " destruction";
837  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
838  }
839 }
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
void NVProfilerService::preModuleEndJob ( edm::ModuleDescription const &  desc)

Definition at line 866 of file NVProfilerService.cc.

Referenced by NVProfilerService().

866  {
868  auto mid = desc.id();
869  auto const& label = desc.moduleLabel();
870  auto const& msg = label + " end job";
871  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
872  }
873 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleEndStream ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 632 of file NVProfilerService.cc.

Referenced by NVProfilerService().

632  {
633  auto sid = sc.streamID();
635  auto mid = mcc.moduleDescription()->id();
636  auto const& label = mcc.moduleDescription()->moduleLabel();
637  auto const& msg = label + " end stream";
638  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
639  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
640  }
641 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleEvent ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 903 of file NVProfilerService.cc.

Referenced by NVProfilerService().

903  {
904  auto sid = sc.streamID();
906  auto mid = mcc.moduleDescription()->id();
907  auto const& label = mcc.moduleDescription()->moduleLabel();
908  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
909  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], label.c_str(), labelColor(label));
910  }
911 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleEventAcquire ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 883 of file NVProfilerService.cc.

Referenced by NVProfilerService().

883  {
884  auto sid = sc.streamID();
886  auto mid = mcc.moduleDescription()->id();
887  auto const& label = mcc.moduleDescription()->moduleLabel();
888  auto const& msg = label + " acquire";
889  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
890  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
891  }
892 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleEventDelayedGet ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 922 of file NVProfilerService.cc.

Referenced by NVProfilerService().

922  {
923  /* FIXME
924  auto sid = sc.streamID();
925  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
926  auto mid = mcc.moduleDescription()->id();
927  auto const & label = mcc.moduleDescription()->moduleLabel();
928  auto const & msg = label + " delayed get";
929  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
930  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], label.c_str(), labelColorLight(label));
931  }
932  */
933 }
void NVProfilerService::preModuleEventPrefetching ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 793 of file NVProfilerService.cc.

Referenced by NVProfilerService().

793  {
794  auto sid = sc.streamID();
796  auto mid = mcc.moduleDescription()->id();
797  auto const& label = mcc.moduleDescription()->moduleLabel();
798  auto const& msg = label + " prefetching";
799  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
800  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColorLight(label));
801  }
802 }
uint32_t labelColorLight(std::string const &label) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleGlobalBeginLumi ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1084 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1084  {
1086  auto mid = mcc.moduleDescription()->id();
1087  auto const& label = mcc.moduleDescription()->moduleLabel();
1088  auto const& msg = label + " global begin lumi";
1089  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
1090  }
1091 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleGlobalBeginRun ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1050 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1050  {
1052  auto mid = mcc.moduleDescription()->id();
1053  auto const& label = mcc.moduleDescription()->moduleLabel();
1054  auto const& msg = label + " global begin run";
1055  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
1056  }
1057 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleGlobalEndLumi ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1101 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1101  {
1103  auto mid = mcc.moduleDescription()->id();
1104  auto const& label = mcc.moduleDescription()->moduleLabel();
1105  auto const& msg = label + " global end lumi";
1106  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
1107  }
1108 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleGlobalEndRun ( edm::GlobalContext const &  gc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1067 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1067  {
1069  auto mid = mcc.moduleDescription()->id();
1070  auto const& label = mcc.moduleDescription()->moduleLabel();
1071  auto const& msg = label + " global end run";
1072  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
1073  }
1074 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preModuleStreamBeginLumi ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1010 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1010  {
1011  auto sid = sc.streamID();
1012  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
1013  auto mid = mcc.moduleDescription()->id();
1014  auto const& label = mcc.moduleDescription()->moduleLabel();
1015  auto const& msg = label + " stream begin lumi";
1016  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
1017  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
1018  }
1019 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleStreamBeginRun ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 970 of file NVProfilerService.cc.

Referenced by NVProfilerService().

970  {
971  auto sid = sc.streamID();
973  auto mid = mcc.moduleDescription()->id();
974  auto const& label = mcc.moduleDescription()->moduleLabel();
975  auto const& msg = label + " stream begin run";
976  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
977  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
978  }
979 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleStreamEndLumi ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 1030 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1030  {
1031  auto sid = sc.streamID();
1032  if (not skipFirstEvent_ or streamFirstEventDone_[sid]) {
1033  auto mid = mcc.moduleDescription()->id();
1034  auto const& label = mcc.moduleDescription()->moduleLabel();
1035  auto const& msg = label + " stream end lumi";
1036  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
1037  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
1038  }
1039 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preModuleStreamEndRun ( edm::StreamContext const &  sc,
edm::ModuleCallingContext const &  mcc 
)

Definition at line 990 of file NVProfilerService.cc.

Referenced by NVProfilerService().

990  {
991  auto sid = sc.streamID();
993  auto mid = mcc.moduleDescription()->id();
994  auto const& label = mcc.moduleDescription()->moduleLabel();
995  auto const& msg = label + " stream end run";
996  assert(stream_modules_[sid][mid] == nvtxInvalidRangeId);
997  stream_modules_[sid][mid] = nvtxDomainRangeStartColor(stream_domain_[sid], msg.c_str(), labelColor(label));
998  }
999 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< std::vector< nvtxRangeId_t > > stream_modules_
assert(be >=bs)
char const * label
uint32_t labelColor(std::string const &label) const
std::vector< nvtxDomainHandle_t > stream_domain_
tuple msg
Definition: mps_check.py:285
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preOpenFile ( std::string const &  lfn,
bool   
)

Definition at line 588 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

588  {
590  nvtxDomainRangePush(global_domain_, ("open file "s + lfn).c_str());
591  }
592 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::prePathEvent ( edm::StreamContext const &  sc,
edm::PathContext const &  pc 
)

Definition at line 777 of file NVProfilerService.cc.

Referenced by NVProfilerService().

777  {
778  auto sid = sc.streamID();
780  nvtxDomainMark(global_domain_, ("before path "s + pc.pathName()).c_str());
781  }
782 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preSourceConstruction ( edm::ModuleDescription const &  desc)

Definition at line 1118 of file NVProfilerService.cc.

Referenced by NVProfilerService().

1118  {
1119  if (not skipFirstEvent_) {
1120  auto mid = desc.id();
1121  global_modules_.grow_to_at_least(mid + 1);
1122  auto const& label = desc.moduleLabel();
1123  auto const& msg = label + " construction";
1124  global_modules_[mid] = nvtxDomainRangeStartColor(global_domain_, msg.c_str(), labelColor(label));
1125  }
1126 }
char const * label
uint32_t labelColor(std::string const &label) const
tbb::concurrent_vector< nvtxRangeId_t > global_modules_
nvtxDomainHandle_t global_domain_
tuple msg
Definition: mps_check.py:285
void NVProfilerService::preSourceEvent ( edm::StreamID  sid)

Definition at line 552 of file NVProfilerService.cc.

References or, skipFirstEvent_, stream_domain_, and streamFirstEventDone_.

Referenced by NVProfilerService().

552  {
554  nvtxDomainRangePush(stream_domain_[sid], "source");
555  }
556 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preSourceLumi ( edm::LuminosityBlockIndex  index)

Definition at line 564 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

564  {
566  nvtxDomainRangePush(global_domain_, "source lumi");
567  }
568 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preSourceRun ( edm::RunIndex  index)

Definition at line 576 of file NVProfilerService.cc.

References global_domain_, globalFirstEventDone_, or, and skipFirstEvent_.

Referenced by NVProfilerService().

576  {
578  nvtxDomainRangePush(global_domain_, "source run");
579  }
580 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
nvtxDomainHandle_t global_domain_
std::atomic< bool > globalFirstEventDone_
void NVProfilerService::preStreamBeginLumi ( edm::StreamContext const &  sc)

Definition at line 728 of file NVProfilerService.cc.

Referenced by NVProfilerService().

728  {
729  auto sid = sc.streamID();
731  nvtxDomainRangePush(stream_domain_[sid], "stream begin lumi");
732  }
733 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preStreamBeginRun ( edm::StreamContext const &  sc)

Definition at line 676 of file NVProfilerService.cc.

Referenced by NVProfilerService().

676  {
677  auto sid = sc.streamID();
679  nvtxDomainRangePush(stream_domain_[sid], "stream begin run");
680  }
681 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_
void NVProfilerService::preStreamEndLumi ( edm::StreamContext const &  sc)

Definition at line 742 of file NVProfilerService.cc.

References or, skipFirstEvent_, stream_domain_, streamFirstEventDone_, and edm::StreamContext::streamID().

Referenced by NVProfilerService().

742  {
743  auto sid = sc.streamID();
744  nvtxDomainRangePush(stream_domain_[sid], "stream end lumi");
745 }
std::vector< nvtxDomainHandle_t > stream_domain_
void NVProfilerService::preStreamEndRun ( edm::StreamContext const &  sc)

Definition at line 690 of file NVProfilerService.cc.

Referenced by NVProfilerService().

690  {
691  auto sid = sc.streamID();
693  nvtxDomainRangePush(stream_domain_[sid], "stream end run");
694  }
695 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< nvtxDomainHandle_t > stream_domain_
std::vector< std::atomic< bool > > streamFirstEventDone_

Member Data Documentation

std::vector<nvtxRangeId_t> NVProfilerService::event_
private

Definition at line 297 of file NVProfilerService.cc.

tbb::concurrent_vector<nvtxRangeId_t> NVProfilerService::global_modules_
private

Definition at line 300 of file NVProfilerService.cc.

std::vector<std::string> NVProfilerService::highlightModules_
private

Definition at line 291 of file NVProfilerService.cc.

Referenced by NVProfilerService().

const bool NVProfilerService::showModulePrefetching_
private

Definition at line 292 of file NVProfilerService.cc.

Referenced by NVProfilerService().

std::vector<nvtxDomainHandle_t> NVProfilerService::stream_domain_
private
std::vector<std::vector<nvtxRangeId_t> > NVProfilerService::stream_modules_
private

Definition at line 298 of file NVProfilerService.cc.

Referenced by preBeginJob().

std::vector<std::atomic<bool> > NVProfilerService::streamFirstEventDone_
private