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" }
55 SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(
58 SST_ELI_DOCUMENT_PARAMS(
59 {
"commFreq",
"There is a 1/commFreq chance each clock cycle of sending an event to a neighbor", NULL}
62 SST_ELI_DOCUMENT_STATISTICS(
63 {
"S",
"events sent on S link",
"counts", 1 }
66 SST_ELI_DOCUMENT_PORTS(
67 {
"Slink",
"Link to the coreTestComponent to the South", {
"coreTestComponent.coreTestComponentEvent",
"" } }
78 SST_ELI_REGISTER_COMPONENT(
82 SST_ELI_ELEMENT_VERSION(1,0,0),
83 "CoreTest Test Component",
84 COMPONENT_CATEGORY_PROCESSOR
87 SST_ELI_DOCUMENT_PARAMS(
88 {
"commSize",
"Size of communication to send.",
"16"}
91 SST_ELI_DOCUMENT_STATISTICS(
92 {
"E",
"events sent on E link",
"counts", 1 },
93 {
"W",
"events sent on W link",
"counts", 1 }
96 SST_ELI_DOCUMENT_PORTS(
97 {
"Elink",
"Link to the coreTestComponent to the East", {
"coreTestComponent.coreTestComponentEvent",
"" } },
98 {
"Wlink",
"Link to the coreTestComponent to the West", {
"coreTestComponent.coreTestComponentEvent",
"" } }
102 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
109 void finish() { printf(
"Component Finished.\n"); }
117 virtual bool clockTic(SST::Cycle_t);
138 #endif // SST_CORE_CORETEST_COMPONENT_H void setup()
Called after all components have been constructed and initialization has completed, but before simulation time has begun.
Definition: coreTest_Component.h:108
Main component object for the simulation.
Definition: component.h:30
Definition: coreTest_Component.h:74
Definition: coreTest_Component.h:26
Definition: coreTest_Component.h:52
Implements a random number generator using the Marsaglia method.
Definition: marsaglia.h:40
Parameter store.
Definition: params.h:55
void finish()
Called after complete phase, but before objects are destroyed.
Definition: coreTest_Component.h:109
Base class for Events - Items sent across links to communicate between components.
Definition: event.h:34
Link between two components.
Definition: link.h:50