ALL 0.9.3
A Loadbalacing Library
|
#include <ALL_Staggered.hpp>
Public Member Functions | |
Staggered_LB () | |
default constructor | |
Staggered_LB (int d, W w, T g) | |
~Staggered_LB () | |
default destructor | |
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 |
method to setup the method specific internal 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 hierarchical scheme, which is based on a local one-dimensional equilibration between neighboring domains or compositions of domains. In the first step the domains in a collective plane are compared to the composite plane in the chosen direction. Depending on the ratio of work in both planes the border between them is shifted towards the plane with more work. In the following two steps this procedure is repeated for composite columns and then single domains.
T | data for vertices and related data |
W | data for work and related data |
Definition at line 52 of file ALL_Staggered.hpp.
|
inline |
default constructor
Definition at line 55 of file ALL_Staggered.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 60 of file ALL_Staggered.hpp.
ALL::Staggered_LB< T, W >::~Staggered_LB | ( | ) |
default destructor
Definition at line 117 of file ALL_Staggered.hpp.
|
overridevirtual |
method to execute a load-balancing step, which updates the resulting vertices based on the stored work assigned
[in] | step | the number of the load-balancing step (used in debugging output) |
Implements ALL::LB< T, W >.
Definition at line 214 of file ALL_Staggered.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 97 of file ALL_Staggered.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 629 of file ALL_Staggered.hpp.
|
inlineoverridevirtual |
method to set specific data structures (unused for staggered grid method)
[in] | data | pointer to the data structure |
Definition at line 92 of file ALL_Staggered.hpp.
|
overridevirtual |
method to setup the method specific internal parameters
Implements ALL::LB< T, W >.
Definition at line 131 of file ALL_Staggered.hpp.