Go to the documentation of this file.
51 const std::vector<int>& lattice_size,
52 std::vector<int>& grid_size,
69 return Communicator_impl::is_primary_master();
88 #ifdef ENABLE_MULTI_INSTANCE
89 int Communicator::self_global()
91 return Communicator_impl::self_global();
96 int Communicator::world_id()
98 return Communicator_impl::world_id();
154 #ifdef ENABLE_MULTI_INSTANCE
155 int Communicator::sync_global()
157 return Communicator_impl::sync_global();
332 dcomplex ar = dcomplex();
347 double ar = double();
356 double ar = double();
365 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)