16 #ifndef SST_CORE_CORETEST_PERF_COMPONENT_H
17 #define SST_CORE_CORETEST_PERF_COMPONENT_H
19 #include <sst/core/component.h>
20 #include <sst/core/link.h>
21 #include <sst/core/rng/marsaglia.h>
24 namespace CoreTestPerfComponent {
35 SST_ELI_DOCUMENT_PARAMS(
36 {
"workPerCycle",
"Count of busy work to do during a clock tick.", NULL}
39 SST_ELI_DOCUMENT_STATISTICS(
40 {
"N",
"events sent on N link",
"counts", 1 }
43 SST_ELI_DOCUMENT_PORTS(
44 {
"Nlink",
"Link to the coreTestComponent to the North", {
"coreTestComponent.coreTestComponentEvent",
"" } }
54 SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(
57 SST_ELI_DOCUMENT_PARAMS(
58 {
"commFreq",
"Approximate frequency of sending an event during a clock tick.", NULL},
61 SST_ELI_DOCUMENT_STATISTICS(
62 {
"S",
"events sent on S link",
"counts", 1 }
65 SST_ELI_DOCUMENT_PORTS(
66 {
"Slink",
"Link to the coreTestComponent to the South", {
"coreTestComponent.coreTestComponentEvent",
"" } }
77 SST_ELI_REGISTER_COMPONENT(
80 "coreTestPerfComponent",
81 SST_ELI_ELEMENT_VERSION(1,0,0),
82 "CoreTest Test Perf Component",
83 COMPONENT_CATEGORY_PROCESSOR
86 SST_ELI_DOCUMENT_PARAMS(
87 {
"commSize",
"Size of communication to send.",
"16"}
90 SST_ELI_DOCUMENT_STATISTICS(
91 {
"E",
"events sent on E link",
"counts", 1 },
92 {
"W",
"events sent on W link",
"counts", 1 }
95 SST_ELI_DOCUMENT_PORTS(
96 {
"Elink",
"Link to the coreTestComponent to the East", {
"coreTestComponent.coreTestComponentEvent",
"" } },
97 {
"Wlink",
"Link to the coreTestComponent to the West", {
"coreTestComponent.coreTestComponentEvent",
"" } }
101 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
108 void finish() { printf(
"Perf Test Component Finished.\n"); }
116 virtual bool clockTic(SST::Cycle_t);
137 #endif // SST_CORE_CORETEST_PERF_COMPONENT_H
Main component object for the simulation.
Definition: component.h:30
Definition: coreTest_PerfComponent.h:51
Definition: coreTest_PerfComponent.h:30
void finish()
Called after complete phase, but before objects are destroyed.
Definition: coreTest_PerfComponent.h:108
Definition: coreTest_PerfComponent.h:73
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
void setup()
Called after all components have been constructed and initialization has completed, but before simulation time has begun.
Definition: coreTest_PerfComponent.h:107
Link between two components.
Definition: link.h:32