|
ALL 0.9.4
A Loadbalacing Library
|
#include <ALL_LB.hpp>
Public Member Functions | |
| LB (const int dim, const T g) | |
| virtual | ~LB ()=default |
| destructor | |
| virtual void | balance (const int step)=0 |
| abstract definition of the balancing method | |
| virtual int | getDimension () |
| double | getEfficiency () |
| virtual W | getEstimatedEfficiency ()=0 |
| virtual const T | getGamma () |
| virtual const bool | getGammaAutoCalc () |
| virtual const std::vector< T > & | getMinDomainSize () |
| virtual std::vector< int > & | getNeighbors ()=0 |
| 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 | setup ()=0 |
| abstract definition of the setup method | |
| virtual void | setVertices (const std::vector< Point< T > > &vertices_in) |
| virtual void | setWork (const std::vector< W > &w) |
| virtual void | setWork (const W w) |
Protected Member Functions | |
| void | resizeVertices (const int newSize) |
Protected Attributes | |
| 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 | |
| T | data for vertices and related data |
| W | data for work and related data |
Definition at line 44 of file ALL_LB.hpp.
|
inline |
constructor for the basic load-balancing class, sets up parameters required by all balancing methods
| [in] | dim | dimension of the vertices used |
| [in] | g | correction factor for the computation of shifts |
Definition at line 50 of file ALL_LB.hpp.
|
pure virtual |
abstract definition of the balancing method
Implemented in ALL::ForceBased_LB< T, W >, ALL::Histogram_LB< T, W >, ALL::Staggered_LB< T, W >, ALL::Tensor_LB< T, W >, ALL::TensorMax_LB< T, W >, and ALL::Voronoi_LB< T, W >.
|
inlinevirtual |
method to get the dimension of the vertices
Definition at line 100 of file ALL_LB.hpp.
|
inline |
method to get the current LB efficiency with the given work distribution
Definition at line 197 of file ALL_LB.hpp.
|
pure virtual |
method to get an estimated LB efficiency after the balance step (currently only implemented in ALL::HISTOGRAM!)
Implemented in ALL::ForceBased_LB< T, W >, ALL::Histogram_LB< T, W >, ALL::Staggered_LB< T, W >, ALL::Tensor_LB< T, W >, and ALL::Voronoi_LB< T, W >.
|
inlinevirtual |
method to get the correction value currently used
Definition at line 108 of file ALL_LB.hpp.
|
inlinevirtual |
method to get the current setting of the automatic calculation of the correction value
Definition at line 116 of file ALL_LB.hpp.
|
inlinevirtual |
method to get the minimum domain size the balancing methods have to obey
Definition at line 144 of file ALL_LB.hpp.
|
pure virtual |
abstract definition of the method to get the neighbors of the local domain
Implemented in ALL::ForceBased_LB< T, W >, ALL::Histogram_LB< T, W >, ALL::Staggered_LB< T, W >, ALL::Tensor_LB< T, W >, and ALL::Voronoi_LB< T, W >.
|
inline |
method to provide a list of vertices describing the neighboring domains currently only implemented for VORONOI, as a means to get the anchor points of the surrounding domains
Definition at line 216 of file ALL_LB.hpp.
|
inline |
method the get the number of vertices stored for the local domain
Definition at line 183 of file ALL_LB.hpp.
|
inlinevirtual |
method to get the original vertices before the last balancing step
Definition at line 170 of file ALL_LB.hpp.
|
inlinevirtual |
method to get the currently stored system size
Definition at line 154 of file ALL_LB.hpp.
|
inlinevirtual |
method to get result vertices
Definition at line 163 of file ALL_LB.hpp.
|
inlinevirtual |
method to get the currently stored work for the local process
Definition at line 159 of file ALL_LB.hpp.
|
inlineprotected |
method the resize the vertex list
| [in] | new_size | the new size of the vertex list |
Definition at line 251 of file ALL_LB.hpp.
|
pure virtual |
method to set undefined method specific data, which is not shared between different methods but needs to be set by a unified interface
| [in] | data | the data be passed to the balancing method |
Implemented in ALL::Histogram_LB< T, W >.
|
inlinevirtual |
method to set the MPI communicator to be used by the balancing method
| [in] | comm | the MPI communicator to be used |
Definition at line 174 of file ALL_LB.hpp.
|
inlinevirtual |
method to set the dimension of the vertices
| [in] | d | the dimension to be used |
Definition at line 89 of file ALL_LB.hpp.
|
inlinevirtual |
method to set the correction value gamma
| [in] | g | the correction value to use |
Definition at line 104 of file ALL_LB.hpp.
|
inlinevirtual |
Definition at line 112 of file ALL_LB.hpp.
|
inlinevirtual |
method to set the minimum domain size in each dimension
| [in] | minSize | the minimum size of a domain in all dimensions |
Definition at line 138 of file ALL_LB.hpp.
|
inlinevirtual |
method to set the (orthogonal) size of the system
| [in] | sysSize | system size in all dimensions |
Definition at line 148 of file ALL_LB.hpp.
|
pure virtual |
abstract definition of the setup method
Implemented in ALL::ForceBased_LB< T, W >, ALL::Histogram_LB< T, W >, ALL::Staggered_LB< T, W >, ALL::Tensor_LB< T, W >, and ALL::Voronoi_LB< T, W >.
|
inlinevirtual |
method to update the vertices used for the balancing step, overwrites old set of vertices
| [in] | vertices_in | vector containg the new vertices to be used |
Definition at line 77 of file ALL_LB.hpp.
|
inlinevirtual |
method to set a multi-dimensional work for the local domain
| [in] | w | vector containing all the dimensions of the work to be used for the local domain |
Definition at line 121 of file ALL_LB.hpp.
|
inlinevirtual |
method to set a scalar work for the local domain
| [in] | w | value containing the work to be used for the local domain |
Definition at line 131 of file ALL_LB.hpp.
|
protected |
dimension of the used vertices
Definition at line 225 of file ALL_LB.hpp.
|
protected |
correction factor
Definition at line 221 of file ALL_LB.hpp.
|
protected |
turn on/off autocalculation of gamma factor if present
Definition at line 223 of file ALL_LB.hpp.
|
protected |
dimensions of the global process grid
Definition at line 242 of file ALL_LB.hpp.
|
protected |
used MPI communicator
Definition at line 227 of file ALL_LB.hpp.
|
protected |
cartesian coordinates of the local domain in the process grid
Definition at line 244 of file ALL_LB.hpp.
|
protected |
local rank in the used MPI communicator
Definition at line 229 of file ALL_LB.hpp.
|
protected |
minimum domain size
Definition at line 232 of file ALL_LB.hpp.
|
protected |
vertices describing neighboring domains
Definition at line 248 of file ALL_LB.hpp.
|
protected |
periodicity of the MPI communicator / system
Definition at line 246 of file ALL_LB.hpp.
original vertices before previous balancing step
Definition at line 240 of file ALL_LB.hpp.
|
protected |
(orthogonal) system size
Definition at line 234 of file ALL_LB.hpp.
local vertices after previous balancing step
Definition at line 238 of file ALL_LB.hpp.
|
protected |
local work
Definition at line 236 of file ALL_LB.hpp.