ALL 0.9.3
A Loadbalacing Library
|
#include <ALL_Tensor.hpp>
Public Member Functions | |
Tensor_LB () | |
default constuctor | |
Tensor_LB (int d, W w, T g) | |
~Tensor_LB ()=default | |
default destructor | |
virtual void | balance (int step) override |
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.
T | data for vertices and related data |
W | data for work and related data |
Definition at line 53 of file ALL_Tensor.hpp.
|
inline |
default constuctor
Definition at line 56 of file ALL_Tensor.hpp.
|
inline |
constructor to initialize values
[in] | d | dimension of the vertices used |
[in] | w | the local (scalar) work load |
[in] | g | the correction factor |
Definition at line 61 of file ALL_Tensor.hpp.
|
default |
default destructor
|
inlineoverridevirtual |
method to execute a load-balancing step
[in] | step | number of the load-balancing step |
Implements ALL::LB< T, W >.
Reimplemented in ALL::TensorMax_LB< T, W >.
Definition at line 81 of file ALL_Tensor.hpp.
|
virtual |
method to execute a load-balancing step
[in] | step | number of the load-balancing step |
Definition at line 189 of file ALL_Tensor.hpp.
|
inlineoverridevirtual |
method to get an estimated work distribution after the balance step (currently only implemented in ALL::HISTOGRAM!)
[out] | double | providing the estimated LB after the balance step |
Implements ALL::LB< T, W >.
Definition at line 102 of file ALL_Tensor.hpp.
|
overridevirtual |
method to provide a list of the neighbors of the local domain
[out] | list | reference to a std::vector of integers where the list of neighbors will be assigned to |
Implements ALL::LB< T, W >.
Definition at line 274 of file ALL_Tensor.hpp.
|
inlineoverridevirtual |
method to set specific data structures (unused for tensor grid method)
[in] | data | pointer to the data structure |
Definition at line 93 of file ALL_Tensor.hpp.
|
overridevirtual |
setup internal data structures and parameters
Implements ALL::LB< T, W >.
Definition at line 128 of file ALL_Tensor.hpp.