14 #ifndef COMMUNICATOR_MPI_INCLUDED 
   15 #define COMMUNICATOR_MPI_INCLUDED 
   36   static int init(
int *pargc, 
char ***pargv);
 
   40   static int setup(
int ninstance = 1);
 
   45 #ifdef ENABLE_MULTI_INSTANCE 
   46   static bool is_primary_master();
 
   53 #ifdef ENABLE_MULTI_INSTANCE 
   54   static int self_global();
 
   55   static int world_id();
 
   64   static int ipe(
const int dir);   
 
   65   static int npe(
const int dir);   
 
   67   static int grid_rank(
int *rank, 
const int *grid_coord);
 
   68   static int grid_coord(
int *grid_coord, 
const int rank);
 
   69   static int grid_dims(
int *grid_dims);
 
   76 #ifdef ENABLE_MULTI_INSTANCE 
   77   static int sync_global();   
 
   90     static int reduce(
int count, 
void *recv_buf, 
void *send_buf, MPI_Datatype type, MPI_Op op, 
int pattern);
 
   92     static int exchange(
size_t size, 
void *recv_buf, 
void *send_buf, 
int idir, 
int ipm, 
int tag);
 
   94     static int send_1to1(
size_t size, 
void *recv_buf, 
void *send_buf, 
int send_to, 
int recv_from, 
int tag);
 
  115 #ifdef ENABLE_MULTI_INSTANCE 
  116   static int m_n_instance;  
 
  117   static int m_instance_id; 
 
  119   static int m_global_rank;
 
  120   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 sync()
synchronize within small world. 
 
static int setup(int ninstance=1)
 
static int status()
for debug 
 
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)
 
static int m_comm
instead of MPI_Comm m_comm; 
 
static MPI_Comm & world()
retrieves current communicator. 
 
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)