Derecho  0.9
Distributed systems toolkit for RDMA
Classes | Macros | Functions | Variables
experiment.cpp File Reference
#include <derecho/rdmc/rdmc.hpp>
#include <derecho/rdmc/detail/schedule.hpp>
#include <derecho/rdmc/detail/util.hpp>
#include <derecho/rdmc/detail/lf_helper.hpp>
#include <algorithm>
#include <atomic>
#include <cassert>
#include <chrono>
#include <cmath>
#include <condition_variable>
#include <cstdlib>
#include <cstring>
#include <memory>
#include <mutex>
#include <set>
#include <string>
#include <thread>
#include <vector>
Include dependency graph for experiment.cpp:

Go to the source code of this file.

Classes

struct  stat< T >
 
struct  send_stats
 

Macros

#define ANSI_COLOR_RED   "\x1b[31m"
 
#define ANSI_COLOR_GREEN   "\x1b[32m"
 
#define ANSI_COLOR_YELLOW   "\x1b[33m"
 
#define ANSI_COLOR_BLUE   "\x1b[34m"
 
#define ANSI_COLOR_MAGENTA   "\x1b[35m"
 
#define ANSI_COLOR_CYAN   "\x1b[36m"
 
#define ANSI_COLOR_RESET   "\x1b[0m"
 

Functions

send_stats measure_partially_concurrent_multicast (size_t size, size_t block_size, uint32_t group_size, uint32_t num_senders, size_t iterations, rdmc::send_algorithm type=rdmc::BINOMIAL_SEND, bool use_cv=true)
 
send_stats measure_multicast (size_t size, size_t block_size, uint32_t group_size, size_t iterations, rdmc::send_algorithm type=rdmc::BINOMIAL_SEND, bool use_cv=true)
 
void blocksize_v_bandwidth (uint16_t gsize)
 
void compare_send_types ()
 
void bandwidth_group_size ()
 
void concurrent_bandwidth_group_size ()
 
void active_senders (bool interrupts=false, bool labels=true)
 
void latency_group_size ()
 
void large_send ()
 
void concurrent_send ()
 
void test_cross_channel ()
 
void test_create_group_failure ()
 
void test_pattern ()
 
int main (int argc, char *argv[])
 

Variables

uint32_t node_rank
 
uint32_t num_nodes
 
unique_ptr< rdmc::barrier_groupuniversal_barrier_group
 
uint16_t next_group_number
 

Class Documentation

◆ stat

struct stat

template<class T>
struct stat< T >

Definition at line 29 of file experiment.cpp.

Collaboration diagram for stat< T >:
Class Members
T mean
T stddev

◆ send_stats

struct send_stats

Definition at line 34 of file experiment.cpp.

Collaboration diagram for send_stats:
Class Members
stat< double > bandwidth
size_t block_size
stat< double > cpu_usage
size_t group_size
size_t iterations
size_t size
stat< double > time

Macro Definition Documentation

◆ ANSI_COLOR_BLUE

#define ANSI_COLOR_BLUE   "\x1b[34m"

Definition at line 574 of file experiment.cpp.

◆ ANSI_COLOR_CYAN

#define ANSI_COLOR_CYAN   "\x1b[36m"

Definition at line 576 of file experiment.cpp.

◆ ANSI_COLOR_GREEN

#define ANSI_COLOR_GREEN   "\x1b[32m"

Definition at line 572 of file experiment.cpp.

◆ ANSI_COLOR_MAGENTA

#define ANSI_COLOR_MAGENTA   "\x1b[35m"

Definition at line 575 of file experiment.cpp.

◆ ANSI_COLOR_RED

#define ANSI_COLOR_RED   "\x1b[31m"

Definition at line 571 of file experiment.cpp.

◆ ANSI_COLOR_RESET

#define ANSI_COLOR_RESET   "\x1b[0m"

Definition at line 577 of file experiment.cpp.

◆ ANSI_COLOR_YELLOW

#define ANSI_COLOR_YELLOW   "\x1b[33m"

Definition at line 573 of file experiment.cpp.

Function Documentation

◆ active_senders()

void active_senders ( bool  interrupts = false,
bool  labels = true 
)

Definition at line 346 of file experiment.cpp.

◆ bandwidth_group_size()

void bandwidth_group_size ( )

Definition at line 291 of file experiment.cpp.

◆ blocksize_v_bandwidth()

void blocksize_v_bandwidth ( uint16_t  gsize)

Definition at line 169 of file experiment.cpp.

◆ compare_send_types()

void compare_send_types ( )

Definition at line 225 of file experiment.cpp.

◆ concurrent_bandwidth_group_size()

void concurrent_bandwidth_group_size ( )

Definition at line 318 of file experiment.cpp.

◆ concurrent_send()

void concurrent_send ( )

Definition at line 459 of file experiment.cpp.

◆ large_send()

void large_send ( )

Definition at line 447 of file experiment.cpp.

◆ latency_group_size()

void latency_group_size ( )

Definition at line 394 of file experiment.cpp.

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 675 of file experiment.cpp.

◆ measure_multicast()

send_stats measure_multicast ( size_t  size,
size_t  block_size,
uint32_t  group_size,
size_t  iterations,
rdmc::send_algorithm  type = rdmc::BINOMIAL_SEND,
bool  use_cv = true 
)

Definition at line 161 of file experiment.cpp.

◆ measure_partially_concurrent_multicast()

send_stats measure_partially_concurrent_multicast ( size_t  size,
size_t  block_size,
uint32_t  group_size,
uint32_t  num_senders,
size_t  iterations,
rdmc::send_algorithm  type = rdmc::BINOMIAL_SEND,
bool  use_cv = true 
)

Definition at line 51 of file experiment.cpp.

◆ test_create_group_failure()

void test_create_group_failure ( )

Definition at line 535 of file experiment.cpp.

◆ test_cross_channel()

void test_cross_channel ( )

Definition at line 478 of file experiment.cpp.

◆ test_pattern()

void test_pattern ( )

Definition at line 578 of file experiment.cpp.

Variable Documentation

◆ next_group_number

uint16_t next_group_number

Definition at line 49 of file experiment.cpp.

◆ node_rank

uint32_t node_rank

Definition at line 45 of file experiment.cpp.

◆ num_nodes

uint32_t num_nodes

Definition at line 46 of file experiment.cpp.

◆ universal_barrier_group

unique_ptr<rdmc::barrier_group> universal_barrier_group

Definition at line 48 of file experiment.cpp.