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:
Inheritance graph
[legend]
Collaboration diagram for XC::ShedHeaviest:
Collaboration graph
[legend]

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...
 
- Public Member Functions inherited from CommandEntity
 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.
 
- Public Member Functions inherited from EntityWithProperties
 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.
 
- Public Member Functions inherited from EntityWithOwner
 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

- Public Types inherited from EntityWithProperties
typedef std::map< std::string, boost::python::object > PythonDict
 
- Static Public Member Functions inherited from CommandEntity
static void resetStandardOutput (void)
 Reset the standard output streams to its defaults buffers.
 
- Static Public Member Functions inherited from EntityWithOwner
static int getVerbosityLevel (void)
 Get the value of the verbosity level.
 
static void setVerbosityLevel (const int &)
 Set the value of the verbosity level.
 
- Protected Member Functions inherited from XC::LoadBalancer
DomainPartitioner * getDomainPartitioner (void)
 Returns a pointer to the DomainPartitioner. More...
 
- Protected Member Functions inherited from CommandEntity
template<class T >
void string_to (T &, const std::string &) const
 
- Protected Member Functions inherited from EntityWithProperties
bool isEqual (const EntityWithProperties &) const
 Return true if both objects are equal.
 
- Protected Member Functions inherited from EntityWithOwner
virtual bool isEqual (const EntityWithOwner &) const
 Return true if both objects are equal.
 
- Static Protected Member Functions inherited from CommandEntity
static CommandEntity * entcmd_cast (boost::any &data)
 
- Protected Attributes inherited from XC::LoadBalancer
int numReleases
 
double factorGreater
 number of releases.
 
bool disallowDisconnectedGraphs
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

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 successful, 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: