12 #ifndef SST_CORE_CORETEST_COMPONENT_H 13 #define SST_CORE_CORETEST_COMPONENT_H 15 #include "sst/core/component.h" 16 #include "sst/core/link.h" 17 #include "sst/core/rng/marsaglia.h" 20 namespace CoreTestComponent {
31 SST_ELI_DOCUMENT_PARAMS(
32 {
"workPerCycle",
"Count of busy work to do during a clock tick.", NULL},
33 {
"clockFrequency",
"Frequency of the clock",
"1GHz"}
36 SST_ELI_DOCUMENT_STATISTICS(
37 {
"N",
"events sent on N link",
"counts", 1 }
40 SST_ELI_DOCUMENT_PORTS(
41 {
"Nlink",
"Link to the coreTestComponent to the North", {
"coreTestComponent.coreTestComponentEvent",
"" } }
44 SST_ELI_DOCUMENT_ATTRIBUTES(
45 {
"test_element",
"true" }
58 SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(
61 SST_ELI_DOCUMENT_PARAMS(
62 {
"commFreq",
"There is a 1/commFreq chance each clock cycle of sending an event to a neighbor", NULL}
65 SST_ELI_DOCUMENT_STATISTICS(
66 {
"S",
"events sent on S link",
"counts", 1 }
69 SST_ELI_DOCUMENT_PORTS(
70 {
"Slink",
"Link to the coreTestComponent to the South", {
"coreTestComponent.coreTestComponentEvent",
"" } }
80 SST::CoreTestComponent::coreTestComponentBase::serialize_order(ser);
89 SST_ELI_REGISTER_COMPONENT(
93 SST_ELI_ELEMENT_VERSION(1,0,0),
94 "CoreTest Test Component",
95 COMPONENT_CATEGORY_PROCESSOR
98 SST_ELI_DOCUMENT_PARAMS(
99 {
"commSize",
"Size of communication to send.",
"16"}
102 SST_ELI_DOCUMENT_STATISTICS(
103 {
"E",
"events sent on E link",
"counts", 1 },
104 {
"W",
"events sent on W link",
"counts", 1 }
107 SST_ELI_DOCUMENT_PORTS(
108 {
"Elink",
"Link to the coreTestComponent to the East", {
"coreTestComponent.coreTestComponentEvent",
"" } },
109 {
"Wlink",
"Link to the coreTestComponent to the West", {
"coreTestComponent.coreTestComponentEvent",
"" } }
113 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
120 void finish()
override { printf(
"Component Finished.\n"); }
131 virtual bool clockTic(SST::Cycle_t);
152 #endif // SST_CORE_CORETEST_COMPONENT_H This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:43
Main component object for the simulation.
Definition: component.h:30
Definition: coreTest_Component.h:85
void finish() override
Called after complete phase, but before objects are destroyed.
Definition: coreTest_Component.h:120
Definition: coreTest_Component.h:26
Definition: coreTest_Component.h:55
void setup() override
Called after all components have been constructed and initialization has completed, but before simulation time has begun.
Definition: coreTest_Component.h:119
Implements a random number generator using the Marsaglia method.
Definition: marsaglia.h:40
Parameter store.
Definition: params.h:55
Base class for Events - Items sent across links to communicate between components.
Definition: event.h:34
Link between two components.
Definition: link.h:51