12#ifndef SST_CORE_CORETEST_PERF_COMPONENT_H
13#define SST_CORE_CORETEST_PERF_COMPONENT_H
15#include <sst/core/component.h>
16#include <sst/core/link.h>
17#include <sst/core/rng/marsaglia.h>
19namespace SST::CoreTestPerfComponent {
30 SST_ELI_DOCUMENT_PARAMS(
31 {
"workPerCycle",
"Count of busy work to do during a clock tick.", NULL}
34 SST_ELI_DOCUMENT_STATISTICS(
35 {
"N",
"events sent on N link",
"counts", 1 }
38 SST_ELI_DOCUMENT_PORTS(
39 {
"Nlink",
"Link to the coreTestComponent to the North", {
"coreTestComponent.coreTestComponentEvent",
"" } }
51 SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(
54 SST_ELI_DOCUMENT_PARAMS(
55 {
"commFreq",
"Approximate frequency of sending an event during a clock tick.", NULL},
58 SST_ELI_DOCUMENT_STATISTICS(
59 {
"S",
"events sent on S link",
"counts", 1 }
62 SST_ELI_DOCUMENT_PORTS(
63 {
"Slink",
"Link to the coreTestComponent to the South", {
"coreTestComponent.coreTestComponentEvent",
"" } }
66 explicit coreTestPerfComponentBase2(ComponentId_t
id) :
69 ~coreTestPerfComponentBase2() {}
72class coreTestPerfComponent :
public coreTestPerfComponentBase2
76 SST_ELI_REGISTER_COMPONENT(
77 coreTestPerfComponent,
79 "coreTestPerfComponent",
80 SST_ELI_ELEMENT_VERSION(1,0,0),
81 "CoreTest Test Perf Component",
82 COMPONENT_CATEGORY_PROCESSOR
85 SST_ELI_DOCUMENT_PARAMS(
86 {
"commSize",
"Size of communication to send.",
"16"}
89 SST_ELI_DOCUMENT_STATISTICS(
90 {
"E",
"events sent on E link",
"counts", 1 },
91 {
"W",
"events sent on W link",
"counts", 1 }
94 SST_ELI_DOCUMENT_PORTS(
95 {
"Elink",
"Link to the coreTestComponent to the East", {
"coreTestComponent.coreTestComponentEvent",
"" } },
96 {
"Wlink",
"Link to the coreTestComponent to the West", {
"coreTestComponent.coreTestComponentEvent",
"" } }
100 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
103 coreTestPerfComponent(SST::ComponentId_t
id,
SST::Params& params);
104 ~coreTestPerfComponent();
107 void finish()
override { printf(
"Perf Test Component Finished.\n"); }
115 virtual bool clockTic(SST::Cycle_t);
Main component object for the simulation.
Definition component.h:31
Definition coreTest_PerfComponent.h:49
Definition coreTest_PerfComponent.h:26
Definition coreTest_PerfComponent.h:73
void setup() override
Called after all components have been constructed and initialization has completed,...
Definition coreTest_PerfComponent.h:106
void finish() override
Called after complete phase, but before objects are destroyed.
Definition coreTest_PerfComponent.h:107
Base class for Events - Items sent across links to communicate between components.
Definition event.h:35
Link between two components.
Definition link.h:55
Parameter store.
Definition params.h:58
Implements a random number generator using the Marsaglia method.
Definition marsaglia.h:40
Forms the template defined base class for statistics gathering within SST.
Definition statbase.h:373