|
ALL 0.9.4
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 |
| Public Member Functions inherited from ALL::Tensor_LB< T, W > | |
| 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 | |
| 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. 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 294 of file ALL_Tensor.hpp.
|
inline |
Definition at line 296 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 298 of file ALL_Tensor.hpp.