14 #ifndef COMMUNICATOR_BGNET_INCLUDED 
   15 #define COMMUNICATOR_BGNET_INCLUDED 
   40   static int init(
int *pargc, 
char ***pargv);
 
   44   static int setup(
int ninstance = 1);
 
   49 #ifdef ENABLE_MULTI_INSTANCE 
   50   static bool is_primary_master();
 
   56 #ifdef ENABLE_MULTI_INSTANCE 
   57   static int self_global();
 
   58   static int world_id();
 
   68 #ifdef ENABLE_MULTI_INSTANCE 
   69   static int sync_global();  
 
   81     static int reduce(
int count, 
void *recv_buf, 
void *send_buf,
 
   82                       int type, 
int op, 
int pattern);
 
   84     static int broadcast(
size_t size, 
void *data, 
int sender);
 
   86     static int exchange(
size_t size, 
void *recv_buf, 
void *send_buf,
 
   87                         int idir, 
int ipm, 
int tag);
 
   89     static int send_1to1(
size_t size, 
void *recv_buf, 
void *send_buf,
 
   90                          int send_to, 
int recv_from, 
int tag);
 
  112 #ifdef ENABLE_MULTI_INSTANCE 
  113   static int m_n_instance;   
 
  114   static int m_instance_id;  
 
  116   static int m_global_rank;
 
  117   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)