xc
Public Member Functions | List of all members

A ShedHeaviest is an object used to balance a PartitionedDomain. More...

#include <ShedHeaviest.h>

Inheritance diagram for XC::ShedHeaviest:
XC::LoadBalancer

Public Member Functions

 ShedHeaviest ()
 Default constructor.
 
 ShedHeaviest (double factorGreater, int numReleases, bool disallowDissconnectedGraph)
 Constructor. More...
 
virtual int balance (Graph &theWeightedGraph)
 The heaviest loaded partition, max, is first determined by iterating through the Graph theWeightedGraph looking at the vertex weights. More...
 
- Public Member Functions inherited from XC::LoadBalancer
 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

- Protected Member Functions inherited from XC::LoadBalancer
DomainPartitionergetDomainPartitioner (void)
 Returns a pointer to the DomainPartitioner. More...
 
- Protected Attributes inherited from XC::LoadBalancer
int numReleases
 
double factorGreater
 number of releases.
 
bool disallowDisconnectedGraphs
 

Detailed Description

A ShedHeaviest is an object used to balance a PartitionedDomain.

It does this by shedding the boundary vertices on the heaviest loaded partition (subdomain).

Constructor & Destructor Documentation

§ ShedHeaviest()

XC::ShedHeaviest::ShedHeaviest ( double  fG,
int  rels,
bool  disallowDisconnected 
)

Constructor.

Sets the parameters used in the balance() method.

Parameters
fGfactor greater.
relsnumber of releases.

Member Function Documentation

§ balance()

int XC::ShedHeaviest::balance ( Graph theWeightedGraph)
virtual

The heaviest loaded partition, max, is first determined by iterating through the Graph theWeightedGraph looking at the vertex weights.

Then {releaseBoundary(max, theWieightedGraph, true, factorGreater)} is invoked on the DomainPartitioner numRelease times. Returns \(0\) if successfull, 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.


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