|
ALL 0.9.4
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 | |
| Public Member Functions inherited from ALL::LB< T, W > | |
| LB (const int dim, const T g) | |
| virtual | ~LB ()=default |
| destructor | |
| virtual int | getDimension () |
| double | getEfficiency () |
| virtual const T | getGamma () |
| virtual const bool | getGammaAutoCalc () |
| 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 | setGammaAutoCalc (const bool b) |
| 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 | |
| Protected Member Functions inherited from ALL::LB< T, W > | |
| void | resizeVertices (const int newSize) |
| Protected Attributes inherited from ALL::LB< T, W > | |
| int | dimension |
| dimension of the used vertices | |
| T | gamma |
| correction factor | |
| bool | gammaAutoCalc |
| turn on/off autocalculation of gamma factor if present | |
| 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 54 of file ALL_Tensor.hpp.
|
inline |
default constuctor
Definition at line 57 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 62 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 84 of file ALL_Tensor.hpp.
|
virtual |
method to execute a load-balancing step
| [in] | step | number of the load-balancing step |
Definition at line 192 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 105 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 279 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 96 of file ALL_Tensor.hpp.
|
overridevirtual |
setup internal data structures and parameters
Implements ALL::LB< T, W >.
Definition at line 131 of file ALL_Tensor.hpp.