Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
binomial_schedule Class Reference

#include <schedule.hpp>

Inheritance diagram for binomial_schedule:
Inheritance graph
[legend]
Collaboration diagram for binomial_schedule:
Collaboration graph
[legend]

Public Member Functions

 binomial_schedule (uint32_t members, uint32_t index)
 
vector< uint32_t > get_connections () const
 
optional< block_transferget_outgoing_transfer (size_t num_blocks, size_t send_step) const
 
optional< block_transferget_incoming_transfer (size_t num_blocks, size_t receive_step) const
 
optional< block_transferget_first_block (size_t num_blocks) const
 
size_t get_total_steps (size_t num_blocks) const
 
- Public Member Functions inherited from schedule
 schedule (uint32_t members, uint32_t index)
 
virtual ~schedule ()=default
 

Static Public Member Functions

static optional< block_transferget_vertex_outgoing_transfer (uint32_t vertex, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 
static optional< block_transferget_vertex_incoming_transfer (uint32_t vertex, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 
static optional< block_transferget_outgoing_transfer (uint32_t node, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 
static optional< block_transferget_incoming_transfer (uint32_t node, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 
static optional< size_t > get_intravertex_block (uint32_t vertex, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 
static uint32_t get_intervertex_receiver (uint32_t vertex, size_t step, uint32_t num_members, unsigned int log2_num_members, size_t num_blocks, size_t total_steps)
 

Private Member Functions

optional< block_transferget_vertex_outgoing_transfer (size_t send_step)
 
optional< block_transferget_vertex_incoming_transfer (size_t receive_step)
 

Private Attributes

const unsigned int log2_num_members
 

Additional Inherited Members

- Protected Attributes inherited from schedule
const uint32_t num_members = 0
 
const uint32_t member_index = 0
 

Detailed Description

Definition at line 64 of file schedule.hpp.

Constructor & Destructor Documentation

◆ binomial_schedule()

binomial_schedule::binomial_schedule ( uint32_t  members,
uint32_t  index 
)
inline

Definition at line 73 of file schedule.hpp.

Member Function Documentation

◆ get_connections()

vector< uint32_t > binomial_schedule::get_connections ( ) const
virtual

Implements schedule.

Definition at line 140 of file schedule.cpp.

◆ get_first_block()

optional< schedule::block_transfer > binomial_schedule::get_first_block ( size_t  num_blocks) const
virtual

Implements schedule.

Definition at line 476 of file schedule.cpp.

◆ get_incoming_transfer() [1/2]

optional< schedule::block_transfer > binomial_schedule::get_incoming_transfer ( uint32_t  node,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 306 of file schedule.cpp.

◆ get_incoming_transfer() [2/2]

optional< schedule::block_transfer > binomial_schedule::get_incoming_transfer ( size_t  num_blocks,
size_t  receive_step 
) const
virtual

Implements schedule.

Definition at line 470 of file schedule.cpp.

◆ get_intervertex_receiver()

uint32_t binomial_schedule::get_intervertex_receiver ( uint32_t  vertex,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 380 of file schedule.cpp.

◆ get_intravertex_block()

optional< size_t > binomial_schedule::get_intravertex_block ( uint32_t  vertex,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 411 of file schedule.cpp.

◆ get_outgoing_transfer() [1/2]

optional< schedule::block_transfer > binomial_schedule::get_outgoing_transfer ( uint32_t  node,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 234 of file schedule.cpp.

◆ get_outgoing_transfer() [2/2]

optional< schedule::block_transfer > binomial_schedule::get_outgoing_transfer ( size_t  num_blocks,
size_t  send_step 
) const
virtual

Implements schedule.

Definition at line 465 of file schedule.cpp.

◆ get_total_steps()

size_t binomial_schedule::get_total_steps ( size_t  num_blocks) const
virtual

Implements schedule.

Definition at line 164 of file schedule.cpp.

◆ get_vertex_incoming_transfer() [1/2]

optional<block_transfer> binomial_schedule::get_vertex_incoming_transfer ( size_t  receive_step)
private

◆ get_vertex_incoming_transfer() [2/2]

optional< schedule::block_transfer > binomial_schedule::get_vertex_incoming_transfer ( uint32_t  vertex,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 223 of file schedule.cpp.

◆ get_vertex_outgoing_transfer() [1/2]

optional<block_transfer> binomial_schedule::get_vertex_outgoing_transfer ( size_t  send_step)
private

◆ get_vertex_outgoing_transfer() [2/2]

optional< schedule::block_transfer > binomial_schedule::get_vertex_outgoing_transfer ( uint32_t  vertex,
size_t  step,
uint32_t  num_members,
unsigned int  log2_num_members,
size_t  num_blocks,
size_t  total_steps 
)
static

Definition at line 170 of file schedule.cpp.

Member Data Documentation

◆ log2_num_members

const unsigned int binomial_schedule::log2_num_members
private

Definition at line 67 of file schedule.hpp.


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