Go to the documentation of this file.
56 const std::vector<int>& lattice_size,
57 std::vector<int>& grid_size,
74 return Communicator_impl::is_primary_master();
93 #ifdef ENABLE_MULTI_INSTANCE
94 int Communicator::self_global()
96 return Communicator_impl::self_global();
101 int Communicator::world_id()
103 return Communicator_impl::world_id();
159 #ifdef ENABLE_MULTI_INSTANCE
160 int Communicator::sync_global()
162 return Communicator_impl::sync_global();
212 int Communicator::exchange(
int count, dcomplex *recv_buf, dcomplex *send_buf,
int idir,
int ipm,
int itag)
243 int Communicator::send_1to1(
int count, dcomplex *recv_buf, dcomplex *send_buf,
int send_to,
int recv_from,
int tag)
249 int Communicator::send_1to1(
int count,
double *recv_buf,
double *send_buf,
int send_to,
int recv_from,
int tag)
337 dcomplex ar = dcomplex();
352 double ar = double();
361 double ar = double();
370 double ar = double();
static int sync()
synchronize within small world.
static int reduce(int count, void *recv_buf, void *send_buf, MPI_Datatype type, MPI_Op op, int pattern)
static double get_time()
obtain a wall-clock time.
static int reduce_max(int count, double *recv_buf, double *send_buf, int pattern=0)
find a global maximum of an array of double over the communicator. pattern specifies the dimensions t...
static int broadcast(size_t size, void *data, int sender)
static int broadcast(int count, dcomplex *data, int sender)
broadcast array of dcomplex from sender.
static int self()
rank within small world.
static int setup(int Ninstance=1)
static int size()
size of small world.
static int grid_dims(int *grid_dims)
find grid dimensions.
static int send_1to1(size_t size, void *recv_buf, void *send_buf, int send_to, int recv_from, int tag)
static int exchange(size_t size, void *recv_buf, void *send_buf, int idir, int ipm, int tag)
static int grid_coord(int *gcoord, const int rank)
find grid coordinate corresponding to rank.
static bool is_primary_master()
check if the present node is primary in global communicator.
static int ipe(const int idir)
grid coordinate along idir direction.
static int sync_usleep()
synchronize within small world. (slow but no busy wait)
static int setup(int ninstance=1)
setup communicator
static int broadcast(size_t size, void *data, int sender)
static int init(int *pargc, char ***pargv)
static int reduce_sum(int count, dcomplex *recv_buf, dcomplex *send_buf, int pattern=0)
make a global sum of an array of dcomplex over the communicator. pattern specifies the dimensions to ...
static int npe(const int dir)
logical grid extent
static void abort()
terminate communicator
static int reduce_min(int count, double *recv_buf, double *send_buf, int pattern=0)
find a global minimum of an array of double over the communicator. pattern specifies the dimensions t...
static int npe(const int idir)
grid size in idir direction.
static int send_1to1(size_t size, void *recv_buf, void *send_buf, int send_to, int recv_from, int tag)
static int grid_rank(int *rank, const int *gcoord)
find rank from grid coordinate.
static int send_1to1(int count, dcomplex *recv_buf, dcomplex *send_buf, int p_to, int p_from, int tag)
send array of dcomplex from rank p_from to rank p_to. communication distinguished by tag.
static int exchange(size_t size, void *recv_buf, void *send_buf, int idir, int ipm, int tag)
static bool is_primary()
check if the present node is primary in small communicator.
static int grid_dims(int *gdims)
find grid size.
static int finalize()
finalize communicator
static int ipe(const int dir)
logical coordinate of current proc.
static int grid_coord(int *grid_coord, const int rank)
find grid coordinate from rank number.
static int init(int *pargc, char ***pargv)
initialize communicator
static int exchange(int count, dcomplex *recv_buf, dcomplex *send_buf, int idir, int ipm, int tag)
receive array of dcomplex from upstream specified by idir and ipm, and send array to downstream.
static int grid_rank(int *rank, const int *grid_coord)
find rank number from grid coordinate.
static int broadcast_string(int count, string &data, int sender)