12 #ifndef SST_CORE_CORETEST_COMPONENT_EXT_H 13 #define SST_CORE_CORETEST_COMPONENT_EXT_H 15 #include "sst/core/component.h" 16 #include "sst/core/componentExtension.h" 17 #include "sst/core/link.h" 18 #include "sst/core/rng/marsaglia.h" 61 SST::ComponentId_t
id, int64_t comm_freq, std::string clk, int64_t work_per_cycle, int64_t comm_size);
64 int32_t generateNext();
75 bool clockTic(SST::Cycle_t);
89 SST_ELI_REGISTER_COMPONENT(
92 "coreTestComponentExtension",
93 SST_ELI_ELEMENT_VERSION(1,0,0),
94 "CoreTest Test Component for ComponentExtensions",
95 COMPONENT_CATEGORY_PROCESSOR
98 SST_ELI_DOCUMENT_PARAMS(
99 {
"workPerCycle",
"Count of busy work to do during a clock tick.", NULL},
100 {
"clockFrequency",
"Frequency of the clock",
"1GHz"},
101 {
"commFreq",
"There is a 1/commFreq chance each clock cycle of sending an event to a neighbor", NULL},
102 {
"commSize",
"Size of communication to send.",
"16"}
105 SST_ELI_DOCUMENT_STATISTICS(
106 {
"N",
"events sent on N link",
"counts", 1 },
107 {
"S",
"events sent on S link",
"counts", 1 },
108 {
"E",
"events sent on E link",
"counts", 1 },
109 {
"W",
"events sent on W link",
"counts", 1 }
112 SST_ELI_DOCUMENT_PORTS(
113 {
"Nlink",
"Link to the coreTestComponentExtension to the North", {
"coreTestComponent.coreTestComponentEvent",
"" } },
114 {
"Slink",
"Link to the coreTestComponentExtension to the South", {
"coreTestComponent.coreTestComponentEvent",
"" } },
115 {
"Elink",
"Link to the coreTestComponentExtension to the East", {
"coreTestComponent.coreTestComponentEvent",
"" } },
116 {
"Wlink",
"Link to the coreTestComponentExtension to the West", {
"coreTestComponent.coreTestComponentEvent",
"" } }
119 SST_ELI_DOCUMENT_ATTRIBUTES(
120 {
"test_element",
"true" }
124 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
127 SST_ELI_IS_CHECKPOINTABLE()
133 void finish()
override { printf(
"Component Finished.\n"); }
149 #endif // SST_CORE_CORETEST_COMPONENT_EXT_H Definition: coreTest_Component.h:22
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:42
Main component object for the simulation.
Definition: component.h:30
ComponentExtension is a class that can be loaded using loadComponentExtension<T>(...).
Definition: componentExtension.h:28
void setup() override
Called after all components have been constructed and initialization has completed, but before simulation time has begun.
Definition: coreTest_ComponentExtension.h:132
Definition: coreTest_ComponentExtension.h:57
Definition: coreTest_ComponentExtension.h:85
Implements a random number generator using the Marsaglia method.
Definition: marsaglia.h:40
Parameter store.
Definition: params.h:63
void finish() override
Called after complete phase, but before objects are destroyed.
Definition: coreTest_ComponentExtension.h:133
Base class for Events - Items sent across links to communicate between components.
Definition: event.h:40
Link between two components.
Definition: link.h:56
Definition: coreTest_ComponentExtension.h:27