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)