xc
|
A ReleaseHeavierToLighterNeighbours is an object used to balance a PartitionedDomain. More...
#include <ReleaseHeavierToLighterNeighbours.h>
Public Member Functions | |
ReleaseHeavierToLighterNeighbours (void) | |
Default constructor. | |
ReleaseHeavierToLighterNeighbours (double factorGreater, int numReleases, bool disallowDissconnectedGraph) | |
Constructor. More... | |
virtual int | balance (Graph &theWeightedGraph) |
For numRelease times the Vertices of theWeightedGraph are iterated through. More... | |
![]() | |
LoadBalancer (void) | |
Default constructor. | |
LoadBalancer (double factGreater, int releases, bool disallowDisconnected=true) | |
Constructor. More... | |
virtual void | setLinks (DomainPartitioner &thePartitioner) |
Sets the pointer to the DomainPartitioner object associated with the LoadBalancer to point to thePartitioner . More... | |
Additional Inherited Members | |
![]() | |
DomainPartitioner * | getDomainPartitioner (void) |
Returns a pointer to the DomainPartitioner. More... | |
![]() | |
int | numReleases |
double | factorGreater |
number of releases. | |
bool | disallowDisconnectedGraphs |
A ReleaseHeavierToLighterNeighbours is an object used to balance a PartitionedDomain.
It does this by shedding the boundary vertices on the heaviest loaded partition (subdomain).
XC::ReleaseHeavierToLighterNeighbours::ReleaseHeavierToLighterNeighbours | ( | double | fG, |
int | rels, | ||
bool | disallowDisconnected | ||
) |
Constructor.
fG | factor greater. |
rels | number of releases. |
|
virtual |
For numRelease
times the Vertices of theWeightedGraph
are iterated through.
For each Vertex, \(i\), {releaseBoundary(i, theWeightedGraph, true, factorGreater)} is invoked on the DomainPartitioner. Returns \(0\) if succesfull, otherwise a negative number and a warning message are returned if either no link has been set to the DomainPartitioner or releaseBoundary() returns a negative number.
Implements XC::LoadBalancer.