Classe de base d'un service d'équilibrage de charge. Plus de détails...
#include <arcane/std/MeshPartitionerBase.h>
Graphe d'héritage de Arcane::MeshPartitionerBase:
Graphe de collaboration de Arcane::MeshPartitionerBase:Types publics | |
| enum | eMarkCellWithConstraint { eCellClassical , eCellReference , eCellGrouped , eCellGhost , eCellInAConstraint } |
Fonctions membres publiques | |
| MeshPartitionerBase (const ServiceBuildInfo &sbi) | |
| ISubDomain * | subDomain () const |
| IMesh * | mesh () const override |
| Maillage associé au partitionneur. | |
| void | setMaximumComputationTime (Real v) override |
| Positionne la proportion du temps de calcul. | |
| Real | maximumComputationTime () const override |
| void | setImbalance (Real v) override |
| Positionne le déséquilibre de temps de calcul. | |
| Real | imbalance () const override |
| Déséquilibre de temps de calcul. | |
| void | setMaxImbalance (Real v) override |
| Positionne le déséquilibre maximal autorisé | |
| Real | maxImbalance () const override |
| Déséquilibre maximal autorisé | |
| void | setComputationTimes (RealConstArrayView v) override |
| Temps de calcul de se sous-domaine. Le premier élément indique le temps de calcul du sous-domaine correspondante aux calcul dont le cout est proportionnel aux mailles. Les suivants doivent être associées à une variable (à faire). | |
| RealConstArrayView | computationTimes () const override |
| void | setCellsWeight (ArrayView< float > weights, Integer nb_weight) override |
| Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant. | |
| ArrayView< float > | cellsWeight () const override |
| Integer | nbCellWeight () const |
| void | setILoadBalanceMng (ILoadBalanceMng *mng) override |
| Change le ILoadBalanceMng à utiliser. | |
| ILoadBalanceMng * | loadBalanceMng () const override |
| void | notifyEndPartition () override |
| Notification lors de la fin d'un re-partitionnement (après échange des entités) | |
| virtual void | changeOwnersFromCells () |
| Positionne les nouveaux propriétaires des noeuds, arêtes et faces à partir des mailles. | |
| virtual void | initConstraints (bool uidref=true) |
| virtual void | freeConstraints () |
| virtual Int32 | nbOwnCellsWithConstraints () const |
| virtual Real | getNeighbourCellsUidWithConstraints (Cell cell, Int64Array &neighbourcells, Array< float > *commWeights=NULL, bool noCellContrib=false) |
| virtual Integer | nbNeighbourCellsWithConstraints (Cell cell) |
| virtual void | getNeighbourNodesUidWithConstraints (Cell cell, Int64UniqueArray neighbournodes) |
| virtual Int32 | localIdWithConstraints (Cell cell) |
| virtual Int32 | localIdWithConstraints (Int32 cell_lid) |
| virtual void | invertArrayLid2LidCompacted () |
| virtual SharedArray< float > | cellsWeightsWithConstraints (Int32 max_nb_weight=0, bool ask_lb_cells=false) |
| virtual SharedArray< float > | cellsSizeWithConstraints () |
| virtual bool | cellUsedWithConstraints (Cell cell) |
| virtual bool | cellUsedWithWeakConstraints (std::pair< Int64, Int64 > &paired_item) |
| virtual void | changeCellOwner (Item cell, VariableItemInt32 &cells_new_owner, Int32 new_owner) |
| virtual bool | haveConstraints () |
| virtual bool | haveWeakConstraints () |
Fonctions membres publiques hérités de Arcane::AbstractService | |
| ~AbstractService () override | |
| Destructeur. | |
| virtual void | build () |
| Construction de niveau build du service. | |
| IServiceInfo * | serviceInfo () const override |
| Accès aux informations du service. Voir IServiceInfo pour les détails. | |
| IBase * | serviceParent () const override |
| Accès à l'interface de base des principaux objets Arcane. | |
| IService * | serviceInterface () override |
| Retourne l'interface bas niveau IService du service. | |
Fonctions membres publiques hérités de Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Construit un accesseur via le gestionnaire de trace m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Constructeur par recopie. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Opérateur de recopie. | |
| virtual | ~TraceAccessor () |
| Libère les ressources. | |
| ITraceMng * | traceMng () const |
| Gestionnaire de trace. | |
| TraceMessage | info () const |
| Flot pour un message d'information. | |
| TraceMessage | pinfo () const |
| Flot pour un message d'information en parallèle. | |
| TraceMessage | info (char category) const |
| Flot pour un message d'information d'une catégorie donnée. | |
| TraceMessage | pinfo (char category) const |
| Flot pour un message d'information parallèle d'une catégorie donnée. | |
| TraceMessage | info (bool v) const |
| Flot pour un message d'information. | |
| TraceMessage | warning () const |
| Flot pour un message d'avertissement. | |
| TraceMessage | pwarning () const |
| TraceMessage | error () const |
| Flot pour un message d'erreur. | |
| TraceMessage | perror () const |
| TraceMessage | log () const |
| Flot pour un message de log. | |
| TraceMessage | plog () const |
| Flot pour un message de log. | |
| TraceMessage | logdate () const |
| Flot pour un message de log précédé de la date. | |
| TraceMessage | fatal () const |
| Flot pour un message d'erreur fatale. | |
| TraceMessage | pfatal () const |
| Flot pour un message d'erreur fatale en parallèle. | |
| TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
| Flot pour un message de debug. | |
| Trace::eDebugLevel | configDbgLevel () const |
| Niveau debug du fichier de configuration. | |
| TraceMessage | info (Int32 verbose_level) const |
| Flot pour un message d'information d'un niveau donné | |
| TraceMessage | linfo () const |
| Flot pour un message d'information avec le niveau d'information local à cette instance. | |
| TraceMessage | linfo (Int32 relative_level) const |
| Flot pour un message d'information avec le niveau d'information local à cette instance. | |
| void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres publiques hérités de Arcane::IService | |
| virtual | ~IService () |
| Libère les ressources. | |
Fonctions membres publiques hérités de Arcane::IMeshPartitioner | |
| virtual void | build ()=0 |
| virtual void | partitionMesh (bool initial_partition, Int32 nb_part)=0 |
| virtual IPrimaryMesh * | primaryMesh () override |
| Maillage associé | |
| virtual void | partitionMesh (bool initial_partition)=0 |
Fonctions membres publiques hérités de Arcane::IMeshPartitionerBase | |
| virtual | ~IMeshPartitionerBase ()=default |
| Libère les ressources. | |
Fonctions membres protégées | |
| virtual void | dumpObject (String filename="toto") |
| Dump les informations de repartitionnement sur le disque. | |
| virtual void * | getCommunicator () const |
| virtual Parallel::Communicator | communicator () const |
| virtual bool | cellComm () |
| virtual void | _initArrayCellsWithConstraints () |
| virtual void | _initFilterLidCells () |
| virtual void | _initUidRef () |
| virtual void | _initUidRef (VariableCellInteger &cell_renum_uid) |
| virtual void | _initLid2LidCompacted () |
| virtual void | _initNbCellsWithConstraints () |
| virtual void | _clearCellWgt () |
| bool | _isNonManifoldMesh () const |
| Int32 | _meshDimension () const |
Fonctions membres protégées hérités de Arcane::AbstractService | |
| AbstractService (const ServiceBuildInfo &) | |
| Constructeur à partir d'un ServiceBuildInfo. | |
Fonctions membres protégées hérités de Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Fonctions membres protégées hérités de Arcane::IService | |
| IService () | |
| Constructeur. | |
Attributs protégés | |
| IItemFamily * | m_cell_family = nullptr |
Fonctions membres privées | |
| Real | _addNgb (const Cell &cell, const Face &face, Int64Array &neighbourcells, Array< bool > &contrib, HashTableMapT< Int64, Int32 > &map, Array< float > *ptrcommWeights, Int32 offset, HashTableMapT< Int32, Int32 > &lids, bool special=false) |
| bool | _createConstraintsLists (Int64MultiArray2 &tied_uid) |
| SharedArray< float > | _cellsProjectWeights (VariableCellArrayReal &cellWgtIn, Int32 nbWgt) const |
| SharedArray< float > | _cellsProjectWeights (VariableCellReal &cellWgtIn) const |
| void | _checkCreateVar () |
Attributs privés | |
| ISubDomain * | m_sub_domain = nullptr |
| IMesh * | m_mesh = nullptr |
| IParallelMng * | m_pm_sub = nullptr |
| ILoadBalanceMng * | m_lbMng = nullptr |
| ILoadBalanceMngInternal * | m_lb_mng_internal = nullptr |
| Real | m_maximum_computation_time = 0.0 |
| Real | m_imbalance = 0.0 |
| Real | m_max_imbalance = 0.0 |
| UniqueArray< Real > | m_computation_times |
| UniqueArray< SharedArray< Cell > > | m_cells_with_constraints |
| std::set< std::pair< Int64, Int64 > > | m_cells_with_weak_constraints |
| Integer | m_nb_cells_with_constraints = 0 |
| UniqueArray< eMarkCellWithConstraint > | m_filter_lid_cells |
| UniqueArray< Int32 > | m_local_id_2_local_id_compacted |
| VariableCellInt64 * | m_unique_id_reference = nullptr |
| UniqueArray< Int32 > | m_check |
| bool | m_is_non_manifold_mesh = false |
| Int32 | m_mesh_dimension = -1 |
Classe de base d'un service d'équilibrage de charge.
Définition à la ligne 39 du fichier MeshPartitionerBase.h.
| enum Arcane::MeshPartitionerBase::eMarkCellWithConstraint |
Définition à la ligne 90 du fichier MeshPartitionerBase.h.
|
explicit |
Définition à la ligne 54 du fichier MeshPartitionerBase.cc.
|
override |
Définition à la ligne 71 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 428 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 676 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 707 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 286 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 811 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 151 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 204 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 256 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
info()<<"m_local_id_2_local_id_compacted["<<icell->localId()<<"(gid:"<<icell->uniqueId()<<")] = "<<index-1;
Définition à la ligne 344 du fichier MeshPartitionerBase.cc.
Références ENUMERATE_CELL.
|
protectedvirtual |
Définition à la ligne 373 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 296 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 319 du fichier MeshPartitionerBase.cc.
|
inlineprotected |
Définition à la ligne 163 du fichier MeshPartitionerBase.h.
|
inlineprotected |
Définition à la ligne 164 du fichier MeshPartitionerBase.h.
|
inlineprotectedvirtual |
Définition à la ligne 149 du fichier MeshPartitionerBase.h.
|
virtual |
Définition à la ligne 648 du fichier MeshPartitionerBase.cc.
|
overridevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 805 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 655 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 730 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 738 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 746 du fichier MeshPartitionerBase.cc.
|
virtual |
Positionne les nouveaux propriétaires des noeuds, arêtes et faces à partir des mailles.
En considérant que les nouveaux propriétaires des mailles sont connues (et synchronisées), détermine les nouveaux propriétaires des autres entités.
Définition à la ligne 99 du fichier MeshPartitionerBase.cc.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::SplitSDMeshPartitioner::ConnexifieDomaine(), Arcane::SplitSDMeshPartitioner::Equilibrage(), et Arcane::SplitSDMeshPartitioner::init().
Voici le graphe des appelants de cette fonction :
|
protectedvirtual |
Définition à la ligne 90 du fichier MeshPartitionerBase.cc.
|
inlineoverridevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 64 du fichier MeshPartitionerBase.h.
|
protectedvirtual |
Dump les informations de repartitionnement sur le disque.
Définition à la ligne 866 du fichier MeshPartitionerBase.cc.
Références Arcane::Array< DataType >::add(), Arcane::centralizePartInfo(), dumpObject(), ENUMERATE_CELL, Arcane::Array< DataType >::fill(), mesh(), Arcane::IParallelMng::reduce(), Arcane::MessagePassing::ReduceSum, Arcane::AbstractArray< T >::size(), Arcane::Convert::toDouble(), Arcane::StringBuilder::toString(), et Arcane::IParallelMng::waitAllRequests().
Référencé par dumpObject().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
virtual |
Définition à la ligne 133 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 81 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 479 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 609 du fichier MeshPartitionerBase.cc.
|
inlinevirtual |
Définition à la ligne 138 du fichier MeshPartitionerBase.h.
|
inlinevirtual |
Définition à la ligne 140 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Déséquilibre de temps de calcul.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 58 du fichier MeshPartitionerBase.h.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh().
Voici le graphe des appelants de cette fonction :
|
virtual |
Définition à la ligne 108 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 634 du fichier MeshPartitionerBase.cc.
|
inlineoverridevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 72 du fichier MeshPartitionerBase.h.
Définition à la ligne 620 du fichier MeshPartitionerBase.cc.
Définition à la ligne 626 du fichier MeshPartitionerBase.cc.
|
inlineoverridevirtual |
Déséquilibre maximal autorisé
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 61 du fichier MeshPartitionerBase.h.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh(), et Arcane::SplitSDMeshPartitioner::Equilibrage().
Voici le graphe des appelants de cette fonction :
|
inlineoverridevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 55 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Maillage associé au partitionneur.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 51 du fichier MeshPartitionerBase.h.
Référencé par dumpObject().
Voici le graphe des appelants de cette fonction :| Integer Arcane::MeshPartitionerBase::nbCellWeight | ( | ) | const |
Définition à la ligne 799 du fichier MeshPartitionerBase.cc.
Définition à la ligne 409 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 401 du fichier MeshPartitionerBase.cc.
|
inlineoverridevirtual |
Notification lors de la fin d'un re-partitionnement (après échange des entités)
Implémente Arcane::IMeshPartitionerBase.
Réimplémentée dans Arcane::ZoltanMeshPartitioner.
Définition à la ligne 77 du fichier MeshPartitionerBase.h.
|
overridevirtual |
Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 774 du fichier MeshPartitionerBase.cc.
Références ENUMERATE_CELL, Arcane::IVariable::PExecutionDepend, Arcane::IVariable::PNoDump, Arcane::IVariable::PTemporary, setCellsWeight(), et Arcane::StringBuilder::toString().
Référencé par setCellsWeight().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
inlineoverridevirtual |
Temps de calcul de se sous-domaine. Le premier élément indique le temps de calcul du sous-domaine correspondante aux calcul dont le cout est proportionnel aux mailles. Les suivants doivent être associées à une variable (à faire).
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 63 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Change le ILoadBalanceMng à utiliser.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 71 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Positionne le déséquilibre de temps de calcul.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 57 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Positionne le déséquilibre maximal autorisé
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 60 du fichier MeshPartitionerBase.h.
|
inlineoverridevirtual |
Positionne la proportion du temps de calcul.
Proportion du temps de calcul Temps de calcul du sous-domaine le plus chargé
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 54 du fichier MeshPartitionerBase.h.
|
inline |
Définition à la ligne 50 du fichier MeshPartitionerBase.h.
|
protected |
Définition à la ligne 184 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 197 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 198 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 205 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 194 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 200 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 192 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 206 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 189 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 188 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 201 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 193 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 191 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 179 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 207 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 199 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 180 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 178 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 202 du fichier MeshPartitionerBase.h.