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