OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Implementation of simple wall-clock based monitor. More...
#include <wallclockloadbalancermonitor.h>
Public Member Functions | |
WallClockLoadBalancerMonitor (EngngModel *em) | |
LoadBalancerDecisionType | decide (TimeStep *) |
Returns flag indicating whether rebalancing is necessary; should update node weights as well. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual const char * | giveClassName () const |
Returns class name of the receiver. More... | |
Public Member Functions inherited from oofem::LoadBalancerMonitor | |
LoadBalancerMonitor (EngngModel *em) | |
virtual | ~LoadBalancerMonitor () |
const FloatArray & | giveProcessorWeights () |
Returns processor weights; the larger weight means more powerful node, sum of weights should equal to one. More... | |
Protected Attributes | |
double | relWallClockImbalanceTreshold |
Declares min abs imbalance to perform relative imbalance check. More... | |
double | absWallClockImbalanceTreshold |
double | minAbsWallClockImbalanceTreshold |
int | lbstep |
The rebalancing done every lbstep. More... | |
std::list< Range > | perturbedSteps |
List of steps with perturbed balancing. More... | |
double | perturbFactor |
Perturbing factor. More... | |
IntArray | recoveredSteps |
list of step at which to performed lb recovery. More... | |
FloatArray | processingWeights |
processing weights for lb recovery. More... | |
Protected Attributes inherited from oofem::LoadBalancerMonitor | |
EngngModel * | emodel |
FloatArray | nodeWeights |
bool | staticNodeWeightFlag |
Additional Inherited Members | |
Public Types inherited from oofem::LoadBalancerMonitor | |
enum | LoadBalancerDecisionType { LBD_CONTINUE, LBD_RECOVER } |
Implementation of simple wall-clock based monitor.
It detect imbalance based on wall clock difference required for solution step on particular nodes. When difference in wall clock solution times is greater than a threshold value, the load migration is performed.
Definition at line 69 of file wallclockloadbalancermonitor.h.
|
inline |
Definition at line 87 of file wallclockloadbalancermonitor.h.
|
virtual |
Returns flag indicating whether rebalancing is necessary; should update node weights as well.
Implements oofem::LoadBalancerMonitor.
Definition at line 50 of file wallclockloadbalancermonitor.C.
References absWallClockImbalanceTreshold, oofem::FloatArray::at(), oofem::Element_remote, oofem::LoadBalancerMonitor::emodel, oofem::EngngModelTimer::EMTT_NetComputationalStepTimer, oofem::IntArray::findFirstIndexOf(), oofem::EngngModelTimer::getWtime(), oofem::LoadBalancer::giveDomain(), oofem::Domain::giveElement(), oofem::EngngModel::giveLoadBalancer(), oofem::TimeStep::giveNumber(), oofem::Domain::giveNumberOfElements(), oofem::EngngModel::giveNumberOfProcesses(), oofem::Element::giveParallelMode(), oofem::EngngModel::giveRank(), oofem::IntArray::giveSize(), oofem::EngngModel::giveTimer(), oofem::LoadBalancerMonitor::LBD_CONTINUE, oofem::LoadBalancerMonitor::LBD_RECOVER, lbstep, oofem::max(), oofem::min(), minAbsWallClockImbalanceTreshold, oofem::LoadBalancerMonitor::nodeWeights, OOFEM_ERROR, OOFEM_LOG_RELEVANT, perturbedSteps, perturbFactor, oofem::Element::predictRelativeComputationalCost(), processingWeights, recoveredSteps, relWallClockImbalanceTreshold, and oofem::LoadBalancerMonitor::staticNodeWeightFlag.
|
inlinevirtual |
Returns class name of the receiver.
Implements oofem::LoadBalancerMonitor.
Definition at line 98 of file wallclockloadbalancermonitor.h.
|
virtual |
Initializes receiver according to object description stored in input record.
Reimplemented from oofem::LoadBalancerMonitor.
Definition at line 227 of file wallclockloadbalancermonitor.C.
References _IFT_WallClockLoadBalancerMonitor_abswct, _IFT_WallClockLoadBalancerMonitor_lbstep, _IFT_WallClockLoadBalancerMonitor_minwct, _IFT_WallClockLoadBalancerMonitor_perturbedsteps, _IFT_WallClockLoadBalancerMonitor_perturbfactor, _IFT_WallClockLoadBalancerMonitor_processingweights, _IFT_WallClockLoadBalancerMonitor_recoveredsteps, _IFT_WallClockLoadBalancerMonitor_relwct, absWallClockImbalanceTreshold, oofem::IntArray::clear(), oofem::FloatArray::clear(), oofem::IntArray::giveSize(), oofem::FloatArray::giveSize(), oofem::LoadBalancerMonitor::initializeFrom(), IR_GIVE_OPTIONAL_FIELD, lbstep, minAbsWallClockImbalanceTreshold, OOFEM_ERROR, perturbedSteps, perturbFactor, processingWeights, recoveredSteps, and relWallClockImbalanceTreshold.
|
protected |
Definition at line 73 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
The rebalancing done every lbstep.
Definition at line 75 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
Definition at line 73 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
List of steps with perturbed balancing.
Definition at line 78 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
Perturbing factor.
Definition at line 80 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
processing weights for lb recovery.
Definition at line 84 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
list of step at which to performed lb recovery.
Definition at line 82 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().
|
protected |
Declares min abs imbalance to perform relative imbalance check.
Definition at line 73 of file wallclockloadbalancermonitor.h.
Referenced by decide(), and initializeFrom().