|
OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Implementation of simple wall-clock based monitor. More...
#include <wallclockloadbalancermonitor.h>
Inheritance diagram for oofem::WallClockLoadBalancerMonitor:
Collaboration diagram for oofem::WallClockLoadBalancerMonitor: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().