Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ArcaneLoadBalanceModule Class Reference

Load balancing module. More...

Inheritance diagram for Arcane::ArcaneLoadBalanceModule:
Collaboration diagram for Arcane::ArcaneLoadBalanceModule:

Public Member Functions

 ArcaneLoadBalanceModule (const ModuleBuildInfo &mb)
virtual VersionInfo versionInfo () const
 Module version.
void checkLoadBalance ()
 points d'entrée
void loadBalanceInit ()
Public Member Functions inherited from Arcane::ArcaneArcaneLoadBalanceObject
 ArcaneArcaneLoadBalanceObject (const Arcane::ModuleBuildInfo &mb)
CaseOptionsArcaneLoadBalanceoptions () const
 Options du jeu de données du module.
Public Member Functions inherited from Arcane::BasicModule
 ~BasicModule () override
 Destructor.
Public Member Functions inherited from Arcane::AbstractModule
 AbstractModule (const ModuleBuildInfo &)
 Constructor from a ModuleBuildInfo.
virtual ~AbstractModule ()
 Destructor.
String name () const override
 Module name.
ISessionsession () const override
 Session associated with the module.
ISubDomainsubDomain () const override
 Sub-domain associated with the module.
IMeshdefaultMesh () const override
 Default mesh for this module.
MeshHandle defaultMeshHandle () const override
 Default mesh for this module.
IParallelMngparallelMng () const override
 Message passing parallelism manager.
IAcceleratorMngacceleratorMng () const override
 Accelerator manager.
ITraceMngtraceMng () const override
 Trace manager.
void setUsed (bool v) override
 Sets the module usage flag.
bool used () const override
 Returns the module usage status.
void setDisabled (bool v) override
 Sets the module activation flag.
bool disabled () const override
 Returns the module activation status.
bool isGarbageCollected () const override
 Indicates if the module uses a Garbage collection system.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::IModule
virtual ~IModule ()
 Destructor.
Public Member Functions inherited from Arcane::MeshAccessor
 MeshAccessor (ISubDomain *sd)
 MeshAccessor (IMesh *mesh)
 MeshAccessor (const MeshHandle &mesh_handle)
Integer nbCell () const
 Returns the number of cells in the mesh.
Integer nbFace () const
 Returns the number of faces in the mesh.
Integer nbEdge () const
 Returns the number of edges in the mesh.
Integer nbNode () const
 Returns the number of nodes in the mesh.
VariableNodeReal3nodesCoordinates () const
 Returns the coordinates of the mesh nodes.
NodeGroup allNodes () const
 Returns the group containing all nodes.
EdgeGroup allEdges () const
 Returns the group containing all edges.
FaceGroup allFaces () const
 Returns the group containing all faces.
CellGroup allCells () const
 Returns the group containing all cells.
FaceGroup outerFaces () const
 Returns the group containing all boundary faces.
NodeGroup ownNodes () const
 Returns the group containing all nodes specific to this domain.
CellGroup ownCells () const
 Returns the group containing all cells specific to this domain.
FaceGroup ownFaces () const
 Group containing all faces specific to this domain.
EdgeGroup ownEdges () const
 Group containing all edges specific to this domain.
IMeshmesh () const
const MeshHandlemeshHandle () const
Public Member Functions inherited from Arcane::CommonVariables
 CommonVariables (IModule *c)
 Constructs the references of the common variables for the module c.
 CommonVariables (IVariableMng *variable_mng)
 Constructs the references of the common variables for the manager variable_mng.
 CommonVariables (ISubDomain *sd)
 Constructs the references of the common variables for the subdomain sd.
virtual ~CommonVariables ()
 Releases resources.
Int32 globalIteration () const
 Current iteration number.
Real globalTime () const
 Current time.
Real globalOldTime () const
 Previous current time.
Real globalFinalTime () const
 Final time of the simulation.
Real globalDeltaT () const
 Current Delta T.
Real globalCPUTime () const
 CPU time used (in seconds).
Real globalOldCPUTime () const
 Previous CPU time used (in seconds).
Real globalElapsedTime () const
 Clock time (elapsed) used (in seconds).
Real globalOldElapsedTime () const
 Previous clock time (elapsed) used (in seconds).

Private Member Functions

void _checkInit ()
Real _computeImbalance ()
void _computeWeights (RealConstArrayView compute_times, Real max_compute_time)
 Calculates the weight of each mesh cell and stores it in m_cells_weight.

Private Attributes

VariableScalarReal m_elapsed_computation_time
Real m_computation_time
 Computation time since the last balancing Note: this value must be synchronized.
Integer m_nb_weight
UniqueArray< float > m_cells_weight

Additional Inherited Members

