12 #ifndef SST_CORE_RANKSYNCPARALLELSKIP_H
13 #define SST_CORE_RANKSYNCPARALLELSKIP_H
15 #include "sst/core/sst_types.h"
16 #include <sst/core/syncManager.h>
17 #include <sst/core/threadsafe.h>
18 #include <sst/core/warnmacros.h>
22 #ifdef SST_CONFIG_HAVE_MPI
23 DISABLE_WARN_MISSING_OVERRIDE
42 void execute(
int thread)
override;
49 SimTime_t getNextSyncTime()
override {
return myNextSyncTime; }
51 uint64_t getDataSize()
const override;
55 static SimTime_t myNextSyncTime;
58 void exchange_master(
int thread);
59 void exchange_slave(
int thread);
61 struct comm_send_pair {
68 struct comm_recv_pair {
70 uint32_t local_thread;
72 std::vector<Activity*> activity_vec;
75 #ifdef SST_CONFIG_HAVE_MPI
81 typedef std::map<RankInfo, comm_send_pair > comm_send_map_t;
82 typedef std::map<RankInfo, comm_recv_pair > comm_recv_map_t;
83 typedef std::map<LinkId_t, Link*> link_map_t;
86 comm_send_map_t comm_send_map;
87 comm_recv_map_t comm_recv_map;
91 double deserializeTime;
96 std::atomic<int32_t> remaining_deser;
102 void deserializeMessage(comm_recv_pair* msg);
113 #endif // SST_CORE_RANKSYNCPARALLELSKIP_H
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:25
Definition: syncManager.h:33
Definition: rankSyncParallelSkip.h:33
void finalizeLinkConfigurations() override
Finish link configuration.
Definition: rankSyncParallelSkip.cc:120
Definition: rankInfo.h:21
ActivityQueue * registerLink(const RankInfo &to_rank, const RankInfo &from_rank, LinkId_t link_id, Link *link) override
Register a Link which this Sync Object is responsible for.
Definition: rankSyncParallelSkip.cc:84
Internal API.
Definition: syncQueue.h:31
void exchangeLinkInitData(int thread, std::atomic< int > &msg_count) override
Cause an exchange of Initialization Data to occur.
Definition: rankSyncParallelSkip.cc:399
RankSyncParallelSkip(RankInfo num_ranks, TimeConverter *minPartTC)
Create a new Sync object which fires with a specified period.
Definition: rankSyncParallelSkip.cc:41
Base Class for a queue of Activities.
Definition: activityQueue.h:22
Definition: threadsafe.h:42
Link between two components.
Definition: link.h:33