ALL 0.9.3
A Loadbalacing Library
Loading...
Searching...
No Matches
ALL::TensorMax_LB< T, W > Class Template Reference

#include <ALL_Tensor.hpp>

+ Inheritance diagram for ALL::TensorMax_LB< T, W >:
+ Collaboration diagram for ALL::TensorMax_LB< T, W >:

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 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

- 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
 
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
 

Detailed Description

template<class T, class W>
class ALL::TensorMax_LB< T, W >

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.

Template Parameters
Tdata for vertices and related data
Wdata for work and related data

Definition at line 289 of file ALL_Tensor.hpp.

Constructor & Destructor Documentation

◆ TensorMax_LB() [1/2]

template<class T, class W>
ALL::TensorMax_LB< T, W >::TensorMax_LB ( )
inline

Definition at line 291 of file ALL_Tensor.hpp.

◆ TensorMax_LB() [2/2]

template<class T, class W>
ALL::TensorMax_LB< T, W >::TensorMax_LB ( int d,
W w,
T g )
inline

Definition at line 292 of file ALL_Tensor.hpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ balance()

template<class T, class W>
virtual void ALL::TensorMax_LB< T, W >::balance ( int step)
inlineoverridevirtual

method to execute a load-balancing step

Parameters
[in]stepnumber of the load-balancing step

Reimplemented from ALL::Tensor_LB< T, W >.

Definition at line 293 of file ALL_Tensor.hpp.

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: