14 #ifndef COMMUNICATOR_BGNET_INCLUDED
15 #define COMMUNICATOR_BGNET_INCLUDED
43 static int init(
int *pargc,
char ***pargv);
47 static int setup(
int ninstance = 1);
52 #ifdef ENABLE_MULTI_INSTANCE
53 static bool is_primary_master();
60 #ifdef ENABLE_MULTI_INSTANCE
61 static int self_global();
62 static int world_id();
71 static int ipe(
const int dir);
73 static int npe(
const int dir);
75 static int grid_rank(
int *rank,
const int *grid_coord);
76 static int grid_coord(
int *grid_coord,
const int rank);
77 static int grid_dims(
int *grid_dims);
84 #ifdef ENABLE_MULTI_INSTANCE
85 static int sync_global();
98 static int reduce(
int count,
void *recv_buf,
void *send_buf,
99 int type,
int op,
int pattern);
101 static int broadcast(
size_t size,
void *data,
int sender);
103 static int exchange(
size_t size,
void *recv_buf,
void *send_buf,
104 int idir,
int ipm,
int tag);
106 static int send_1to1(
size_t size,
void *recv_buf,
void *send_buf,
107 int send_to,
int recv_from,
int tag);
130 #ifdef ENABLE_MULTI_INSTANCE
131 static int m_n_instance;
132 static int m_instance_id;
134 static int m_global_rank;
135 static int m_global_size;
static int send_1to1(size_t size, void *recv_buf, void *send_buf, int send_to, int recv_from, int tag)
static int broadcast(size_t size, void *data, int sender)
static int broadcast_double(int count, double *data, int sender)
static int sync()
synchronize within small world.
static int setup(int ninstance=1)
static int status()
for debug
static int broadcast_int(int count, int *data, int sender)
static bool is_primary()
info about rank
Channel class for asynchronous communication.
static int reduce(int count, void *recv_buf, void *send_buf, int type, int op, int pattern)
static int init(int *pargc, char ***pargv)
Layout class for logical organisation of parallel nodes.
static int m_comm
instead of MPI_Comm m_comm;
static int broadcast_string(int count, string &data, int sender)
for specific datatypes
Communicator_impl & operator=(const Communicator_impl &)
static double get_time()
for getting time interval using clock count.
static Channel * recv_init(int count, int idir, int ipm)
static Channel * send_init(int count, int idir, int ipm)
async communication
Communicator_impl(const Communicator_impl &)
Implementation of Communicator with BGNET library.
static int exchange(size_t size, void *recv_buf, void *send_buf, int idir, int ipm, int tag)