|
Bridge++
Ver. 1.1.x
|
Communication library which wraps MPI. More...
#include <communicator.h>
Classes | |
| class | Base |
| base case More... | |
Static Public Member Functions | |
| static int | init (int *pargc, char ***pargv) |
| initialize communicator More... | |
| static int | finalize () |
| finalize communicator More... | |
| static void | abort () |
| terminate communicator More... | |
| static int | setup (int ninstance=1) |
| setup communicator More... | |
| static bool | is_primary () |
| check if the present node is primary in small communicator. More... | |
| static bool | is_primary_master () |
| check if the present node is primary in global communicator. More... | |
| static int | self () |
| rank within small world. More... | |
| static int | nodeid () |
| alternative name for self(). More... | |
| static int | size () |
| size of small world. More... | |
| static int | ipe (const int dir) |
| logical coordinate of current proc. More... | |
| static int | npe (const int dir) |
| logical grid extent More... | |
| static int | grid_rank (int *rank, const int *grid_coord) |
| find rank number from grid coordinate. More... | |
| static int | grid_coord (int *grid_coord, const int rank) |
| find grid coordinate from rank number. More... | |
| static int | grid_dims (int *grid_dims) |
| find grid dimensions. More... | |
| static int | sync () |
| synchronize within small world. More... | |
| static int | broadcast (int count, double *data, int sender) |
| broadcast array of double from sender. More... | |
| static int | broadcast (int count, int *data, int sender) |
| broadcast array of integer from sender. More... | |
| static int | broadcast (int count, string &data, int sender) |
| broadcast a string from sender. count is insignificant. More... | |
| static int | exchange (int count, double *recv_buf, double *send_buf, int idir, int ipm, int tag) |
| receive array of double from upstream specified by idir and ipm, and send array to downstream. More... | |
| static int | exchange (int count, int *recv_buf, int *send_buf, int idir, int ipm, int tag) |
| receive array of int from upstream specified by idir and ipm, and send array to downstream. More... | |
| static int | send_1to1 (int count, double *recv_buf, double *send_buf, int p_to, int p_from, int tag) |
| send array of double from rank p_from to rank p_to. communication distinguished by tag. More... | |
| static int | send_1to1 (int count, int *recv_buf, int *send_buf, int p_to, int p_from, int tag) |
| send array of int from rank p_from to rank p_to. communication distinguished by tag. More... | |
| static int | reduce_sum (int count, double *recv_buf, double *send_buf, int pattern=0) |
| make a global sum of an array of double over the communicator. pattern specifies the dimensions to be reduced. More... | |
| static int | reduce_sum (int count, int *recv_buf, int *send_buf, int pattern=0) |
| make a global sum of an array of int over the communicator. pattern specifies the dimensions to be reduced. More... | |
| 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 to be reduced. More... | |
| static int | reduce_max (int count, int *recv_buf, int *send_buf, int pattern=0) |
| find a global maximum of an array of int over the communicator. pattern specifies the dimensions to be reduced. More... | |
| 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 to be reduced. More... | |
| static int | reduce_min (int count, int *recv_buf, int *send_buf, int pattern=0) |
| find a global minimum of an array of int over the communicator. pattern specifies the dimensions to be reduced. More... | |
| static double | reduce_sum (double) |
| alternative interface to reduce_sum(). returns the global sum of a double over the whole communicator. More... | |
| static double | reduce_max (double) |
| alternative interface to reduce_max(). returns the global sum of a double over the whole communicator. More... | |
| static double | reduce_min (double) |
| alternative interface to reduce_min(). returns the global sum of a double over the whole communicator. More... | |
| static double | get_time () |
| obtain a wall-clock time. More... | |
| static int | status () |
Private Member Functions | |
| Communicator () | |
| no instance at all More... | |
| Communicator (const Communicator &) | |
| Communicator & | operator= (const Communicator &) |
| ~Communicator () | |
Communication library which wraps MPI.
This class provides communication library which wraps MPI (message passing interface) if the implementation file communicator_mpi.cpp is bound. For single processor environment with no MPI library, communicator_dummy.cpp should be bound instead. [28 Dec 2011 H.Matsufuru]
This class defines interface of inter-node communication routines. All methods are static, i.e. class-methods (like global). The explicit definitions are hidden in the implementation classes.
Definition at line 40 of file communicator.h.
|
inlineprivate |
no instance at all
communicator class is not indented to be instantiated. constructor, copy constroctor, assignment operator, and destructor are defined as private.
Definition at line 161 of file communicator.h.
|
inlineprivate |
Definition at line 162 of file communicator.h.
|
inlineprivate |
Definition at line 165 of file communicator.h.
|
static |
terminate communicator
terminate communicator immediately at some erroneous situations.
Definition at line 38 of file communicator.cpp.
|
static |
broadcast array of double from sender.
Definition at line 136 of file communicator.cpp.
|
static |
broadcast array of integer from sender.
Definition at line 142 of file communicator.cpp.
|
static |
broadcast a string from sender. count is insignificant.
Definition at line 148 of file communicator.cpp.
|
static |
receive array of double from upstream specified by idir and ipm, and send array to downstream.
Definition at line 160 of file communicator.cpp.
|
static |
receive array of int from upstream specified by idir and ipm, and send array to downstream.
Definition at line 166 of file communicator.cpp.
|
static |
finalize communicator
finalize communicator. terminates communication environment.
Definition at line 32 of file communicator.cpp.
|
static |
obtain a wall-clock time.
Definition at line 253 of file communicator.cpp.
|
static |
find grid coordinate from rank number.
Definition at line 105 of file communicator.cpp.
|
static |
find grid dimensions.
Definition at line 111 of file communicator.cpp.
|
static |
find rank number from grid coordinate.
Definition at line 99 of file communicator.cpp.
|
static |
initialize communicator
initialize communicator.
| pargc | pointer to argc passed from main function. |
| pargv | pointer to argv passed from main function. |
they would further be passed to communication library for hints to machine-dependent configurations.
MPI implementation of Communicator class which delegates to Communicator_impl class.
Definition at line 26 of file communicator.cpp.
|
static |
logical coordinate of current proc.
Definition at line 87 of file communicator.cpp.
|
static |
check if the present node is primary in small communicator.
Definition at line 50 of file communicator.cpp.
|
static |
check if the present node is primary in global communicator.
Definition at line 56 of file communicator.cpp.
|
inlinestatic |
alternative name for self().
Definition at line 86 of file communicator.h.
|
static |
logical grid extent
Definition at line 93 of file communicator.cpp.
|
private |
|
static |
find a global maximum of an array of double over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 202 of file communicator.cpp.
|
static |
find a global maximum of an array of int over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 208 of file communicator.cpp.
|
static |
alternative interface to reduce_max(). returns the global sum of a double over the whole communicator.
Definition at line 235 of file communicator.cpp.
|
static |
find a global minimum of an array of double over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 214 of file communicator.cpp.
|
static |
find a global minimum of an array of int over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 220 of file communicator.cpp.
|
static |
alternative interface to reduce_min(). returns the global sum of a double over the whole communicator.
Definition at line 244 of file communicator.cpp.
|
static |
make a global sum of an array of double over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 190 of file communicator.cpp.
|
static |
make a global sum of an array of int over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 196 of file communicator.cpp.
|
static |
alternative interface to reduce_sum(). returns the global sum of a double over the whole communicator.
Definition at line 226 of file communicator.cpp.
|
static |
rank within small world.
Definition at line 62 of file communicator.cpp.
|
static |
send array of double from rank p_from to rank p_to. communication distinguished by tag.
Definition at line 178 of file communicator.cpp.
|
static |
send array of int from rank p_from to rank p_to. communication distinguished by tag.
Definition at line 184 of file communicator.cpp.
|
static |
setup communicator
setup communicator environment such as logical layout. called after the parameters are obtained.
| ninstance | specifies multiplicity of trivial parallelism. (expects 1 at present). |
Definition at line 44 of file communicator.cpp.
|
static |
size of small world.
Definition at line 68 of file communicator.cpp.
|
static |
Definition at line 259 of file communicator.cpp.
|
static |
synchronize within small world.
Definition at line 117 of file communicator.cpp.