SST 16.0.0
Structural Simulation Toolkit
SST::RankSync Class Referenceabstract
Inheritance diagram for SST::RankSync:
SST::EmptyRankSync SST::RankSyncParallelSkip SST::RankSyncSerialSkip

Public Member Functions

 RankSync (RankInfo num_ranks)
virtual ActivityQueueregisterLink (const RankInfo &to_rank, const RankInfo &from_rank, Link *link)=0
 Register a Link which this Sync Object is responsible for.
void exchangeLinkInfo (uint32_t my_rank)
SimTime_t findSyncInterval (uint32_t my_rank)
virtual void execute (int thread)=0
virtual void exchangeLinkUntimedData (int thread, std::atomic< int > &msg_count)=0
virtual void finalizeLinkConfigurations ()=0
virtual void prepareForComplete ()=0
virtual void setSignals (int end, int usr, int alrm)=0
 Set signals to exchange during sync.
virtual bool getSignals (int &end, int &usr, int &alrm)=0
 Return exchanged signals after sync.
virtual void setShutdownFlags (bool enter_shutdown, Simulation::ShutdownMode_t shutdown_mode)=0
 Set interactive flags to exchange during sync.
virtual void setCkptFlag (bool generate_ckpt)=0
virtual void setFlags (bool enter_interactive, bool enter_shutdown, Simulation::ShutdownMode_t shutdown_mode)=0
virtual void getShutdownFlags (bool &enter_shutdown, Simulation::ShutdownMode_t &shutdown_mode)=0
 Return exchanged interactive flags after sync.
virtual void getCkptFlag (bool &generate_ckpt)=0
virtual void getFlags (bool &enter_interactive, bool &enter_shutdown, Simulation::ShutdownMode_t &shutdown_mode)=0
virtual void clearFlags ()=0
 Clear interactive flags before next run.
virtual SimTime_t getNextSyncTime ()
virtual void setRestartTime (SimTime_t time)
void setMaxPeriod (SimTime_t period)
SimTime_t getMaxPeriod ()
virtual uint64_t getDataSize () const =0
virtual void setProfileToolList (Profile::SyncProfileToolList *UNUSED(profile_list))

Protected Member Functions

void finalizeConfiguration (Link *link)
void prepareForCompleteInt (Link *link)
void sendUntimedData_sync (Link *link, Event *data)
void setLinkDeliveryInfo (Link *link, uintptr_t info)
LinkgetDeliveryLink (Event *ev)

Protected Attributes

SimTime_t nextSyncTime
SimTime_t max_period
const RankInfo num_ranks_
std::vector< std::vector< std::pair< uint64_t, uintptr_t > > > link_maps
 This uses uint64_t because it is used for two different types of data at different times:

Member Function Documentation

◆ clearFlags()

virtual void SST::RankSync::clearFlags ( )
pure virtual

Clear interactive flags before next run.

Implemented in SST::EmptyRankSync, SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

◆ exchangeLinkUntimedData()

virtual void SST::RankSync::exchangeLinkUntimedData ( int thread,
std::atomic< int > & msg_count )
pure virtual

◆ finalizeLinkConfigurations()

virtual void SST::RankSync::finalizeLinkConfigurations ( )
pure virtual

◆ getShutdownFlags()

virtual void SST::RankSync::getShutdownFlags ( bool & enter_shutdown,
Simulation::ShutdownMode_t & shutdown_mode )
pure virtual

Return exchanged interactive flags after sync.

Implemented in SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

◆ getSignals()

virtual bool SST::RankSync::getSignals ( int & end,
int & usr,
int & alrm )
pure virtual

Return exchanged signals after sync.

Implemented in SST::EmptyRankSync, SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

◆ prepareForComplete()

virtual void SST::RankSync::prepareForComplete ( )
pure virtual

◆ registerLink()

virtual ActivityQueue * SST::RankSync::registerLink ( const RankInfo & to_rank,
const RankInfo & from_rank,
Link * link )
pure virtual

Register a Link which this Sync Object is responsible for.

Implemented in SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

◆ setShutdownFlags()

virtual void SST::RankSync::setShutdownFlags ( bool enter_shutdown,
Simulation::ShutdownMode_t shutdown_mode )
pure virtual

Set interactive flags to exchange during sync.

Implemented in SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

◆ setSignals()

virtual void SST::RankSync::setSignals ( int end,
int usr,
int alrm )
pure virtual

Set signals to exchange during sync.

Implemented in SST::RankSyncParallelSkip, and SST::RankSyncSerialSkip.

Field Documentation

◆ link_maps

std::vector<std::vector<std::pair<uint64_t, uintptr_t> > > SST::RankSync::link_maps
protected

This uses uint64_t because it is used for two different types of data at different times:

1 - LinkId_t when doing the Link pointer exchange

2 - SimTime_t when doing the Sync interval optimization

In both cases, the uintptr_t is a pointer to a Link

Referenced by SST::RankSyncParallelSkip::registerLink(), and SST::RankSyncSerialSkip::registerLink().


The documentation for this class was generated from the following files:
  • src/sst/core/sync/syncManager.h
  • src/sst/core/sync/syncManager.cc