Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sst::P2PConnections Class Reference

#include <p2p_connections.hpp>

Collaboration diagram for sst::P2PConnections:
Collaboration graph
[legend]

Public Member Functions

 P2PConnections (const P2PParams params)
 
 P2PConnections (P2PConnections &&old_connections, const std::vector< uint32_t > new_members)
 
 ~P2PConnections ()
 
void shutdown_failures_thread ()
 
uint32_t get_node_rank (uint32_t node_id)
 
uint64_t get_max_p2p_reply_size ()
 
std::optional< std::pair< uint32_t, char * > > probe_all ()
 
void update_incoming_seq_num ()
 
char * get_sendbuffer_ptr (uint32_t rank, REQUEST_TYPE type)
 
void send (uint32_t rank)
 
void debug_print ()
 

Private Member Functions

uint64_t getOffsetSeqNum (REQUEST_TYPE type, uint64_t seq_num)
 
uint64_t getOffsetBuf (REQUEST_TYPE type, uint64_t seq_num)
 
char * probe (uint32_t rank)
 
void check_failures_loop ()
 

Private Attributes

const std::vector< uint32_t > members
 
const std::uint32_t num_members
 
const uint32_t my_node_id
 
uint32_t my_index
 
std::map< uint32_t, uint32_t > node_id_to_rank
 
std::vector< std::unique_ptr< volatile char[]> > incoming_p2p_buffers
 
std::vector< std::unique_ptr< volatile char[]> > outgoing_p2p_buffers
 
std::vector< std::unique_ptr< resources > > res_vec
 
uint64_t p2p_buf_size
 
std::map< REQUEST_TYPE, std::vector< std::atomic< uint64_t > > > incoming_seq_nums_map
 
std::map< REQUEST_TYPE, std::vector< std::atomic< uint64_t > > > outgoing_seq_nums_map
 
std::vector< REQUEST_TYPEprev_mode
 
std::atomic< bool > thread_shutdown {false}
 
std::thread timeout_thread
 
uint32_t window_sizes [num_request_types]
 
uint32_t max_msg_sizes [num_request_types]
 
uint64_t offsets [num_request_types]
 
REQUEST_TYPE last_type
 
uint32_t last_rank
 
uint32_t num_rdma_writes = 0
 

Detailed Description

Definition at line 38 of file p2p_connections.hpp.

Constructor & Destructor Documentation

◆ P2PConnections() [1/2]

sst::P2PConnections::P2PConnections ( const P2PParams  params)

Definition at line 13 of file p2p_connections.cpp.

◆ P2PConnections() [2/2]

sst::P2PConnections::P2PConnections ( P2PConnections &&  old_connections,
const std::vector< uint32_t >  new_members 
)

Definition at line 69 of file p2p_connections.cpp.

◆ ~P2PConnections()

sst::P2PConnections::~P2PConnections ( )

Definition at line 131 of file p2p_connections.cpp.

Member Function Documentation

◆ check_failures_loop()

void sst::P2PConnections::check_failures_loop ( )
private

Completion Queue poll timeout in millisec

Definition at line 227 of file p2p_connections.cpp.

◆ debug_print()

void sst::P2PConnections::debug_print ( )

Definition at line 293 of file p2p_connections.cpp.

◆ get_max_p2p_reply_size()

uint64_t sst::P2PConnections::get_max_p2p_reply_size ( )

Definition at line 146 of file p2p_connections.cpp.

◆ get_node_rank()

uint32_t sst::P2PConnections::get_node_rank ( uint32_t  node_id)

Definition at line 142 of file p2p_connections.cpp.

◆ get_sendbuffer_ptr()

char * sst::P2PConnections::get_sendbuffer_ptr ( uint32_t  rank,
REQUEST_TYPE  type 
)

Definition at line 194 of file p2p_connections.cpp.

◆ getOffsetBuf()

uint64_t sst::P2PConnections::getOffsetBuf ( REQUEST_TYPE  type,
uint64_t  seq_num 
)
private

Definition at line 155 of file p2p_connections.cpp.

◆ getOffsetSeqNum()

uint64_t sst::P2PConnections::getOffsetSeqNum ( REQUEST_TYPE  type,
uint64_t  seq_num 
)
private

