Classe de base d'un service d'équilibrage de charge. Plus de détails...
#include <arcane/std/MeshPartitionerBase.h>
Types publics | |
enum | eMarkCellWithConstraint { eCellClassical , eCellReference , eCellGrouped , eCellGhost , eCellInAConstraint } |
Fonctions membres publiques | |
MeshPartitionerBase (const ServiceBuildInfo &sbi) | |
ISubDomain * | subDomain () const |
IMesh * | mesh () const |
Maillage associé au partitionneur. | |
void | setMaximumComputationTime (Real v) override |
Positionne la proportion du temps de calcul. | |
virtual Real | maximumComputationTime () const |
virtual void | setImbalance (Real v) |
Positionne le déséquilibre de temps de calcul. | |
virtual Real | imbalance () const |
Déséquilibre de temps de calcul. | |
virtual void | setMaxImbalance (Real v) |
Positionne le déséquilibre maximal autorisé | |
virtual Real | maxImbalance () const |
Déséquilibre maximal autorisé | |
virtual void | setComputationTimes (RealConstArrayView v) |
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). | |
virtual RealConstArrayView | computationTimes () const |
virtual void | setCellsWeight (ArrayView< float > weights, Integer nb_weight) |
Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant. | |
virtual ArrayView< float > | cellsWeight () const |
virtual Integer | nbCellWeight () const |
virtual void | setILoadBalanceMng (ILoadBalanceMng *mng) |
Change le ILoadBalanceMng à utiliser. | |
virtual ILoadBalanceMng * | loadBalanceMng () const |
virtual void | notifyEndPartition () |
Notification lors de la fin d'un repartionnement (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 | |
virtual | ~AbstractService () |
Destructeur. | |
virtual void | build () |
Construction de niveau build du service. | |
virtual IServiceInfo * | serviceInfo () const |
Accès aux informations du service. | |
virtual IBase * | serviceParent () const |
Accès à l'interface de base des principaux objets Arcane. | |
virtual IService * | serviceInterface () |
Retourne l'interface bas niveau IService du service. | |
Fonctions membres publiques hérités de Arccore::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 | ~IMeshPartitioner () |
Libère les ressources. | |
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 () |
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 Arccore::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 |
RealUniqueArray | 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 |
Int32UniqueArray | m_local_id_2_local_id_compacted |
VariableCellInt64 * | m_unique_id_reference = nullptr |
Int32UniqueArray | m_check |
Classe de base d'un service d'équilibrage de charge.
Définition à la ligne 45 du fichier MeshPartitionerBase.h.
enum Arcane::MeshPartitionerBase::eMarkCellWithConstraint |
Définition à la ligne 96 du fichier MeshPartitionerBase.h.
|
explicit |
Définition à la ligne 53 du fichier MeshPartitionerBase.cc.
|
override |
Définition à la ligne 74 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 423 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 650 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 681 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 281 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 786 du fichier MeshPartitionerBase.cc.
|
private |
Définition à la ligne 148 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 201 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 251 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
info()<<"m_local_id_2_local_id_compacted["<<icell->localId()<<"(gid:"<<icell->uniqueId()<<")] = "<<index-1;
Définition à la ligne 339 du fichier MeshPartitionerBase.cc.
Références ENUMERATE_CELL.
|
protectedvirtual |
Définition à la ligne 368 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 291 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 314 du fichier MeshPartitionerBase.cc.
Définition à la ligne 157 du fichier MeshPartitionerBase.h.
|
virtual |
Définition à la ligne 622 du fichier MeshPartitionerBase.cc.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 780 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 629 du fichier MeshPartitionerBase.cc.
Définition à la ligne 704 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 712 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 720 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 98 du fichier MeshPartitionerBase.cc.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh().
|
protectedvirtual |
Définition à la ligne 89 du fichier MeshPartitionerBase.cc.
|
inlinevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 70 du fichier MeshPartitionerBase.h.
Dump les informations de repartitionnement sur le disque.
Définition à la ligne 839 du fichier MeshPartitionerBase.cc.
Références ENUMERATE_CELL, Arccore::Array< T >::fill(), Arcane::IParallelMng::reduce(), et Arcane::IParallelMng::waitAllRequests().
|
virtual |
Définition à la ligne 130 du fichier MeshPartitionerBase.cc.
|
protectedvirtual |
Définition à la ligne 83 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 474 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 583 du fichier MeshPartitionerBase.cc.
Définition à la ligne 144 du fichier MeshPartitionerBase.h.
Définition à la ligne 146 du fichier MeshPartitionerBase.h.
|
inlinevirtual |
Déséquilibre de temps de calcul.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 64 du fichier MeshPartitionerBase.h.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh().
Définition à la ligne 107 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 608 du fichier MeshPartitionerBase.cc.
|
inlinevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 78 du fichier MeshPartitionerBase.h.
|
virtual |
Définition à la ligne 594 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 600 du fichier MeshPartitionerBase.cc.
|
inlinevirtual |
Déséquilibre maximal autorisé
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 67 du fichier MeshPartitionerBase.h.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh().
|
inlinevirtual |
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 61 du fichier MeshPartitionerBase.h.
|
inlinevirtual |
Maillage associé au partitionneur.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 57 du fichier MeshPartitionerBase.h.
Référencé par Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::ZoltanMeshPartitioner::partitionMesh(), et Arcane::PTScotchMeshPartitioner::partitionMesh().
|
virtual |
Définition à la ligne 773 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 404 du fichier MeshPartitionerBase.cc.
|
virtual |
Définition à la ligne 396 du fichier MeshPartitionerBase.cc.
Notification lors de la fin d'un repartionnement (après échange des entités)
Implémente Arcane::IMeshPartitionerBase.
Réimplémentée dans Arcane::ZoltanMeshPartitioner.
Définition à la ligne 83 du fichier MeshPartitionerBase.h.
|
virtual |
Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 748 du fichier MeshPartitionerBase.cc.
Références ENUMERATE_CELL.
|
inlinevirtual |
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 69 du fichier MeshPartitionerBase.h.
|
inlinevirtual |
Change le ILoadBalanceMng à utiliser.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 77 du fichier MeshPartitionerBase.h.
Positionne le déséquilibre de temps de calcul.
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 63 du fichier MeshPartitionerBase.h.
Positionne le déséquilibre maximal autorisé
Implémente Arcane::IMeshPartitioner.
Définition à la ligne 66 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 60 du fichier MeshPartitionerBase.h.
|
inline |
Définition à la ligne 56 du fichier MeshPartitionerBase.h.
|
protected |
Définition à la ligne 185 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 198 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 199 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 206 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 195 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 190 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 189 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 202 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 194 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 192 du fichier MeshPartitionerBase.h.
Définition à la ligne 180 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 200 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 181 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 179 du fichier MeshPartitionerBase.h.
|
private |
Définition à la ligne 203 du fichier MeshPartitionerBase.h.