12 #ifndef SST_CORE_CORETEST_CHECKPOINT_H 13 #define SST_CORE_CORETEST_CHECKPOINT_H 15 #include "sst/core/component.h" 16 #include "sst/core/event.h" 17 #include "sst/core/link.h" 18 #include "sst/core/rng/distrib.h" 19 #include "sst/core/rng/rng.h" 22 namespace CoreTestCheckpoint {
39 if ( counter != 0 ) counter--;
43 uint32_t getCount() {
return counter; }
50 Event::serialize_order(ser);
61 SST_ELI_REGISTER_COMPONENT(
65 SST_ELI_ELEMENT_VERSION(1,0,0),
66 "CoreTest Test Checkpoint",
67 COMPONENT_CATEGORY_UNCATEGORIZED
70 SST_ELI_DOCUMENT_PARAMS(
71 {
"starter",
"Whether this component initiates the ping-pong",
"T"},
72 {
"count",
"Number of times to bounce the message back and forth",
"1000" },
73 {
"test_string",
"A test string",
""},
74 {
"clock_frequency",
"Frequency for clock",
"100kHz"},
75 {
"clock_duty_cycle",
"Number of cycles to keep clock on and off",
"10"},
77 {
"output_prefix",
"Prefix for output",
""},
78 {
"output_verbose",
"Verbosity for output",
"0"},
79 {
"output_frequency",
"How often, in terms of clock cycles, to generate output",
"1"},
81 {
"rng_seed_w",
"The first seed for marsaglia",
"7" },
82 {
"rng_seed_z",
"The second seed for marsaglia",
"5" },
83 {
"rng_seed",
"The seed for mersenne and xorshift",
"11" },
84 {
"dist_const",
"Constant for ConstantDistribution",
"1.5" },
85 {
"dist_discrete_probs",
"Probabilities in discrete distribution",
"[1.0]"},
86 {
"dist_exp_lambda",
"Lambda for exponentional distribution",
"1.0"},
87 {
"dist_gauss_mean",
"Mean for Gaussian distribution",
"1.0"},
88 {
"dist_gauss_stddev",
"Standard deviation for Gaussian distribution",
"0.2"},
89 {
"dist_poisson_lambda",
"Lambda for Poisson distribution",
"1.0"},
90 {
"dist_uni_bins",
"Number of proability bins for the uniform distribution",
"4"}
93 SST_ELI_DOCUMENT_PORTS(
94 {
"port_left",
"Link to another coreTestCheckpoint", {
"coreTestElement.coreTestCheckpointEvent",
"" } },
95 {
"port_right",
"Link to another coreTestCheckpoint", {
"coreTestElement.coreTestCheckpointEvent",
"" } }
98 SST_ELI_DOCUMENT_STATISTICS(
99 {
"eventcount",
"Total number of events received",
"events", 1},
100 {
"rngvals",
"Numbers from RNG",
"number", 2},
101 {
"distvals",
"Numbers from distribution",
"number", 3}
107 void init(
unsigned phase)
override;
109 void setup()
override;
111 void complete(
unsigned phase)
override;
115 void printStatus(
Output& out)
override;
126 bool handleClock(Cycle_t cycle);
135 int duty_cycle_count;
137 std::string test_string;
139 int output_frequency;
159 #endif // SST_CORE_CORETEST_CHECKPOINT_H Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file...
Definition: output.h:53
Implements the base class for random number generators for the SST core.
Definition: rng.h:29
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:43
Handlers with 1 handler defined argument to callback from caller.
Definition: ssthandler.h:210
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:27
Main component object for the simulation.
Definition: component.h:30
Definition: coreTest_Checkpoint.h:28
Definition: coreTest_Checkpoint.h:58
void setup() override
Called after all components have been constructed and initialization has completed, but before simulation time has begun.
Definition: coreTest_Checkpoint.cc:108
Parameter store.
Definition: params.h:55
void finish() override
Called after complete phase, but before objects are destroyed.
Definition: coreTest_Checkpoint.cc:122
Base class of statistical distributions in SST.
Definition: distrib.h:24
Base class for Events - Items sent across links to communicate between components.
Definition: event.h:34
void emergencyShutdown() override
Called when SIGINT or SIGTERM has been seen.
Definition: coreTest_Checkpoint.cc:201
Link between two components.
Definition: link.h:51