| 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:
 Inheritance diagram for oofem::WallClockLoadBalancerMonitor: Collaboration 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().