12#ifndef SST_CORE_PROFILE_SYNCPROFILETOOL_H
13#define SST_CORE_PROFILE_SYNCPROFILETOOL_H
15#include "sst/core/eli/elementinfo.h"
16#include "sst/core/sst_types.h"
17#include "sst/core/ssthandler.h"
18#include "sst/core/warnmacros.h"
34 SST_ELI_DOCUMENT_PARAMS(
41 virtual void syncManagerStart() {}
42 virtual void syncManagerEnd() {}
54 SST_ELI_REGISTER_PROFILETOOL(
59 SST_ELI_ELEMENT_VERSION(0, 1, 0),
60 "Profiler that will count calls to sync"
67 void syncManagerStart()
override;
69 void outputData(FILE* fp)
override;
72 uint64_t syncmanager_count = 0;
87 void syncManagerStart()
override { start_time_ = T::now(); }
89 void syncManagerEnd()
override
91 auto total_time = T::now() - start_time_;
92 syncmanager_time += std::chrono::duration_cast<std::chrono::nanoseconds>(total_time).count();
96 void outputData(FILE* fp)
override;
99 uint64_t syncmanager_time = 0;
100 uint64_t syncmanager_count = 0;
102 typename T::time_point start_time_;
Parameter store.
Definition: params.h:56