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