Classes | |
class | barrier_group |
class | connection_broken |
class | exception |
class | group_busy |
class | invalid_args |
class | nonroot_sender |
struct | receive_destination |
Typedefs | |
typedef std::function< receive_destination(size_t size)> | incoming_message_callback_t |
typedef std::function< void(char *buffer, size_t size)> | completion_callback_t |
typedef std::function< void(std::optional< uint32_t > suspected_victim)> | failure_callback_t |
Enumerations | |
enum | send_algorithm { BINOMIAL_SEND = 1, CHAIN_SEND = 2, SEQUENTIAL_SEND = 3, TREE_SEND = 4 } |
Functions | |
bool | initialize (const std::map< uint32_t, std::pair< ip_addr_t, uint16_t >> &addresses, uint32_t node_rank) __attribute__((warn_unused_result)) |
void | add_address (uint32_t index, const std::pair< ip_addr_t, uint16_t > &address) |
void | shutdown () |
bool | create_group (uint16_t group_number, std::vector< uint32_t > members, size_t block_size, send_algorithm algorithm, incoming_message_callback_t incoming_receive, completion_callback_t send_callback, failure_callback_t failure_callback) __attribute__((warn_unused_result)) |
Creates a new RDMC group. More... | |
void | destroy_group (uint16_t group_number) |
bool | send (uint16_t group_number, std::shared_ptr< rdma::memory_region > mr, size_t offset, size_t length) __attribute__((warn_unused_result)) |
bool | send (uint16_t group_number, shared_ptr< memory_region > mr, size_t offset, size_t length) |
Variables | |
map< uint16_t, shared_ptr< group > > | groups |
mutex | groups_lock |
uint32_t | node_rank |
atomic< bool > | shutdown_flag |
struct rdmc::receive_destination |
typedef std::function<void(char* buffer, size_t size)> rdmc::completion_callback_t |
typedef std::function<void(std::optional<uint32_t> suspected_victim)> rdmc::failure_callback_t |
typedef std::function<receive_destination(size_t size)> rdmc::incoming_message_callback_t |
enum rdmc::send_algorithm |
void rdmc::add_address | ( | uint32_t | index, |
const std::pair< ip_addr_t, uint16_t > & | address | ||
) |
bool rdmc::create_group | ( | uint16_t | group_number, |
std::vector< uint32_t > | members, | ||
size_t | block_size, | ||
send_algorithm | algorithm, | ||
incoming_message_callback_t | incoming_receive, | ||
completion_callback_t | send_callback, | ||
failure_callback_t | failure_callback | ||
) |
Creates a new RDMC group.
group_number | The group's unique identifier. |
members | A vector of node IDs representing the members of this group. The order of this vector will be used as the rank order of the members. |
block_size | The size, in bytes, of blocks to use when sending in this group. |
algorithm | Which RDMC send algorithm to use in this group. |
incoming_receive | The function to call when there is a new incoming message in this group; it must provide a destination to receive the message into. |
send_callback | The function to call when RDMC completes receiving a message in this group |
failure_callback | The function to call when RDMC detects a failure in this group. It will be called with the suspected failed node's ID. |
bool rdmc::initialize | ( | const std::map< uint32_t, std::pair< ip_addr_t, uint16_t >> & | addresses, |
uint32_t | node_rank | ||
) |
bool rdmc::send | ( | uint16_t | group_number, |
std::shared_ptr< rdma::memory_region > | mr, | ||
size_t | offset, | ||
size_t | length | ||
) |
bool rdmc::send | ( | uint16_t | group_number, |
shared_ptr< memory_region > | mr, | ||
size_t | offset, | ||
size_t | length | ||
) |