12 #ifndef SST_CORE_STATAPI_STATENGINE_H 13 #define SST_CORE_STATAPI_STATENGINE_H 15 #include "sst/core/clock.h" 16 #include "sst/core/factory.h" 17 #include "sst/core/oneshot.h" 18 #include "sst/core/serialization/serializable.h" 19 #include "sst/core/sst_types.h" 20 #include "sst/core/statapi/statbase.h" 21 #include "sst/core/statapi/statfieldinfo.h" 22 #include "sst/core/statapi/statgroup.h" 23 #include "sst/core/statapi/statnull.h" 24 #include "sst/core/threadsafe.h" 25 #include "sst/core/unitAlgebra.h" 28 extern int main(
int argc,
char** argv);
29 extern void finalize_statEngineConfig(
void);
33 class Simulation_impl;
35 class ConfigStatGroup;
36 class ConfigStatOutput;
39 namespace Statistics {
43 class StatisticOutput;
71 BaseComponent* comp,
const std::string& type,
const std::string& statName,
const std::string& statSubId,
75 return Factory::getFactory()->CreateWithParams<
Statistic<T>>(type, params, comp, statName, statSubId, params);
78 bool registerStatisticWithEngine(
StatisticBase* stat) {
return registerStatisticCore(stat); }
80 uint8_t statLoadLevel()
const {
return m_statLoadLevel; }
83 static const std::vector<StatisticOutput*>& getStatOutputs() {
return m_statOutputs; }
102 friend int ::main(
int argc,
char** argv);
103 friend void ::finalize_statEngineConfig(
void);
123 void finalizeInitialization();
124 void startOfSimulation();
125 void endOfSimulation();
127 void performStatisticOutputImpl(
StatisticBase* stat,
bool endOfSimFlag);
128 void performStatisticGroupOutputImpl(
StatisticGroup& group,
bool endOfSimFlag);
130 bool handleStatisticEngineClockEvent(Cycle_t CycleNum, SimTime_t timeFactor);
131 bool handleGroupClockEvent(Cycle_t CycleNum,
StatisticGroup* group);
132 void handleStatisticEngineStartTimeEvent(SimTime_t timeFactor);
133 void handleStatisticEngineStopTimeEvent(SimTime_t timeFactor);
135 const std::string& compName,
const ComponentId_t& compId,
const std::string& statName,
136 const std::string& statSubId, StatisticFieldInfo::fieldType_t fieldType);
137 void addStatisticToCompStatMap(
StatisticBase* Stat, StatisticFieldInfo::fieldType_t fieldType);
138 void castError(
const std::string& type,
const std::string& statName,
const std::string& fieldName);
141 typedef std::vector<StatisticBase*> StatArray_t;
142 typedef std::map<SimTime_t, StatArray_t*> StatMap_t;
143 typedef std::map<ComponentId_t, StatArray_t*> CompStatMap_t;
145 StatArray_t m_EventStatisticArray;
146 StatMap_t m_PeriodicStatisticMap;
147 StatMap_t m_StartTimeMap;
148 StatMap_t m_StopTimeMap;
149 CompStatMap_t m_CompStatMap;
150 bool m_SimulationStarted;
154 uint8_t m_statLoadLevel;
156 std::vector<StatisticGroup> m_statGroups;
159 static std::vector<StatisticOutput*> m_statOutputs;
165 #endif // SST_CORE_STATAPI_STATENGINE_H Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file...
Definition: output.h:53
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:43
static void static_setup(ConfigGraph *graph)
Called to setup the StatOutputs, which are shared across all the StatEngines on the same MPI rank...
Definition: statengine.cc:40
static void stat_outputs_simulation_start()
Called to notify StatOutputs that simulation has started.
Definition: statengine.cc:49
Forms the base class for statistics output generation within the SST core.
Definition: statoutput.h:50
A Configuration Graph A graph representing Components and Links.
Definition: configGraph.h:389
void performStatisticOutput(StatisticBase *stat, bool endOfSimFlag=false)
Called by the Components and Subcomponent to perform a statistic Output.
Definition: statengine.cc:441
Forms the base class for statistics gathering within SST.
Definition: statbase.h:45
void setup()
Perform the setup() and run phases of the simulation.
Definition: simulation.cc:748
Forms the template defined base class for statistics gathering within SST.
Definition: elementinfo.h:45
Definition: serializable.h:24
Main control class for a SST Simulation.
Definition: simulation_impl.h:76
Main component object for the simulation.
Definition: baseComponent.h:62
static void stat_outputs_simulation_end()
Called to notify StatOutputs that simulation has ended.
Definition: statengine.cc:57
Parameter store.
Definition: params.h:55
Definition: configGraph.h:194
void performGlobalStatisticOutput(bool endOfSimFlag=false)
Called by the Components and Subcomponent to perform a global statistic Output.
Definition: statengine.cc:494
An SST core component that handles timing and event processing informing all registered Statistics to...
Definition: statengine.h:52
Definition: statgroup.h:29
Performs Unit math in full precision.
Definition: unitAlgebra.h:106