Bridge++
Version 1.5.4
|
Layout class for logical organisation of parallel nodes. More...
#include <layout.h>
Static Public Member Functions | |
static int | grid_rank (int *rank, const int *gcoord) |
find rank from grid coordinate. More... | |
static int | grid_coord (int *gcoord, const int rank) |
find grid coordinate corresponding to rank. More... | |
static int | grid_dims (int *gdims) |
find grid size. More... | |
static int | ipe (const int idir) |
grid coordinate along idir direction. More... | |
static int | npe (const int idir) |
grid size in idir direction. More... | |
static int | tag (int rank, int idir, int ipm) |
generate tag for communication. More... | |
static int | layout_setup () |
initialise layout. More... | |
static int | layout_setup (const std::vector< int > &lattice_size, std::vector< int > &grid_size) |
initialise layout. More... | |
static int | layout_delete () |
destroy layout and clean up. More... | |
static int | physical_map_setup () |
static int | physical_map_delete () |
static int | subgrid_setup () |
static int | subgrid_delete () |
Static Public Attributes | |
static int | m_ndim = 0 |
number of dimensions. More... | |
static int * | m_dims = 0 |
lattice extent (Lx, Ly, Lz, Lt) More... | |
static int * | m_grid_dims = 0 |
grid dimensions in directions. More... | |
static int * | m_grid_coord = 0 |
grid coordinate. More... | |
static int * | m_ipe_up = 0 |
rank of upward neighbour in directions. More... | |
static int * | m_ipe_dn = 0 |
rank of downward neighbour in directions. More... | |
static char | m_map_grid [16] |
static int * | m_physical_to_logical = 0 |
map between physical and logical grid More... | |
static MPI_Comm * | m_sub_comm = 0 |
subgrid More... | |
Private Member Functions | |
Layout () | |
constructor is hidden as private; no instantiation. More... | |
Layout (const Layout &) | |
copy constructor is hidden as private; no instantiation. More... | |
Layout & | operator= (const Layout &) |
assignment is hidden as private. More... | |
Layout class for logical organisation of parallel nodes.
Layout class inside MPI communicator class describes logical organisation of parallel nodes. not intended for public use.
|
inlineprivate |
|
inlineprivate |
|
static |
find grid coordinate corresponding to rank.
Definition at line 41 of file physical_map.cpp.
|
static |
find grid size.
Definition at line 57 of file layout.cpp.
|
static |
find rank from grid coordinate.
Definition at line 24 of file physical_map.cpp.
|
static |
grid coordinate along idir direction.
Definition at line 43 of file layout.cpp.
|
static |
destroy layout and clean up.
Definition at line 240 of file layout.cpp.
|
static |
initialise layout.
layout_setup() – setup logical layout
find dimension, global lattice size, local lattice size, grid division from CommonParameters. if grid division or local size is specified, check consistency. otherwise, try to divide so that global lattice size is divisable and the total number of rank is equal to number of processor elements.
N.B. the result should be stored back to communicator for further use from other components.
N.B. initial parameter settings are taken from CommonParameters; should rather be fetched from parameter file or something else?
Definition at line 93 of file layout.cpp.
|
static |
initialise layout.
Definition at line 154 of file layout.cpp.
|
static |
grid size in idir direction.
Definition at line 50 of file layout.cpp.
assignment is hidden as private.
|
static |
Definition at line 76 of file physical_map.cpp.
|
static |
Definition at line 57 of file physical_map.cpp.
|
static |
Definition at line 297 of file layout.cpp.
|
static |
Definition at line 258 of file layout.cpp.
|
static |
generate tag for communication.
Definition at line 68 of file layout.cpp.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |