Public Types | Public Member Functions | Friends

LibGeoDecomp::LoadBalancer Class Reference

#include <loadbalancer.h>

Inherited by LibGeoDecomp::BiasBalancer, LibGeoDecomp::MockBalancer, LibGeoDecomp::NoOpBalancer, LibGeoDecomp::OozeBalancer, LibGeoDecomp::RandomBalancer, and LibGeoDecomp::TracingBalancer.

List of all members.

Public Types

typedef std::vector< std::size_t > WeightVec
typedef std::vector< double > LoadVec

Public Member Functions

virtual ~LoadBalancer ()
virtual WeightVec balance (const WeightVec &weights, const LoadVec &relativeLoads)=0
 Given the current workload distribution weights and the work time / wall clock time ratio relativeLoads for each node, return a new, possibly better distribution "newLoads".

Friends

class Serialization

Member Typedef Documentation

typedef std::vector<double> LibGeoDecomp::LoadBalancer::LoadVec
typedef std::vector<std::size_t> LibGeoDecomp::LoadBalancer::WeightVec

Constructor & Destructor Documentation

virtual LibGeoDecomp::LoadBalancer::~LoadBalancer (  )  [inline, virtual]

Member Function Documentation

virtual WeightVec LibGeoDecomp::LoadBalancer::balance ( const WeightVec weights,
const LoadVec relativeLoads 
) [pure virtual]

Given the current workload distribution weights and the work time / wall clock time ratio relativeLoads for each node, return a new, possibly better distribution "newLoads".

Wall clock time is the sum of the work time and the waiting time during which a node is blocking on communication to other nodes.

NOTE: The sum of the elements in weights and the return value "newLoads" has to match, as the underlying assumption is, that this sum is the number of smallest, atomic work items that can be exchanged between to nodes. More formally:

\[ \sum_{i=0}^{i<n} \mbox{weights}[i] = \sum_{i=0}^{i<n} \mbox{newLoads}[i] \qquad \mbox{where:}\quad n = |\mbox{weights}| = |\mbox{newLoads}| \]

Implemented in LibGeoDecomp::BiasBalancer, LibGeoDecomp::MockBalancer, LibGeoDecomp::NoOpBalancer, LibGeoDecomp::OozeBalancer, LibGeoDecomp::RandomBalancer, and LibGeoDecomp::TracingBalancer.

Referenced by LibGeoDecomp::BiasBalancer::balance().


Friends And Related Function Documentation

friend class Serialization [friend]

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