SST  11.1.0
StructuralSimulationToolkit
SST::SharedRegionManagerImpl Class Reference
Inheritance diagram for SST::SharedRegionManagerImpl:
SST::SharedRegionManager

Public Member Functions

virtual SharedRegiongetLocalSharedRegion (const std::string &key, size_t size, uint8_t initByte=0) override
 Create a SharedRegion that will only be shared with elements on the current rank. More...
 
virtual SharedRegiongetGlobalSharedRegion (const std::string &key, size_t size, SharedRegionMerger *merger=nullptr, uint8_t initByte=0) override
 Create a SharedRegion that will be shared with elements on the all ranks. More...
 
virtual void publishRegion (SharedRegion *) override
 
virtual bool isRegionReady (const SharedRegion *) override
 
virtual void shutdownSharedRegion (SharedRegion *) override
 
void updateState (bool finalize) override
 

Protected Member Functions

void modifyRegion (SharedRegion *sr, size_t offset, size_t length, const void *data) override
 
void * getMemory (SharedRegion *sr) override
 
const void * getConstPtr (const SharedRegion *sr) const override
 
size_t getSize (const SharedRegion *sr) const override
 

Member Function Documentation

SharedRegion * SST::SharedRegionManagerImpl::getGlobalSharedRegion ( const std::string &  key,
size_t  size,
SharedRegionMerger merger = nullptr,
uint8_t  initByte = 0 
)
overridevirtual

Create a SharedRegion that will be shared with elements on the all ranks.

The SharedRegion data will be merged across ranks before each round of calls to init().

Parameters
keyName of the SharedRegion. All elements using this name will get the same underlying data.
sizeSize of the SharedRegion. Elements can specify 0 size if they don't know the size of the region. At least one element will need to specify the size and all elements that specify a size must pass in the same size. There are many calls in SharedRegion that can't be called until the size is known.
mergerMerger to use when combining data across ranks
initByteValue to initialize all bytes in the region to
Returns
SharedRegion object to be used by the calling element to access the shared region.

Implements SST::SharedRegionManager.

References SST::Output::fatal(), SST::Simulation::getSimulation(), and SST::Simulation::getSimulationOutput().

SharedRegion * SST::SharedRegionManagerImpl::getLocalSharedRegion ( const std::string &  key,
size_t  size,
uint8_t  initByte = 0 
)
overridevirtual

Create a SharedRegion that will only be shared with elements on the current rank.

This type of SharedRegion is intended to have at least one element on each rank initialize the region.

Parameters
keyName of the SharedRegion. All elements om the rank using this name will get the same underlying data.
sizeSize of the SharedRegion. Elements can specify 0 size if they don't know the size of the region. At least one element will need to specify the size and all elements that specify a size must pass in the same size. There are many calls in SharedRegion that can't be called until the size is known.
initByteValue to initialize all bytes in the region to
Returns
SharedRegion object to be used by the calling element to access the shared region.

Implements SST::SharedRegionManager.

References SST::Output::fatal(), SST::Simulation::getSimulation(), and SST::Simulation::getSimulationOutput().


The documentation for this class was generated from the following files: