12 #include <infiniband/verbs.h> 42 void set_qp_initialized();
44 void set_qp_ready_to_receive();
46 void set_qp_ready_to_send();
52 int post_remote_send(
const uint32_t
id,
const long long int offset,
const long long int size,
const int op,
const bool completion);
73 _resources(
int r_index,
char *write_addr,
char *read_addr,
int size_w,
81 resources(
int r_index,
char *write_addr,
char *read_addr,
int size_w,
88 void post_remote_read(
const uint32_t
id,
const long long int size);
90 void post_remote_read(
const uint32_t
id,
const long long int offset,
const long long int size);
92 void post_remote_write(
const uint32_t
id,
const long long int size);
94 void post_remote_write(
const uint32_t
id,
const long long int offset,
long long int size);
95 void post_remote_write_with_completion(
const uint32_t
id,
const long long int size);
97 void post_remote_write_with_completion(
const uint32_t
id,
const long long int offset,
const long long int size);
101 int post_receive(
const uint32_t
id,
const long long int offset,
const long long int size);
106 void post_two_sided_send(
const uint32_t
id,
const long long int size);
108 void post_two_sided_send(
const uint32_t
id,
const long long int offset,
long long int size);
109 void post_two_sided_send_with_completion(
const uint32_t
id,
const long long int size);
111 void post_two_sided_send_with_completion(
const uint32_t
id,
const long long int offset,
const long long int size);
112 void post_two_sided_receive(
const uint32_t
id,
const long long int size);
113 void post_two_sided_receive(
const uint32_t
id,
const long long int offset,
const long long int size);
116 bool add_node(uint32_t new_id,
const std::string new_ip_addr);
123 bool sync(uint32_t r_index);
struct ibv_mr * read_mr
Memory Region handle for the read buffer.
uint32_t qp_num
Queue Pair number.
bool add_node(uint32_t new_id, const std::pair< ip_addr_t, uint16_t > &new_ip_addr_and_port)
Adds a new node to the SST TPC connections set.
void shutdown_polling_thread()
Shutdown the polling thread.
A public-facing version of the internal _resources class that extends it with more convenient functio...
std::pair< uint32_t, std::pair< int, int > > verbs_poll_completion()
Polls for completion of a single posted remote write.
bool remove_node(uint32_t node_id)
Removes a node from the SST TCP connections set.
int remote_index
Index of the remote node.
void verbs_initialize(const std::map< uint32_t, std::string > &ip_addrs, uint32_t node_rank)
Initializes the global verbs resources.
bool sync(uint32_t r_id)
Blocks the current thread until both this node and a remote node reach this function, which exchanges some trivial data over a TCP connection.
uint64_t addr
Buffer address.
struct ibv_mr * write_mr
Memory Region handle for the write buffer.
struct ibv_qp * qp
Handle for the IB Verbs Queue Pair object.
void verbs_destroy()
Destroys the global verbs resources.
uint16_t lid
LID of the InfiniBand port.
A public-facing version of the internal _resources class that extends it with functions that support ...
Represents the set of RDMA resources needed to maintain a two-way connection to a single remote node...
Structure to exchange the data needed to connect the Queue Pairs.
struct sst::verbs_sender_ctxt __attribute__