Definition at line 150 of file p2p_connections.cpp.

◆ probe()

char * sst::P2PConnections::probe ( uint32_t  rank)
private

Definition at line 161 of file p2p_connections.cpp.

◆ probe_all()

std::optional< std::pair< uint32_t, char * > > sst::P2PConnections::probe_all ( )

Definition at line 179 of file p2p_connections.cpp.

◆ send()

void sst::P2PConnections::send ( uint32_t  rank)

Definition at line 207 of file p2p_connections.cpp.

◆ shutdown_failures_thread()

void sst::P2PConnections::shutdown_failures_thread ( )

Definition at line 135 of file p2p_connections.cpp.

◆ update_incoming_seq_num()

void sst::P2PConnections::update_incoming_seq_num ( )

Definition at line 174 of file p2p_connections.cpp.

Member Data Documentation

◆ incoming_p2p_buffers

std::vector<std::unique_ptr<volatile char[]> > sst::P2PConnections::incoming_p2p_buffers
private

Definition at line 45 of file p2p_connections.hpp.

◆ incoming_seq_nums_map

std::map<REQUEST_TYPE, std::vector<std::atomic<uint64_t> > > sst::P2PConnections::incoming_seq_nums_map
private

Definition at line 49 of file p2p_connections.hpp.

◆ last_rank

uint32_t sst::P2PConnections::last_rank
private

Definition at line 60 of file p2p_connections.hpp.

◆ last_type

REQUEST_TYPE sst::P2PConnections::last_type
private

Definition at line 59 of file p2p_connections.hpp.

◆ max_msg_sizes

uint32_t sst::P2PConnections::max_msg_sizes[num_request_types]
private

Definition at line 56 of file p2p_connections.hpp.

◆ members

const std::vector<uint32_t> sst::P2PConnections::members
private

Definition at line 39 of file p2p_connections.hpp.

◆ my_index

uint32_t sst::P2PConnections::my_index
private

Definition at line 42 of file p2p_connections.hpp.

◆ my_node_id

const uint32_t sst::P2PConnections::my_node_id
private

Definition at line 41 of file p2p_connections.hpp.

◆ node_id_to_rank

std::map<uint32_t, uint32_t> sst::P2PConnections::node_id_to_rank
private

Definition at line 43 of file p2p_connections.hpp.

◆ num_members

const std::uint32_t sst::P2PConnections::num_members
private

Definition at line 40 of file p2p_connections.hpp.

◆ num_rdma_writes

uint32_t sst::P2PConnections::num_rdma_writes = 0
private

Definition at line 61 of file p2p_connections.hpp.

◆ offsets

uint64_t sst::P2PConnections::offsets[num_request_types]
private

Definition at line 57 of file p2p_connections.hpp.

◆ outgoing_p2p_buffers

std::vector<std::unique_ptr<volatile char[]> > sst::P2PConnections::outgoing_p2p_buffers
private

Definition at line 46 of file p2p_connections.hpp.

◆ outgoing_seq_nums_map

std::map<REQUEST_TYPE, std::vector<std::atomic<uint64_t> > > sst::P2PConnections::outgoing_seq_nums_map
private

Definition at line 49 of file p2p_connections.hpp.

◆ p2p_buf_size

uint64_t sst::P2PConnections::p2p_buf_size
private

Definition at line 48 of file p2p_connections.hpp.

◆ prev_mode

std::vector<REQUEST_TYPE> sst::P2PConnections::prev_mode
private

Definition at line 50 of file p2p_connections.hpp.

◆ res_vec

std::vector<std::unique_ptr<resources> > sst::P2PConnections::res_vec
private

Definition at line 47 of file p2p_connections.hpp.

◆ thread_shutdown

std::atomic<bool> sst::P2PConnections::thread_shutdown {false}
private

Definition at line 51 of file p2p_connections.hpp.

◆ timeout_thread

std::thread sst::P2PConnections::timeout_thread
private

Definition at line 52 of file p2p_connections.hpp.

◆ window_sizes

uint32_t sst::P2PConnections::window_sizes[num_request_types]
private

Definition at line 55 of file p2p_connections.hpp.


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