Bridge++
Ver. 1.2.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 Channel * | send_init (int count, int idir, int ipm) |
static Channel * | recv_init (int count, int idir, int ipm) |
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 42 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 169 of file communicator.h.
|
inlineprivate |
Definition at line 170 of file communicator.h.
|
inlineprivate |
Definition at line 173 of file communicator.h.
|
static |
terminate communicator
terminate communicator immediately at some erroneous situations.
Definition at line 44 of file communicator.cpp.
|
static |
broadcast array of double from sender.
Definition at line 162 of file communicator.cpp.
|
static |
broadcast array of integer from sender.
Definition at line 169 of file communicator.cpp.
|
static |
broadcast a string from sender. count is insignificant.
Definition at line 176 of file communicator.cpp.
|
static |
receive array of double from upstream specified by idir and ipm, and send array to downstream.
Definition at line 183 of file communicator.cpp.
|
static |
receive array of int from upstream specified by idir and ipm, and send array to downstream.
Definition at line 193 of file communicator.cpp.
|
static |
finalize communicator
finalize communicator. terminates communication environment.
Definition at line 37 of file communicator.cpp.
|
static |
obtain a wall-clock time.
Definition at line 315 of file communicator.cpp.
|
static |
find grid coordinate from rank number.
Definition at line 125 of file communicator.cpp.
|
static |
find grid dimensions.
Definition at line 132 of file communicator.cpp.
|
static |
find rank number from grid coordinate.
Definition at line 118 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 30 of file communicator.cpp.
|
static |
logical coordinate of current proc.
Definition at line 104 of file communicator.cpp.
|
static |
check if the present node is primary in small communicator.
Definition at line 58 of file communicator.cpp.
|
static |
check if the present node is primary in global communicator.
Definition at line 65 of file communicator.cpp.
|
inlinestatic |
alternative name for self().
Definition at line 88 of file communicator.h.
|
static |
logical grid extent
Definition at line 111 of file communicator.cpp.
|
private |
|
static |
Definition at line 329 of file communicator.cpp.
|
static |
find a global maximum of an array of double over the communicator. pattern specifies the dimensions to be reduced.
Definition at line 244 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 254 of file communicator.cpp.
|
static |
alternative interface to reduce_max(). returns the global sum of a double over the whole communicator.
Definition at line 295 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 264 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 274 of file communicator.cpp.
|
static |
alternative interface to reduce_min(). returns the global sum of a double over the whole communicator.
Definition at line 305 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 224 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 234 of file communicator.cpp.
|
static |
alternative interface to reduce_sum(). returns the global sum of a double over the whole communicator.
Definition at line 284 of file communicator.cpp.
|
static |
rank within small world.
Definition at line 72 of file communicator.cpp.
|
static |
send array of double from rank p_from to rank p_to. communication distinguished by tag.
Definition at line 203 of file communicator.cpp.
|
static |
send array of int from rank p_from to rank p_to. communication distinguished by tag.
Definition at line 213 of file communicator.cpp.
|
static |
Definition at line 322 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 51 of file communicator.cpp.
|
static |
size of small world.
Definition at line 79 of file communicator.cpp.
|
static |
Definition at line 336 of file communicator.cpp.
|
static |
synchronize within small world.
Definition at line 139 of file communicator.cpp.