Static Public Member Functions inherited from Arcane::ArcaneArcaneLoadBalanceObject
static void fillServiceInfo (Arcane::ServiceInfo *si)
Static Public Member Functions inherited from Arcane::AbstractModule
static void staticInitialize (ISubDomain *sd)
 Initialization of the module for the sub-domain sd.
Public Attributes inherited from Arcane::CommonVariables
VariableScalarInt32 m_global_iteration
 Current iteration.
VariableScalarReal m_global_time
 Current time.
VariableScalarReal m_global_deltat
 Global Delta T.
VariableScalarReal m_global_old_time
 Time previous to the current time.
VariableScalarReal m_global_old_deltat
 Delta T at the time previous to the global time.
VariableScalarReal m_global_final_time
 Final time of the case.
VariableScalarReal m_global_old_cpu_time
 Previous CPU time used (in seconds).
VariableScalarReal m_global_cpu_time
 CPU time used (in seconds).
VariableScalarReal m_global_old_elapsed_time
 Previous clock time used (in seconds).
VariableScalarReal m_global_elapsed_time
 Clock time used (in seconds).
Protected Member Functions inherited from Arcane::BasicModule
 BasicModule (const ModuleBuildInfo &)
 Constructor from a ModuleBuildInfo.
Protected Member Functions inherited from Arcane::AbstractModule
void _setVersionInfo (const VersionInfo &vi)
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

Load balancing module.

Definition at line 47 of file ArcaneLoadBalanceModule.cc.

Constructor & Destructor Documentation

◆ ArcaneLoadBalanceModule()

Arcane::ArcaneLoadBalanceModule::ArcaneLoadBalanceModule ( const ModuleBuildInfo & mb)

Definition at line 93 of file ArcaneLoadBalanceModule.cc.

◆ ~ArcaneLoadBalanceModule()

Arcane::ArcaneLoadBalanceModule::~ArcaneLoadBalanceModule ( )

Definition at line 108 of file ArcaneLoadBalanceModule.cc.

Member Function Documentation

◆ _checkInit()

void Arcane::ArcaneLoadBalanceModule::_checkInit ( )
private

Definition at line 126 of file ArcaneLoadBalanceModule.cc.

◆ _computeImbalance()

Real Arcane::ArcaneLoadBalanceModule::_computeImbalance ( )
private

Definition at line 277 of file ArcaneLoadBalanceModule.cc.

◆ _computeWeights()

void Arcane::ArcaneLoadBalanceModule::_computeWeights ( RealConstArrayView compute_times,
Real max_compute_time )
private

Calculates the weight of each mesh cell and stores it in m_cells_weight.

Definition at line 188 of file ArcaneLoadBalanceModule.cc.

References Arcane::IParallelMng::allGather(), Arcane::IParallelMng::commSize(), ENUMERATE_CELL, Arcane::TraceAccessor::info(), Arcane::math::isZero(), Arcane::IItemFamily::maxLocalId(), Arcane::ISubDomain::parallelMng(), Arcane::IParallelMng::reduce(), Arcane::MessagePassing::ReduceMax, Arcane::ConstArrayView< T >::size(), Arcane::ItemGroup::size(), and Arcane::AbstractModule::subDomain().

Referenced by checkLoadBalance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkLoadBalance()

void Arcane::ArcaneLoadBalanceModule::checkLoadBalance ( )
virtual

◆ loadBalanceInit()

void Arcane::ArcaneLoadBalanceModule::loadBalanceInit ( )
virtual

Implements Arcane::ArcaneArcaneLoadBalanceObject.

Definition at line 116 of file ArcaneLoadBalanceModule.cc.

◆ versionInfo()

virtual VersionInfo Arcane::ArcaneLoadBalanceModule::versionInfo ( ) const
inlinevirtual

Module version.

Reimplemented from Arcane::AbstractModule.

Definition at line 57 of file ArcaneLoadBalanceModule.cc.

Member Data Documentation

◆ m_cells_weight

UniqueArray<float> Arcane::ArcaneLoadBalanceModule::m_cells_weight
private

Definition at line 73 of file ArcaneLoadBalanceModule.cc.

◆ m_computation_time

Real Arcane::ArcaneLoadBalanceModule::m_computation_time
private

Computation time since the last balancing Note: this value must be synchronized.

Definition at line 70 of file ArcaneLoadBalanceModule.cc.

Referenced by checkLoadBalance().

◆ m_elapsed_computation_time

VariableScalarReal Arcane::ArcaneLoadBalanceModule::m_elapsed_computation_time
private

Definition at line 66 of file ArcaneLoadBalanceModule.cc.

◆ m_nb_weight

Integer Arcane::ArcaneLoadBalanceModule::m_nb_weight
private

Definition at line 72 of file ArcaneLoadBalanceModule.cc.


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