36 static const uint8_t num_request_types = 3;
47 std::vector<std::unique_ptr<resources>>
res_vec;
51 std::atomic<bool> thread_shutdown{
false};
53 uint64_t getOffsetSeqNum(
REQUEST_TYPE type, uint64_t seq_num);
54 uint64_t getOffsetBuf(
REQUEST_TYPE type, uint64_t seq_num);
55 uint32_t window_sizes[num_request_types];
56 uint32_t max_msg_sizes[num_request_types];
57 uint64_t offsets[num_request_types];
58 char* probe(uint32_t rank);
61 uint32_t num_rdma_writes = 0;
62 void check_failures_loop();
68 void shutdown_failures_thread();
69 uint32_t get_node_rank(uint32_t node_id);
70 uint64_t get_max_p2p_reply_size();
71 std::optional<std::pair<uint32_t, char*>> probe_all();
72 void update_incoming_seq_num();
73 char* get_sendbuffer_ptr(uint32_t rank,
REQUEST_TYPE type);
74 void send(uint32_t rank);
std::map< REQUEST_TYPE, std::vector< std::atomic< uint64_t > > > outgoing_seq_nums_map
const std::uint32_t num_members
std::thread timeout_thread
bool send(uint16_t group_number, std::shared_ptr< rdma::memory_region > mr, size_t offset, size_t length) __attribute__((warn_unused_result))
std::vector< REQUEST_TYPE > prev_mode
const std::vector< uint32_t > members
std::vector< std::unique_ptr< volatile char[]> > incoming_p2p_buffers
std::vector< std::unique_ptr< resources > > res_vec
std::map< uint32_t, uint32_t > node_id_to_rank
const uint32_t my_node_id
std::vector< std::unique_ptr< volatile char[]> > outgoing_p2p_buffers
uint64_t max_p2p_reply_size
uint64_t max_rpc_reply_size
std::vector< uint32_t > members
uint64_t max_p2p_request_size