ALL 0.9.3
A Loadbalacing Library
|
#include <ALL_ForceBased.hpp>
Public Member Functions | |
ForceBased_LB () | |
default constructor | |
ForceBased_LB (int d, W w, T g) | |
~ForceBased_LB () override | |
default destructor | |
virtual void | balance (int step) override |
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 the shift of vertices according to the ratio of work from all the neighboring domains. The vertex is drawn in the direction of the geometric center of the domain with the most work. The direction is influenced by the other domains, their work and location of geometric centers. Some precautions are taken to avoid domains with too small angles at their vertices. The neighboring relation of domains is conserved throughout the load-balancing process.
T | data for vertices and related data |
W | data for work and related data |
Definition at line 85 of file ALL_ForceBased.hpp.
|
inline |
default constructor
Definition at line 88 of file ALL_ForceBased.hpp.
|
inline |
constructor initializing basic parameters
[in] | d | the dimension of the used vertices |
[in] | w | the scalar work assigned to the local domain |
[in] | g | the correction factor gamma |
Definition at line 93 of file ALL_ForceBased.hpp.
|
override |
default destructor
Definition at line 153 of file ALL_ForceBased.hpp.
|
overridevirtual |
method to execute a load-balancing step
[in] | step | number of the load-balancing step |
Implements ALL::LB< T, W >.
Definition at line 389 of file ALL_ForceBased.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 122 of file ALL_ForceBased.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 157 of file ALL_ForceBased.hpp.
|
inlineoverridevirtual |
method to set specific data structures (unused for tensor grid method)
[in] | data | pointer to the data structure |
Definition at line 117 of file ALL_ForceBased.hpp.
|
overridevirtual |
setup internal data structures and parameters
Implements ALL::LB< T, W >.
Definition at line 161 of file ALL_ForceBased.hpp.