OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::LoadBalancerMonitor Class Referenceabstract

Abstract base class representing general load balancer monitor. More...

#include <loadbalancer.h>

+ Inheritance diagram for oofem::LoadBalancerMonitor:
+ Collaboration diagram for oofem::LoadBalancerMonitor:

Public Types

enum  LoadBalancerDecisionType { LBD_CONTINUE, LBD_RECOVER }
 

Public Member Functions

 LoadBalancerMonitor (EngngModel *em)
 
virtual ~LoadBalancerMonitor ()
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
virtual const char * giveClassName () const =0
 Returns class name of the receiver. More...
 
Load evaluation and imbalance detection methods
virtual LoadBalancerDecisionType decide (TimeStep *)=0
 Returns flag indicating whether rebalancing is necessary; should update node weights as well. More...
 
const FloatArraygiveProcessorWeights ()
 Returns processor weights; the larger weight means more powerful node, sum of weights should equal to one. More...
 

Protected Attributes

EngngModelemodel
 
FloatArray nodeWeights
 
bool staticNodeWeightFlag
 

Detailed Description

Abstract base class representing general load balancer monitor.

The task of the monitor is to detect the imbalance and to make the decision, whether to redistribute the work or to continue with existing partitioning. It provides partition weights, reflecting their relative computational performance. These weights should be continuously updated to reflect changing work load during solution process.

Definition at line 68 of file loadbalancer.h.

Member Enumeration Documentation

Enumerator
LBD_CONTINUE 
LBD_RECOVER 

Definition at line 75 of file loadbalancer.h.

Constructor & Destructor Documentation

oofem::LoadBalancerMonitor::LoadBalancerMonitor ( EngngModel em)
inline

Definition at line 77 of file loadbalancer.h.

virtual oofem::LoadBalancerMonitor::~LoadBalancerMonitor ( )
inlinevirtual

Definition at line 78 of file loadbalancer.h.

Member Function Documentation

virtual LoadBalancerDecisionType oofem::LoadBalancerMonitor::decide ( TimeStep )
pure virtual

Returns flag indicating whether rebalancing is necessary; should update node weights as well.

Implemented in oofem::WallClockLoadBalancerMonitor.

Referenced by oofem::EngngModel::balanceLoad().

virtual const char* oofem::LoadBalancerMonitor::giveClassName ( ) const
pure virtual

Returns class name of the receiver.

Implemented in oofem::WallClockLoadBalancerMonitor.

const FloatArray& oofem::LoadBalancerMonitor::giveProcessorWeights ( )
inline

Returns processor weights; the larger weight means more powerful node, sum of weights should equal to one.

Definition at line 88 of file loadbalancer.h.

Referenced by oofem::ParmetisLoadBalancer::calculateLoadTransfer().

IRResultType oofem::LoadBalancerMonitor::initializeFrom ( InputRecord ir)
virtual

Member Data Documentation

EngngModel* oofem::LoadBalancerMonitor::emodel
protected

Definition at line 71 of file loadbalancer.h.

Referenced by oofem::WallClockLoadBalancerMonitor::decide().

FloatArray oofem::LoadBalancerMonitor::nodeWeights
protected

Definition at line 72 of file loadbalancer.h.

Referenced by oofem::WallClockLoadBalancerMonitor::decide().

bool oofem::LoadBalancerMonitor::staticNodeWeightFlag
protected

Definition at line 73 of file loadbalancer.h.

Referenced by oofem::WallClockLoadBalancerMonitor::decide().


The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:37 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011