ALL 0.9.3
A Loadbalacing Library
|
#include <ALL_Tensor.hpp>
Public Member Functions | |
TensorMax_LB () | |
TensorMax_LB (int d, W w, T g) | |
virtual void | balance (int step) override |
![]() | |
Tensor_LB () | |
default constuctor | |
Tensor_LB (int d, W w, T g) | |
~Tensor_LB ()=default | |
default destructor | |
virtual void | balance (int step, MPI_Op reductionMode) |
virtual W | getEstimatedEfficiency () override |
virtual std::vector< int > & | getNeighbors () override |
virtual void | setAdditionalData (known_unused const void *data) override |
void | setup () override |
setup internal data structures and parameters | |
![]() | |
LB (const int dim, const T g) | |
virtual | ~LB ()=default |
destructor | |
virtual int | getDimension () |
double | getEfficiency () |
virtual const T | getGamma () |
virtual const std::vector< T > & | getMinDomainSize () |
std::vector< T > & | getNeighborVertices () |
int | getNVertices () |
virtual std::vector< Point< T > > & | getPrevVertices () |
virtual const std::vector< T > & | getSysSize () |
virtual std::vector< Point< T > > & | getVertices () |
virtual std::vector< W > & | getWork () |
virtual void | setAdditionalData (const void *data)=0 |
virtual void | setCommunicator (const MPI_Comm comm) |
virtual void | setDimension (const int d) |
virtual void | setGamma (const T g) |
virtual void | setMinDomainSize (const std::vector< T > &minSize) |
virtual void | setSysSize (const std::vector< T > &newSysSize) |
virtual void | setVertices (const std::vector< Point< T > > &vertices_in) |
virtual void | setWork (const std::vector< W > &w) |
virtual void | setWork (const W w) |
Additional Inherited Members | |
![]() | |
void | resizeVertices (const int newSize) |
![]() | |
int | dimension |
dimension of the used vertices | |
T | gamma |
correction factor | |
std::vector< int > | global_dims |
dimensions of the global process grid | |
MPI_Comm | globalComm |
used MPI communicator | |
std::vector< int > | local_coords |
cartesian coordinates of the local domain in the process grid | |
int | localRank |
local rank in the used MPI communicator | |
std::vector< T > | minSize |
std::vector< T > | neighborVertices |
vertices describing neighboring domains | |
std::vector< int > | periodicity |
periodicity of the MPI communicator / system | |
std::vector< Point< T > > | prevVertices |
original vertices before previous balancing step | |
std::vector< T > | sysSize |
(orthogonal) system size | |
std::vector< Point< T > > | vertices |
local vertices after previous balancing step | |
std::vector< W > | work |
local work | |
Load-balancing scheme based on a independent local scheme, where the workloads of domains are reduced over their cartesian position, on reduction for each of the dimensions. These reduced values are then compared against the values gathered for the neighbor domains. Then the boundaries between the process groups are adjusted according to the ratio of cummulated work loads on each of them. The border is shifted in the direction of the domain with more cummulated work. This is independently done for each of the dimensions. For this method, the reduction is a maximum over the respective dimension, instead of a sum.
T | data for vertices and related data |
W | data for work and related data |
Definition at line 289 of file ALL_Tensor.hpp.
|
inline |
Definition at line 291 of file ALL_Tensor.hpp.
|
inline |
|
inlineoverridevirtual |
method to execute a load-balancing step
[in] | step | number of the load-balancing step |
Reimplemented from ALL::Tensor_LB< T, W >.
Definition at line 293 of file ALL_Tensor.hpp.