xc
|
A SwapHeavierToLighterNeighbours is an object used to balance a PartitionedDomain. More...
#include <SwapHeavierToLighterNeighbours.h>
Public Member Functions | |
SwapHeavierToLighterNeighbours () | |
Default constructor. | |
SwapHeavierToLighterNeighbours (double factorGreater, int numReleases) | |
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... | |
![]() | |
CommandEntity (CommandEntity *owr=nullptr) | |
Default constructor. | |
CommandEntity * | Owner (void) |
Return a pointer to the object owner. | |
const CommandEntity * | Owner (void) const |
Return un puntero al objeto propietario de ESTE. | |
const StandardOutputWrapper & | getStandardOutputWrapper (void) const |
Return the regular output stream wrapper. | |
StandardOutputWrapper & | getStandardOutputWrapper (void) |
Return the regular output stream wrapper. | |
const std::string & | getLogFileName (void) const |
Returns log file name. | |
void | setLogFileName (const std::string &) |
Sets log file name. | |
const std::string & | getErrFileName (void) const |
Returns err file name. | |
void | setErrFileName (const std::string &) |
Sets error file name. | |
const std::string & | getOutputFileName (void) const |
Returns regular output file name. | |
void | setOutputFileName (const std::string &) |
Sets regular output file name. | |
boost::python::object | evalPy (boost::python::object dict, const std::string &) |
Return the Python object that results from evaluating the argument. | |
boost::python::object | execPy (boost::python::object dict, const std::string &) |
Return the Python objects that results from executing the code in the string argument. | |
boost::python::object | execFilePy (boost::python::object dict, const std::string &) |
Return the Python object that results from executing the code in the file. | |
![]() | |
EntityWithProperties (EntityWithProperties *owr=nullptr) | |
Default constructor. | |
void | clearPyProps (void) |
Clear python properties map. | |
bool | hasPyProp (const std::string &) |
Returns true if property exists. | |
boost::python::object | getPyProp (const std::string &str) |
Return the Python object with the name being passed as parameter. | |
void | setPyProp (std::string str, boost::python::object val) |
Sets/appends a value tho the Python object's dictionary. | |
void | copyPropsFrom (const EntityWithProperties &) |
Copy the properties from the argument. | |
boost::python::list | getPropNames (void) const |
Return the names of the object properties weightings. | |
const PythonDict & | getPropertiesDict (void) const |
Return a std::map container with the properties of the object. | |
boost::python::dict | getPyDict (void) const |
Return a Python dictionary containing the object members values. | |
void | setPyDict (const boost::python::dict &) |
Set the values of the object members from a Python dictionary. | |
![]() | |
EntityWithOwner (EntityWithOwner *owr=nullptr) | |
Default constructor. | |
EntityWithOwner (const EntityWithOwner &) | |
Copy constructor. | |
EntityWithOwner & | operator= (const EntityWithOwner &) |
Assignment operator. | |
virtual bool | operator== (const EntityWithOwner &) const |
Comparison operator. | |
virtual | ~EntityWithOwner (void) |
Virtual destructor. | |
virtual std::string | getClassName (void) const |
Returns demangled class name. | |
void | set_owner (EntityWithOwner *owr) |
Assigns the owner of the object. | |
EntityWithOwner * | Owner (void) |
const EntityWithOwner * | Owner (void) const |
Additional Inherited Members | |
![]() | |
typedef std::map< std::string, boost::python::object > | PythonDict |
![]() | |
static void | resetStandardOutput (void) |
Reset the standard output streams to its defaults buffers. | |
![]() | |
static int | getVerbosityLevel (void) |
Get the value of the verbosity level. | |
static void | setVerbosityLevel (const int &) |
Set the value of the verbosity level. | |
![]() | |
DomainPartitioner * | getDomainPartitioner (void) |
Returns a pointer to the DomainPartitioner. More... | |
![]() | |
template<class T > | |
void | string_to (T &, const std::string &) const |
![]() | |
bool | isEqual (const EntityWithProperties &) const |
Return true if both objects are equal. | |
![]() | |
virtual bool | isEqual (const EntityWithOwner &) const |
Return true if both objects are equal. | |
![]() | |
static CommandEntity * | entcmd_cast (boost::any &data) |
![]() | |
int | numReleases |
double | factorGreater |
number of releases. | |
bool | disallowDisconnectedGraphs |
![]() | |
static int | verbosity = 1 |
Object that owns THIS ONE. More... | |
A SwapHeavierToLighterNeighbours is an object used to balance a PartitionedDomain.
A SwapHeavierToLighterNeighbours is an object used to balance a PartitionedDomain. It does this by shedding the boundary vertices on the heaviest loaded partition (subdomain). It will go thought the weigted partition graph and shed load from a heavier to its lighter neighbours if the ratio between the two is greater than a certain percent. It repaets this process a number of times.
XC::SwapHeavierToLighterNeighbours::SwapHeavierToLighterNeighbours | ( | double | fG, |
int | rels | ||
) |
Constructor.
Sets the parameters used in the balance() method.
fG | factor greater. |
rels | number of releases. |
|
virtual |
For numRelease
times the Vertices of theWeightedGraph
are iterated through.
For each Vertex, \(i\), the weight of the Vertex is compared to those of it's adjacent Vertices, \(other\), (this is done by looping through the adjacency ID of the Vertex), if the vertex weight is {factorGreater} times greater than the other Vertices load then {swapBoundary(i, other)} is invoked on the DomainPartitioner. Returns \(0\) if successful, otherwise a negative number and a warning message are returned if either no link has been set to the DomainPartitioner or swapBoundary() returns a negative number.
Implements XC::LoadBalancer.