CMS 3D CMS Logo

FastTimerService.h
Go to the documentation of this file.
1 #ifndef FastTimerService_h
2 #define FastTimerService_h
3 
4 // system headers
5 #include <unistd.h>
6 #include <pthread.h>
7 
8 // C++ headers
9 #include <chrono>
10 #include <cmath>
11 #include <map>
12 #include <mutex>
13 #include <string>
14 #include <unordered_map>
15 
16 // boost headers
17 #include <boost/chrono.hpp>
18 
19 // tbb headers
20 #include <tbb/concurrent_unordered_set.h>
21 #include <tbb/enumerable_thread_specific.h>
22 #include <tbb/task_scheduler_observer.h>
23 
24 // JSON headers
25 #include <nlohmann/json_fwd.hpp>
27 
28 // CMSSW headers
47 
48 /*
49 procesing time is divided into
50  - source
51  - event processing, sum of the time spent in all the modules
52 */
53 
54 class FastTimerService : public tbb::task_scheduler_observer {
55 public:
57  ~FastTimerService() override = default;
58 
59 private:
60  void ignoredSignal(const std::string& signal) const;
61  void unsupportedSignal(const std::string& signal) const;
62 
63  // these signal pairs are not guaranteed to happen in the same thread
64 
66 
68  void postBeginJob();
69 
70  void postEndJob();
71 
74 
77 
80 
83 
86 
89 
92 
95 
96  void preEvent(edm::StreamContext const&);
97  void postEvent(edm::StreamContext const&);
98 
101 
104 
105  // these signal pairs are guaranteed to be called within the same thread
106 
107  //void preOpenFile(std::string const&, bool);
108  //void postOpenFile(std::string const&, bool);
109 
110  //void preCloseFile(std::string const&, bool);
111  //void postCloseFile(std::string const&, bool);
112 
114  //void postSourceConstruction(edm::ModuleDescription const&);
115 
118 
121 
124 
125  //void preModuleConstruction(edm::ModuleDescription const&);
126  //void postModuleConstruction(edm::ModuleDescription const&);
127 
128  //void preModuleBeginJob(edm::ModuleDescription const&);
129  //void postModuleBeginJob(edm::ModuleDescription const&);
130 
131  //void preModuleEndJob(edm::ModuleDescription const&);
132  //void postModuleEndJob(edm::ModuleDescription const&);
133 
134  //void preModuleBeginStream(edm::StreamContext const&, edm::ModuleCallingContext const&);
135  //void postModuleBeginStream(edm::StreamContext const&, edm::ModuleCallingContext const&);
136 
137  //void preModuleEndStream(edm::StreamContext const&, edm::ModuleCallingContext const&);
138  //void postModuleEndStream(edm::StreamContext const&, edm::ModuleCallingContext const&);
139 
142 
145 
148 
151 
154 
157 
160 
163 
166 
169 
172 
175 
176  // inherited from TBB task_scheduler_observer
177  void on_scheduler_entry(bool worker) final;
178  void on_scheduler_exit(bool worker) final;
179 
180 public:
181  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
182 
183 private:
184  // forward declarations
185  struct Resources;
186  struct AtomicResources;
187 
188  // per-thread measurements
189  struct Measurement {
190  public:
191  Measurement() noexcept;
192  // take per-thread measurements
193  void measure() noexcept;
194  // take per-thread measurements, compute the delta with respect to the previous measurement, and store them in the argument
195  void measure_and_store(Resources& store) noexcept;
196  // take per-thread measurements, compute the delta with respect to the previous measurement, and add them to the argument
197  void measure_and_accumulate(Resources& store) noexcept;
198  void measure_and_accumulate(AtomicResources& store) noexcept;
199 
200  public:
201 #ifdef DEBUG_THREAD_CONCURRENCY
203 #endif // DEBUG_THREAD_CONCURRENCY
204  boost::chrono::thread_clock::time_point time_thread;
205  boost::chrono::high_resolution_clock::time_point time_real;
208  };
209 
210  // highlight a group of modules
211  struct GroupOfModules {
212  public:
214  std::vector<unsigned int> modules;
215  };
216 
217  // resources being monitored by the service
218  struct Resources {
219  public:
220  Resources();
221  void reset();
222 
224  Resources& operator+=(struct AtomicResources const& other);
225  Resources operator+(Resources const& other) const;
226  Resources operator+(struct AtomicResources const& other) const;
227 
228  public:
233  };
234 
235  // atomic version of Resources
236  // Note: the structure as a whole is *not* atomic, only the individual fields are
238  public:
239  AtomicResources();
241  void reset();
242 
247  Resources operator+(Resources const& other) const;
248 
249  public:
250  std::atomic<boost::chrono::nanoseconds::rep> time_thread;
251  std::atomic<boost::chrono::nanoseconds::rep> time_real;
252  std::atomic<uint64_t> allocated;
253  std::atomic<uint64_t> deallocated;
254  };
255 
256  // resources associated to each module, path, process and job
257 
259  public:
260  ResourcesPerModule() noexcept;
261  void reset() noexcept;
262 
265 
266  public:
268  unsigned events;
269  bool has_acquire; // whether this module has an acquire() method
270  };
271 
273  public:
274  void reset();
277 
278  public:
279  Resources active; // resources used by all modules on this path
280  Resources total; // resources used by all modules on this path, and their dependencies
281  unsigned last; // one-past-the last module that ran on this path
282  bool status; // whether the path accepted or rejected the event
283  };
284 
286  public:
288  void reset();
291 
292  public:
294  std::vector<ResourcesPerPath> paths;
295  std::vector<ResourcesPerPath> endpaths;
296  };
297 
299  public:
300  ResourcesPerJob() = default;
301  ResourcesPerJob(ProcessCallGraph const& job, std::vector<GroupOfModules> const& groups);
302  void reset();
305 
306  public:
309  Resources event; // total time etc. spent between preSourceEvent and postEvent
311  std::vector<Resources> highlight;
312  std::vector<ResourcesPerModule> modules;
313  std::vector<ResourcesPerProcess> processes;
314  unsigned events;
315  };
316 
317  // plot ranges and resolution
318  struct PlotRanges {
319  double time_range;
321  double memory_range;
323  };
324 
325  // plots associated to each module or other element (path, process, etc)
327  public:
328  PlotsPerElement() = default;
330  std::string const& name,
331  std::string const& title,
332  PlotRanges const& ranges,
333  unsigned int lumisections,
334  bool byls);
335  void fill(Resources const&, unsigned int lumisection);
336  void fill(AtomicResources const&, unsigned int lumisection);
337  void fill_fraction(Resources const&, Resources const&, unsigned int lumisection);
338 
339  private:
340  // resources spent in the module
349  };
350 
351  // plots associated to each path or endpath
352  class PlotsPerPath {
353  public:
354  PlotsPerPath() = default;
356  std::string const&,
357  ProcessCallGraph const&,
359  PlotRanges const& ranges,
360  unsigned int lumisections,
361  bool byls);
362  void fill(ProcessCallGraph::PathType const&,
363  ResourcesPerJob const&,
364  ResourcesPerPath const&,
365  unsigned int lumisection);
366 
367  private:
368  // resources spent in all the modules in the path, including their dependencies
370 
371  // Note:
372  // a TH1F has 7 significant digits, while a 24-hour long run could process
373  // order of 10 billion events; a 64-bit long integer would work and might
374  // be better suited than a double, but there is no "TH1L" in ROOT.
375 
376  // how many times each module and their dependencies has run
378  // resources spent in each module and their dependencies
383  };
384 
386  public:
389  ProcessCallGraph const&,
391  PlotRanges const& event_ranges,
392  PlotRanges const& path_ranges,
393  unsigned int lumisections,
394  bool bypath,
395  bool byls);
396  void fill(ProcessCallGraph::ProcessType const&, ResourcesPerJob const&, ResourcesPerProcess const&, unsigned int ls);
397 
398  private:
399  // resources spent in all the modules of the (sub)process
401  // resources spent in each path and endpath
402  std::vector<PlotsPerPath> paths_;
403  std::vector<PlotsPerPath> endpaths_;
404  };
405 
406  class PlotsPerJob {
407  public:
408  PlotsPerJob(ProcessCallGraph const& job, std::vector<GroupOfModules> const& groups);
410  ProcessCallGraph const&,
411  std::vector<GroupOfModules> const&,
412  PlotRanges const& event_ranges,
413  PlotRanges const& path_ranges,
414  PlotRanges const& module_ranges,
415  unsigned int lumisections,
416  bool bymodule,
417  bool bypath,
418  bool byls,
419  bool transitions);
420  void fill(ProcessCallGraph const&, ResourcesPerJob const&, unsigned int ls);
421  void fill_run(AtomicResources const&);
422  void fill_lumi(AtomicResources const&, unsigned int lumisection);
423 
424  private:
425  // resources spent in all the modules of the job
429  // resources spent in the modules' lumi and run transitions
432  // resources spent in the highlighted modules
433  std::vector<PlotsPerElement> highlight_;
434  // resources spent in each module
435  std::vector<PlotsPerElement> modules_;
436  // resources spent in each (sub)process
437  std::vector<PlotsPerProcess> processes_;
438  };
439 
440  // keep track of the dependencies among modules
442 
443  // per-stream information
444  std::vector<ResourcesPerJob> streams_;
445 
446  // concurrent histograms and profiles
447  std::unique_ptr<PlotsPerJob> plots_;
448 
449  // per-lumi and per-run information
450  std::vector<AtomicResources> lumi_transition_; // resources spent in the modules' global and stream lumi transitions
451  std::vector<AtomicResources> run_transition_; // resources spent in the modules' global and stream run transitions
452  AtomicResources overhead_; // resources spent outside of the modules' transitions
453 
454  // summary data
455  ResourcesPerJob job_summary_; // whole event time accounting per-job
456  std::vector<ResourcesPerJob> run_summary_; // whole event time accounting per-run
457  std::mutex summary_mutex_; // synchronise access to the summary objects across different threads
458 
459  //
460  struct ThreadGuard {
461  struct specific_t {
463  ~specific_t() = default;
464 
467  std::atomic<bool> live_;
468  };
469 
470  ThreadGuard();
471  ~ThreadGuard() = default;
472 
473  static void retire_thread(void* t);
474  static std::shared_ptr<specific_t>* ptr(void* p);
475 
477  Measurement& thread();
478  void finalize();
479 
480  tbb::concurrent_vector<std::shared_ptr<specific_t>> thread_resources_;
481  pthread_key_t key_;
482  };
483 
484  //
486 
487  // atomic variables to keep track of the completion of each step, process by process
488  std::unique_ptr<std::atomic<unsigned int>[]> subprocess_event_check_;
489  std::unique_ptr<std::atomic<unsigned int>[]> subprocess_global_lumi_check_;
490  std::unique_ptr<std::atomic<unsigned int>[]> subprocess_global_run_check_;
491 
492  // retrieve the current thread's per-thread quantities
493  Measurement& thread();
494 
495  // job configuration
496  unsigned int concurrent_lumis_;
497  unsigned int concurrent_runs_;
498  unsigned int concurrent_streams_;
499  unsigned int concurrent_threads_;
500 
501  // logging configuration
502  const bool print_event_summary_; // print the time spent in each process, path and module after every event
503  const bool print_run_summary_; // print the time spent in each process, path and module for each run
504  const bool print_job_summary_; // print the time spent in each process, path and module for the whole job
505 
506  // JSON configuration
507  //const bool write_json_per_event_;
508  //const bool write_json_per_ls_;
509  //const bool write_json_per_run_;
512 
513  // dqm configuration
514  bool enable_dqm_; // non const, depends on the availability of the DQMStore
516  const bool enable_dqm_bypath_;
517  const bool enable_dqm_byls_;
520 
524  const unsigned int dqm_lumisections_range_;
526 
527  std::vector<edm::ParameterSet> highlight_module_psets_; // non-const, cleared in postBeginJob()
528  std::vector<GroupOfModules> highlight_modules_; // non-const, filled in postBeginJob()
529 
530  // log unsupported signals
531  mutable tbb::concurrent_unordered_set<std::string> unsupported_signals_; // keep track of unsupported signals received
532 
533  // print the resource usage summary for en event, a run, or the while job
534  template <typename T>
535  void printHeader(T& out, std::string const& label) const;
536 
537  template <typename T>
538  void printEventHeader(T& out, std::string const& label) const;
539 
540  template <typename T>
541  void printEventLine(T& out, Resources const& data, std::string const& label) const;
542 
543  template <typename T>
544  void printEventLine(T& out, AtomicResources const& data, std::string const& label) const;
545 
546  template <typename T>
547  void printEvent(T& out, ResourcesPerJob const&) const;
548 
549  template <typename T>
550  void printSummaryHeader(T& out, std::string const& label, bool detailed) const;
551 
552  template <typename T>
553  void printPathSummaryHeader(T& out, std::string const& label) const;
554 
555  template <typename T>
556  void printSummaryLine(T& out, Resources const& data, uint64_t events, std::string const& label) const;
557 
558  template <typename T>
559  void printSummaryLine(T& out, Resources const& data, uint64_t events, uint64_t active, std::string const& label) const;
560 
561  template <typename T>
562  void printSummaryLine(T& out, AtomicResources const& data, uint64_t events, std::string const& label) const;
563 
564  template <typename T>
565  void printSummaryLine(
566  T& out, AtomicResources const& data, uint64_t events, uint64_t active, std::string const& label) const;
567 
568  template <typename T>
570  T& out, Resources const& data, Resources const& total, uint64_t events, std::string const& label) const;
571 
572  template <typename T>
573  void printSummary(T& out, ResourcesPerJob const& data, std::string const& label) const;
574 
575  template <typename T>
576  void printTransition(T& out, AtomicResources const& data, std::string const& label) const;
577 
578  template <typename T>
579  json encodeToJSON(std::string const& type, std::string const& label, unsigned int events, T const& data) const;
580 
582 
583  void writeSummaryJSON(ResourcesPerJob const& data, std::string const& filename) const;
584 
585  // check if this is the first process being signalled
588 
589  // check if this is the lest process being signalled
590  bool isLastSubprocess(std::atomic<unsigned int>& check);
591 };
592 
593 #endif // ! FastTimerService_h
FastTimerService::ResourcesPerJob::event_measurement
Measurement event_measurement
Definition: FastTimerService.h:310
ConfigurationDescriptions.h
FastTimerService::PlotsPerPath
Definition: FastTimerService.h:352
FastTimerService::enable_dqm_bynproc_
const bool enable_dqm_bynproc_
Definition: FastTimerService.h:518
FastTimerService::preSourceEvent
void preSourceEvent(edm::StreamID)
Definition: FastTimerService.cc:1477
FastTimerService::ThreadGuard::specific_t::~specific_t
~specific_t()=default
edm::StreamID
Definition: StreamID.h:30
FastTimerService::json_filename_
const std::string json_filename_
Definition: FastTimerService.h:511
FastTimerService::ResourcesPerJob::highlight
std::vector< Resources > highlight
Definition: FastTimerService.h:311
eostools.ls
def ls(path, rec=False)
Definition: eostools.py:349
FastTimerService::AtomicResources::time_thread
std::atomic< boost::chrono::nanoseconds::rep > time_thread
Definition: FastTimerService.h:250
diffTwoXMLs.ranges
string ranges
Definition: diffTwoXMLs.py:79
dqm::impl::MonitorElement
Definition: MonitorElement.h:99
FastTimerService::ThreadGuard::ThreadGuard
ThreadGuard()
Definition: FastTimerService.cc:1669
FastTimerService::concurrent_threads_
unsigned int concurrent_threads_
Definition: FastTimerService.h:499
FastTimerService::ThreadGuard::finalize
void finalize()
Definition: FastTimerService.cc:1708
FastTimerService::ResourcesPerPath::status
bool status
Definition: FastTimerService.h:282
FastTimerService::ResourcesPerProcess
Definition: FastTimerService.h:285
FastTimerService::postStreamBeginLumi
void postStreamBeginLumi(edm::StreamContext const &)
Definition: FastTimerService.cc:1063
FastTimerService::GroupOfModules::modules
std::vector< unsigned int > modules
Definition: FastTimerService.h:214
FastTimerService::postSourceEvent
void postSourceEvent(edm::StreamID)
Definition: FastTimerService.cc:1491
FastTimerService::PlotsPerJob::modules_
std::vector< PlotsPerElement > modules_
Definition: FastTimerService.h:435
ModuleCallingContext.h
FastTimerService::ResourcesPerJob::operator+=
ResourcesPerJob & operator+=(ResourcesPerJob const &other)
Definition: FastTimerService.cc:280
FastTimerService::preBeginJob
void preBeginJob(edm::PathsAndConsumesOfModulesBase const &, edm::ProcessContext const &)
Definition: FastTimerService.cc:977
FastTimerService::ResourcesPerModule::operator+
ResourcesPerModule operator+(ResourcesPerModule const &other) const
Definition: FastTimerService.cc:195
FastTimerService::GroupOfModules::label
std::string label
Definition: FastTimerService.h:213
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
FastTimerService::printEvent
void printEvent(T &out, ResourcesPerJob const &) const
FastTimerService::preModuleStreamBeginLumi
void preModuleStreamBeginLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1651
FastTimerService::callgraph_
ProcessCallGraph callgraph_
Definition: FastTimerService.h:441
FastTimerService::ResourcesPerModule::reset
void reset() noexcept
Definition: FastTimerService.cc:182
MessageLogger.h
FastTimerService::streams_
std::vector< ResourcesPerJob > streams_
Definition: FastTimerService.h:444
FastTimerService::preModuleGlobalBeginRun
void preModuleGlobalBeginRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1597
FastTimerService::concurrent_streams_
unsigned int concurrent_streams_
Definition: FastTimerService.h:498
FastTimerService::ResourcesPerJob::ResourcesPerJob
ResourcesPerJob()=default
FastTimerService::preSourceLumi
void preSourceLumi(edm::LuminosityBlockIndex)
Definition: FastTimerService.cc:1096
FastTimerService::Measurement::measure
void measure() noexcept
Definition: FastTimerService.cc:309
FastTimerService::highlight_module_psets_
std::vector< edm::ParameterSet > highlight_module_psets_
Definition: FastTimerService.h:527
FastTimerService::ResourcesPerJob::modules
std::vector< ResourcesPerModule > modules
Definition: FastTimerService.h:312
FastTimerService::PlotsPerProcess::PlotsPerProcess
PlotsPerProcess(ProcessCallGraph::ProcessType const &)
Definition: FastTimerService.cc:641
FastTimerService::ResourcesPerProcess::endpaths
std::vector< ResourcesPerPath > endpaths
Definition: FastTimerService.h:295
FastTimerService::ResourcesPerProcess::paths
std::vector< ResourcesPerPath > paths
Definition: FastTimerService.h:294
cond::time::nanoseconds
boost::date_time::subsecond_duration< boost::posix_time::time_duration, 1000000000 > nanoseconds
Definition: TimeConversions.h:16
FastTimerService::AtomicResources::deallocated
std::atomic< uint64_t > deallocated
Definition: FastTimerService.h:253
FastTimerService::ThreadGuard::retire_thread
static void retire_thread(void *t)
Definition: FastTimerService.cc:1697
FastTimerService::ResourcesPerModule
Definition: FastTimerService.h:258
FastTimerService::AtomicResources
Definition: FastTimerService.h:237
TriggerNamesService.h
FastTimerService::postEvent
void postEvent(edm::StreamContext const &)
Definition: FastTimerService.cc:1429
FastTimerService::ResourcesPerJob::reset
void reset()
Definition: FastTimerService.cc:267
FastTimerService::postModuleEvent
void postModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1558
FastTimerService::PlotRanges::memory_range
double memory_range
Definition: FastTimerService.h:321
FastTimerService::print_job_summary_
const bool print_job_summary_
Definition: FastTimerService.h:504
edm::ProcessContext
Definition: ProcessContext.h:27
FastTimerService::preSourceConstruction
void preSourceConstruction(edm::ModuleDescription const &)
Definition: FastTimerService.cc:973
FastTimerService::PlotsPerJob::fill_run
void fill_run(AtomicResources const &)
Definition: FastTimerService.cc:757
FastTimerService::preGlobalBeginLumi
void preGlobalBeginLumi(edm::GlobalContext const &)
Definition: FastTimerService.cc:1027
FastTimerService::FastTimerService
FastTimerService(const edm::ParameterSet &, edm::ActivityRegistry &)
Definition: FastTimerService.cc:769
FastTimerService::postEndJob
void postEndJob()
Definition: FastTimerService.cc:1102
FastTimerService::overhead_
AtomicResources overhead_
Definition: FastTimerService.h:452
FastTimerService::ThreadGuard::specific_t::measurement_
Measurement measurement_
Definition: FastTimerService.h:465
FastTimerService::ResourcesPerPath::reset
void reset()
Definition: FastTimerService.cc:204
FastTimerService::concurrent_runs_
unsigned int concurrent_runs_
Definition: FastTimerService.h:497
FastTimerService::enable_dqm_bypath_
const bool enable_dqm_bypath_
Definition: FastTimerService.h:516
FastTimerService::run_summary_
std::vector< ResourcesPerJob > run_summary_
Definition: FastTimerService.h:456
FastTimerService::ThreadGuard::thread_resources_
tbb::concurrent_vector< std::shared_ptr< specific_t > > thread_resources_
Definition: FastTimerService.h:480
FastTimerService::on_scheduler_exit
void on_scheduler_exit(bool worker) final
Definition: FastTimerService.cc:1728
FastTimerService::postModuleStreamEndRun
void postModuleStreamEndRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1646
FastTimerService::enable_dqm_transitions_
const bool enable_dqm_transitions_
Definition: FastTimerService.h:519
FastTimerService::ThreadGuard
Definition: FastTimerService.h:460
FastTimerService::writeSummaryJSON
void writeSummaryJSON(ResourcesPerJob const &data, std::string const &filename) const
Definition: FastTimerService.cc:1383
FastTimerService::dqm_module_ranges_
const PlotRanges dqm_module_ranges_
Definition: FastTimerService.h:523
FastTimerService::job_summary_
ResourcesPerJob job_summary_
Definition: FastTimerService.h:455
FastTimerService::PlotsPerElement::time_thread_byls_
dqm::reco::MonitorElement * time_thread_byls_
Definition: FastTimerService.h:342
FastTimerService::ResourcesPerPath::active
Resources active
Definition: FastTimerService.h:279
FastTimerService::concurrent_lumis_
unsigned int concurrent_lumis_
Definition: FastTimerService.h:496
DQMStore.h
FastTimerService::dqm_event_ranges_
const PlotRanges dqm_event_ranges_
Definition: FastTimerService.h:521
FastTimerService::preGlobalBeginRun
void preGlobalBeginRun(edm::GlobalContext const &)
Definition: FastTimerService.cc:898
FastTimerService::isLastSubprocess
bool isLastSubprocess(std::atomic< unsigned int > &check)
Definition: FastTimerService.cc:1420
FastTimerService::AtomicResources::time_real
std::atomic< boost::chrono::nanoseconds::rep > time_real
Definition: FastTimerService.h:251
FastTimerService::PlotsPerElement::time_thread_
dqm::reco::MonitorElement * time_thread_
Definition: FastTimerService.h:341
FastTimerService::postSourceLumi
void postSourceLumi(edm::LuminosityBlockIndex)
Definition: FastTimerService.cc:1098
FastTimerService::preModuleEvent
void preModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1552
FastTimerService::unsupportedSignal
void unsupportedSignal(const std::string &signal) const
Definition: FastTimerService.cc:890
FastTimerService::preModuleEventAcquire
void preModuleEventAcquire(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1535
FastTimerService::encodeToJSON
json encodeToJSON(std::string const &type, std::string const &label, unsigned int events, T const &data) const
FastTimerService::ThreadGuard::specific_t::live_
std::atomic< bool > live_
Definition: FastTimerService.h:467
patZpeak.events
events
Definition: patZpeak.py:20
FastTimerService::subprocess_global_run_check_
std::unique_ptr< std::atomic< unsigned int >[]> subprocess_global_run_check_
Definition: FastTimerService.h:490
FastTimerService::AtomicResources::allocated
std::atomic< uint64_t > allocated
Definition: FastTimerService.h:252
FastTimerService::enable_dqm_
bool enable_dqm_
Definition: FastTimerService.h:514
FastTimerService::subprocess_global_lumi_check_
std::unique_ptr< std::atomic< unsigned int >[]> subprocess_global_lumi_check_
Definition: FastTimerService.h:489
FastTimerService::dqm_path_
std::string dqm_path_
Definition: FastTimerService.h:525
FastTimerService::printTransition
void printTransition(T &out, AtomicResources const &data, std::string const &label) const
FastTimerService::ResourcesPerModule::ResourcesPerModule
ResourcesPerModule() noexcept
Definition: FastTimerService.cc:180
FastTimerService::PlotsPerProcess::book
void book(dqm::reco::DQMStore::IBooker &, ProcessCallGraph const &, ProcessCallGraph::ProcessType const &, PlotRanges const &event_ranges, PlotRanges const &path_ranges, unsigned int lumisections, bool bypath, bool byls)
Definition: FastTimerService.cc:644
FastTimerService::PlotRanges
Definition: FastTimerService.h:318
FastTimerService::preallocate
void preallocate(edm::service::SystemBounds const &)
Definition: FastTimerService.cc:940
FastTimerService::Measurement::deallocated
uint64_t deallocated
Definition: FastTimerService.h:207
FastTimerService::preGlobalEndRun
void preGlobalEndRun(edm::GlobalContext const &)
Definition: FastTimerService.cc:1069
FastTimerService::PlotsPerPath::fill
void fill(ProcessCallGraph::PathType const &, ResourcesPerJob const &, ResourcesPerPath const &, unsigned int lumisection)
Definition: FastTimerService.cc:612
HLTPathStatus.h
edm::ModuleDescription
Definition: ModuleDescription.h:21
FastTimerService::on_scheduler_entry
void on_scheduler_entry(bool worker) final
Definition: FastTimerService.cc:1721
FastTimerService::Resources::time_thread
boost::chrono::nanoseconds time_thread
Definition: FastTimerService.h:229
FastTimerService::printSummaryHeader
void printSummaryHeader(T &out, std::string const &label, bool detailed) const
FastTimerService::GroupOfModules
Definition: FastTimerService.h:211
FastTimerService::print_run_summary_
const bool print_run_summary_
Definition: FastTimerService.h:503
FastTimerService::postGlobalBeginLumi
void postGlobalBeginLumi(edm::GlobalContext const &)
Definition: FastTimerService.cc:1038
ModuleDescription.h
ActivityRegistry.h
FastTimerService::postModuleGlobalBeginRun
void postModuleGlobalBeginRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1601
FastTimerService::ignoredSignal
void ignoredSignal(const std::string &signal) const
Definition: FastTimerService.cc:885
FastTimerService::highlight_modules_
std::vector< GroupOfModules > highlight_modules_
Definition: FastTimerService.h:528
FastTimerService::ResourcesPerModule::operator+=
ResourcesPerModule & operator+=(ResourcesPerModule const &other)
Definition: FastTimerService.cc:188
FastTimerService::postGlobalEndRun
void postGlobalEndRun(edm::GlobalContext const &)
Definition: FastTimerService.cc:1071
FastTimerService::dqm_path_ranges_
const PlotRanges dqm_path_ranges_
Definition: FastTimerService.h:522
FastTimerService::ResourcesPerProcess::operator+=
ResourcesPerProcess & operator+=(ResourcesPerProcess const &other)
Definition: FastTimerService.cc:238
ProcessCallGraph::ProcessType
Definition: ProcessCallGraph.h:78
FastTimerService::lumi_transition_
std::vector< AtomicResources > lumi_transition_
Definition: FastTimerService.h:450
FastTimerService::AtomicResources::reset
void reset()
Definition: FastTimerService.cc:137
FastTimerService::postModuleGlobalEndLumi
void postModuleGlobalEndLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1628
RPCNoise_example.check
check
Definition: RPCNoise_example.py:71
FastTimerService::Resources::time_real
boost::chrono::nanoseconds time_real
Definition: FastTimerService.h:230
FastTimerService::postModuleStreamEndLumi
void postModuleStreamEndLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1664
FastTimerService::preModuleEventPrefetching
void preModuleEventPrefetching(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1581
FastTimerService::PlotsPerJob::event_ex_
PlotsPerElement event_ex_
Definition: FastTimerService.h:427
FastTimerService::Resources
Definition: FastTimerService.h:218
edm::LuminosityBlockIndex
Definition: LuminosityBlockIndex.h:33
FastTimerService::preStreamBeginLumi
void preStreamBeginLumi(edm::StreamContext const &)
Definition: FastTimerService.cc:1061
edm::StreamContext
Definition: StreamContext.h:31
FastTimerService::postModuleGlobalEndRun
void postModuleGlobalEndRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1610
FastTimerService::ThreadGuard::thread
Measurement & thread()
Definition: FastTimerService.cc:1717
FastTimerService::ResourcesPerJob::event
Resources event
Definition: FastTimerService.h:309
FastTimerService::enable_dqm_byls_
const bool enable_dqm_byls_
Definition: FastTimerService.h:517
FastTimerService::PlotsPerJob::lumi_
PlotsPerElement lumi_
Definition: FastTimerService.h:430
FastTimerService::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: FastTimerService.cc:1733
Service.h
FastTimerService::ThreadGuard::specific_t
Definition: FastTimerService.h:461
FastTimerService::ResourcesPerPath::total
Resources total
Definition: FastTimerService.h:280
FastTimerService::preModuleGlobalBeginLumi
void preModuleGlobalBeginLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1615
FastTimerService::preStreamBeginRun
void preStreamBeginRun(edm::StreamContext const &)
Definition: FastTimerService.cc:938
FastTimerService::postModuleStreamBeginRun
void postModuleStreamBeginRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1637
FastTimerService::ResourcesPerProcess::reset
void reset()
Definition: FastTimerService.cc:230
EventID.h
FastTimerService::ResourcesPerJob::overhead
AtomicResources overhead
Definition: FastTimerService.h:308
FastTimerService::isFirstSubprocess
bool isFirstSubprocess(edm::StreamContext const &)
edm::ActivityRegistry
Definition: ActivityRegistry.h:134
FastTimerService::ResourcesPerProcess::total
Resources total
Definition: FastTimerService.h:293
FastTimerService::ThreadGuard::~ThreadGuard
~ThreadGuard()=default
FastTimerService::Resources::allocated
uint64_t allocated
Definition: FastTimerService.h:231
FastTimerService::preModuleStreamEndRun
void preModuleStreamEndRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1642
corrVsCorr.filename
filename
Definition: corrVsCorr.py:123
FastTimerService::PlotsPerElement::fill_fraction
void fill_fraction(Resources const &, Resources const &, unsigned int lumisection)
Definition: FastTimerService.cc:521
FastTimerService::ResourcesPerPath
Definition: FastTimerService.h:272
trackingPlots.other
other
Definition: trackingPlots.py:1464
FastTimerService::plots_
std::unique_ptr< PlotsPerJob > plots_
Definition: FastTimerService.h:447
FastTimerService::Measurement::allocated
uint64_t allocated
Definition: FastTimerService.h:206
FastTimerService::printSummaryLine
void printSummaryLine(T &out, Resources const &data, uint64_t events, std::string const &label) const
FastTimerService::PlotsPerElement::PlotsPerElement
PlotsPerElement()=default
FastTimerService::PlotsPerProcess::fill
void fill(ProcessCallGraph::ProcessType const &, ResourcesPerJob const &, ResourcesPerProcess const &, unsigned int ls)
Definition: FastTimerService.cc:666
FastTimerService::AtomicResources::operator+
AtomicResources operator+(AtomicResources const &other) const
Definition: FastTimerService.cc:168
FastTimerService::printEventHeader
void printEventHeader(T &out, std::string const &label) const
FastTimerService::Resources::operator+
Resources operator+(Resources const &other) const
Definition: FastTimerService.cc:111
FastTimerService::PlotsPerPath::module_deallocated_total_
dqm::reco::MonitorElement * module_deallocated_total_
Definition: FastTimerService.h:382
FastTimerService::ResourcesPerJob::processes
std::vector< ResourcesPerProcess > processes
Definition: FastTimerService.h:313
FastTimerService::unsupported_signals_
tbb::concurrent_unordered_set< std::string > unsupported_signals_
Definition: FastTimerService.h:531
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
FastTimerService::PlotsPerJob
Definition: FastTimerService.h:406
FastTimerService::PlotsPerPath::module_allocated_total_
dqm::reco::MonitorElement * module_allocated_total_
Definition: FastTimerService.h:381
FastTimerService::PlotsPerProcess
Definition: FastTimerService.h:385
FastTimerService::PlotsPerElement::time_real_
dqm::reco::MonitorElement * time_real_
Definition: FastTimerService.h:343
FastTimerService::Measurement::Measurement
Measurement() noexcept
Definition: FastTimerService.cc:307
FastTimerService::PlotsPerElement::deallocated_
dqm::reco::MonitorElement * deallocated_
Definition: FastTimerService.h:347
FastTimerService::~FastTimerService
~FastTimerService() override=default
FastTimerService::preModuleStreamEndLumi
void preModuleStreamEndLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1660
funct::true
true
Definition: Factorize.h:173
FastTimerService::ResourcesPerPath::operator+
ResourcesPerPath operator+(ResourcesPerPath const &other) const
Definition: FastTimerService.cc:219
FastTimerService::PlotsPerJob::overhead_
PlotsPerElement overhead_
Definition: FastTimerService.h:428
FastTimerService::PlotsPerJob::processes_
std::vector< PlotsPerProcess > processes_
Definition: FastTimerService.h:437
ProcessCallGraph
Definition: ProcessCallGraph.h:27
FastTimerService::postModuleEventAcquire
void postModuleEventAcquire(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1541
edm::GlobalContext
Definition: GlobalContext.h:29
edm::service::SystemBounds
Definition: SystemBounds.h:29
edm::ParameterSet
Definition: ParameterSet.h:47
FastTimerService::summary_mutex_
std::mutex summary_mutex_
Definition: FastTimerService.h:457
FastTimerService::write_json_summary_
const bool write_json_summary_
Definition: FastTimerService.h:510
GlobalContext.h
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
Timestamp.h
FastTimerService::preModuleGlobalEndRun
void preModuleGlobalEndRun(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1606
edm::PathContext
Definition: PathContext.h:24
type
type
Definition: SiPixelVCal_PayloadInspector.cc:39
FastTimerService::postModuleEventPrefetching
void postModuleEventPrefetching(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1585
LaserDQM_cfg.process
process
Definition: LaserDQM_cfg.py:3
FastTimerService::PlotsPerElement::book
void book(dqm::reco::DQMStore::IBooker &, std::string const &name, std::string const &title, PlotRanges const &ranges, unsigned int lumisections, bool byls)
Definition: FastTimerService.cc:375
FastTimerService::PlotsPerElement
Definition: FastTimerService.h:326
FastTimerService::PlotsPerProcess::endpaths_
std::vector< PlotsPerPath > endpaths_
Definition: FastTimerService.h:403
FastTimerService::dqm_lumisections_range_
const unsigned int dqm_lumisections_range_
Definition: FastTimerService.h:524
edm::HLTPathStatus
Definition: HLTPathStatus.h:33
FastTimerService::postModuleStreamBeginLumi
void postModuleStreamBeginLumi(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1655
FastTimerService::Measurement::measure_and_store
void measure_and_store(Resources &store) noexcept
Definition: FastTimerService.cc:319
FastTimerService::ResourcesPerJob::total
Resources total
Definition: FastTimerService.h:307
FastTimerService::ResourcesPerJob::operator+
ResourcesPerJob operator+(ResourcesPerJob const &other) const
Definition: FastTimerService.cc:297
mutex
static std::mutex mutex
Definition: Proxy.cc:8
FastTimerService::PlotsPerElement::allocated_
dqm::reco::MonitorElement * allocated_
Definition: FastTimerService.h:345
FastTimerService::PlotsPerElement::time_real_byls_
dqm::reco::MonitorElement * time_real_byls_
Definition: FastTimerService.h:344
FastTimerService::Measurement::measure_and_accumulate
void measure_and_accumulate(Resources &store) noexcept
Definition: FastTimerService.cc:337
FastTimerService::preStreamEndRun
void preStreamEndRun(edm::StreamContext const &)
Definition: FastTimerService.cc:1023
FastTimerService::preModuleGlobalEndLumi
void preModuleGlobalEndLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1624
FastTimerService
Definition: FastTimerService.h:54
FastTimerService::PlotsPerJob::PlotsPerJob
PlotsPerJob(ProcessCallGraph const &job, std::vector< GroupOfModules > const &groups)
Definition: FastTimerService.cc:682
FastTimerService::ThreadGuard::register_thread
bool register_thread(FastTimerService::AtomicResources &r)
Definition: FastTimerService.cc:1677
FastTimerService::PlotsPerJob::fill
void fill(ProcessCallGraph const &, ResourcesPerJob const &, unsigned int ls)
Definition: FastTimerService.cc:739
FastTimerService::PlotsPerJob::event_
PlotsPerElement event_
Definition: FastTimerService.h:426
FastTimerService::postModuleGlobalBeginLumi
void postModuleGlobalBeginLumi(edm::GlobalContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1619
FastTimerService::PlotsPerJob::run_
PlotsPerElement run_
Definition: FastTimerService.h:431
FastTimerService::Resources::Resources
Resources()
Definition: FastTimerService.cc:82
FastTimerService::PlotRanges::memory_resolution
double memory_resolution
Definition: FastTimerService.h:322
PathContext.h
FastTimerService::Measurement::time_real
boost::chrono::high_resolution_clock::time_point time_real
Definition: FastTimerService.h:205
FastTimerService::PlotsPerPath::book
void book(dqm::reco::DQMStore::IBooker &, std::string const &, ProcessCallGraph const &, ProcessCallGraph::PathType const &, PlotRanges const &ranges, unsigned int lumisections, bool byls)
Definition: FastTimerService.cc:560
FastTimerService::postStreamEndLumi
void postStreamEndLumi(edm::StreamContext const &)
Definition: FastTimerService.cc:1067
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTimerService::PlotsPerPath::total_
PlotsPerElement total_
Definition: FastTimerService.h:369
FastTimerService::ResourcesPerModule::total
Resources total
Definition: FastTimerService.h:267
FastTimerService::Resources::deallocated
uint64_t deallocated
Definition: FastTimerService.h:232
FastTimerService::printPathSummaryLine
void printPathSummaryLine(T &out, Resources const &data, Resources const &total, uint64_t events, std::string const &label) const
FastTimerService::ResourcesPerProcess::ResourcesPerProcess
ResourcesPerProcess(ProcessCallGraph::ProcessType const &process)
Definition: FastTimerService.cc:227
FastTimerService::AtomicResources::AtomicResources
AtomicResources()
Definition: FastTimerService.cc:128
FastTimerService::subprocess_event_check_
std::unique_ptr< std::atomic< unsigned int >[]> subprocess_event_check_
Definition: FastTimerService.h:488
alignCSCRings.r
r
Definition: alignCSCRings.py:93
callgraph.module
module
Definition: callgraph.py:61
FastTimerService::preEventReadFromSource
void preEventReadFromSource(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1589
FastTimerService::ThreadGuard::specific_t::resource_
AtomicResources & resource_
Definition: FastTimerService.h:466
FastTimerService::Resources::operator+=
Resources & operator+=(Resources const &other)
Definition: FastTimerService.cc:95
FastTimerService::preModuleStreamBeginRun
void preModuleStreamBeginRun(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1633
FastTimerService::thread
Measurement & thread()
Definition: FastTimerService.cc:1730
FastTimerService::PlotsPerPath::module_time_real_total_
dqm::reco::MonitorElement * module_time_real_total_
Definition: FastTimerService.h:380
FastTimerService::PlotsPerPath::module_time_thread_total_
dqm::reco::MonitorElement * module_time_thread_total_
Definition: FastTimerService.h:379
FastTimerService::Measurement
Definition: FastTimerService.h:189
json
nlohmann::json json
Definition: FastTimerService.h:26
FastTimerService::ResourcesPerJob
Definition: FastTimerService.h:298
FastTimerService::ResourcesPerPath::last
unsigned last
Definition: FastTimerService.h:281
FastTimerService::PlotsPerJob::fill_lumi
void fill_lumi(AtomicResources const &, unsigned int lumisection)
Definition: FastTimerService.cc:762
ProcessCallGraph.h
FastTimerService::guard_
ThreadGuard guard_
Definition: FastTimerService.h:485
FastTimerService::PlotsPerPath::module_counter_
dqm::reco::MonitorElement * module_counter_
Definition: FastTimerService.h:377
FastTimerService::AtomicResources::operator=
AtomicResources & operator=(AtomicResources const &other)
Definition: FastTimerService.cc:144
FastTimerService::ResourcesPerModule::events
unsigned events
Definition: FastTimerService.h:268
FastTimerService::PlotRanges::time_range
double time_range
Definition: FastTimerService.h:319
FastTimerService::ThreadGuard::key_
pthread_key_t key_
Definition: FastTimerService.h:481
FastTimerService::prePathEvent
void prePathEvent(edm::StreamContext const &, edm::PathContext const &)
Definition: FastTimerService.cc:1501
FastTimerService::postPathEvent
void postPathEvent(edm::StreamContext const &, edm::PathContext const &, edm::HLTPathStatus const &)
Definition: FastTimerService.cc:1511
edm::PathsAndConsumesOfModulesBase
Definition: PathsAndConsumesOfModulesBase.h:35
FastTimerService::postGlobalEndLumi
void postGlobalEndLumi(edm::GlobalContext const &)
Definition: FastTimerService.cc:1042
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
T
long double T
Definition: Basic3DVectorLD.h:48
FastTimerService::AtomicResources::operator+=
AtomicResources & operator+=(AtomicResources const &other)
Definition: FastTimerService.cc:152
FastTimerService::PlotsPerJob::book
void book(dqm::reco::DQMStore::IBooker &, ProcessCallGraph const &, std::vector< GroupOfModules > const &, PlotRanges const &event_ranges, PlotRanges const &path_ranges, PlotRanges const &module_ranges, unsigned int lumisections, bool bymodule, bool bypath, bool byls, bool transitions)
Definition: FastTimerService.cc:689
FastTimerService::preModuleEventDelayedGet
void preModuleEventDelayedGet(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1573
ProcessCallGraph::PathType
Definition: ProcessCallGraph.h:50
FastTimerService::PlotsPerProcess::event_
PlotsPerElement event_
Definition: FastTimerService.h:400
FastTimerService::preStreamEndLumi
void preStreamEndLumi(edm::StreamContext const &)
Definition: FastTimerService.cc:1065
FastTimerService::preGlobalEndLumi
void preGlobalEndLumi(edm::GlobalContext const &)
Definition: FastTimerService.cc:1040
FastTimerService::PlotsPerElement::allocated_byls_
dqm::reco::MonitorElement * allocated_byls_
Definition: FastTimerService.h:346
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
FastTimerService::postModuleEventDelayedGet
void postModuleEventDelayedGet(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1577
FastTimerService::postStreamBeginRun
void postStreamBeginRun(edm::StreamContext const &)
Definition: FastTimerService.cc:1021
FastTimerService::Resources::reset
void reset()
Definition: FastTimerService.cc:88
edm::RunIndex
Definition: RunIndex.h:32
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
dqm::implementation::IBooker
Definition: DQMStore.h:43
dqmMemoryStats.total
total
Definition: dqmMemoryStats.py:152
FastTimerService::printHeader
void printHeader(T &out, std::string const &label) const
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
FastTimerService::PlotsPerElement::fill
void fill(Resources const &, unsigned int lumisection)
Definition: FastTimerService.cc:469
FastTimerService::ResourcesPerProcess::operator+
ResourcesPerProcess operator+(ResourcesPerProcess const &other) const
Definition: FastTimerService.cc:250
FastTimerService::printSummary
void printSummary(T &out, ResourcesPerJob const &data, std::string const &label) const
FastTimerService::postGlobalBeginRun
void postGlobalBeginRun(edm::GlobalContext const &)
Definition: FastTimerService.cc:936
FastTimerService::postSourceRun
void postSourceRun(edm::RunIndex)
Definition: FastTimerService.cc:1094
ParameterSet.h
FastTimerService::ThreadGuard::ptr
static std::shared_ptr< specific_t > * ptr(void *p)
Definition: FastTimerService.cc:1692
StreamContext.h
FastTimerService::ThreadGuard::specific_t::specific_t
specific_t(AtomicResources &r)
Definition: FastTimerService.h:462
FastTimerService::PlotsPerProcess::paths_
std::vector< PlotsPerPath > paths_
Definition: FastTimerService.h:402
FastTimerService::printEventLine
void printEventLine(T &out, Resources const &data, std::string const &label) const
ProcessContext.h
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
FastTimerService::PlotsPerElement::deallocated_byls_
dqm::reco::MonitorElement * deallocated_byls_
Definition: FastTimerService.h:348
json
nlohmann::json json
Definition: FastTimerService.cc:21
FastTimerService::run_transition_
std::vector< AtomicResources > run_transition_
Definition: FastTimerService.h:451
FastTimerService::PlotsPerJob::highlight_
std::vector< PlotsPerElement > highlight_
Definition: FastTimerService.h:433
SystemBounds.h
FastTimerService::PlotRanges::time_resolution
double time_resolution
Definition: FastTimerService.h:320
label
const char * label
Definition: PFTauDecayModeTools.cc:11
FastTimerService::ResourcesPerJob::events
unsigned events
Definition: FastTimerService.h:314
FastTimerService::ResourcesPerModule::has_acquire
bool has_acquire
Definition: FastTimerService.h:269
FastTimerService::preSourceRun
void preSourceRun(edm::RunIndex)
Definition: FastTimerService.cc:1092
FastTimerService::print_event_summary_
const bool print_event_summary_
Definition: FastTimerService.h:502
FastTimerService::enable_dqm_bymodule_
const bool enable_dqm_bymodule_
Definition: FastTimerService.h:515
FastTimerService::postStreamEndRun
void postStreamEndRun(edm::StreamContext const &)
Definition: FastTimerService.cc:1025
FastTimerService::preEvent
void preEvent(edm::StreamContext const &)
Definition: FastTimerService.cc:1427
FastTimerService::postEventReadFromSource
void postEventReadFromSource(edm::StreamContext const &, edm::ModuleCallingContext const &)
Definition: FastTimerService.cc:1593
FastTimerService::printPathSummaryHeader
void printPathSummaryHeader(T &out, std::string const &label) const
FastTimerService::Measurement::time_thread
boost::chrono::thread_clock::time_point time_thread
Definition: FastTimerService.h:204
FastTimerService::PlotsPerPath::PlotsPerPath
PlotsPerPath()=default
FastTimerService::postBeginJob
void postBeginJob()
Definition: FastTimerService.cc:982
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
FastTimerService::ResourcesPerPath::operator+=
ResourcesPerPath & operator+=(ResourcesPerPath const &other)
Definition: FastTimerService.cc:211