14#include "arcane/utils/NotImplementedException.h"
15#include "arcane/utils/CheckedConvert.h"
17#include "arcane/core/IParallelMng.h"
18#include "arcane/core/IMeshBuilderCustomiser.h"
19#include "arcane/core/MeshBuildInfo.h"
21#include "arcane/impl/ArcaneParallelMngSplitterMeshBuilderCustomiser_axl.h"
32class ArcaneParallelMngSplitterMeshBuilderCustomiser
37 explicit ArcaneParallelMngSplitterMeshBuilderCustomiser(
const ServiceBuildInfo& sbi)
47 ARCANE_FATAL(
"subset-ratio '{0}' is strictly positive",divider);
53 for (
Int32 i = 0; i < nb_rank; ++i) {
54 if ((i % divider) == 0)
57 info() <<
"Splitting IParallelMng my_rank=" << my_rank;
58 info() <<
"RanksToKeep=" << kept_ranks;
61 info() <<
"Rank=" << my_rank <<
" RankAfter=" << new_pm.
get()->commRank();
63 info() <<
"Rank=" << my_rank <<
": I am not in the new IParallelMng";
72ARCANE_REGISTER_SERVICE_ARCANEPARALLELMNGSPLITTERMESHBUILDERCUSTOMISER(ArcaneParallelMngSplitterMeshBuilderCustomiser,
73 ArcaneParallelMngSplitterMeshBuilderCustomiser);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
ArcaneArcaneParallelMngSplitterMeshBuilderCustomiserObject(const Arcane::ServiceBuildInfo &sbi)
Constructeur.
CaseOptionsArcaneParallelMngSplitterMeshBuilderCustomiser * options() const
Options du jeu de données du service.
void applyCustomisation(MeshBuildInfo &build_info) override
Modifie build_info pour personnaliser la création du maillage.
void reserve(Int64 new_capacity)
Réserve le mémoire pour new_capacity éléments.
void add(ConstReferenceType val)
Ajoute l'élément val à la fin du tableau.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
virtual Int32 commSize() const =0
Nombre d'instance dans le communicateur.
virtual Ref< IParallelMng > createSubParallelMngRef(Int32ConstArrayView kept_ranks)=0
Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.
virtual IParallelMng * parallelMng()=0
Retourne le gestionnaire de parallélisme.
Paramètres nécessaires à la construction d'un maillage.
MeshBuildInfo & addParallelMng(Ref< IParallelMng > pm)
Positionne le gestionnaire de parallélisme pour créér la maillage.
InstanceType * get() const
Instance associée ou nullptr si aucune.
Référence à une instance.
ISubDomain * subDomain() const
Accès au ISubDomain associé.
Structure contenant les informations pour créer un service.
TraceMessage info() const
Flot pour un message d'information.
Vecteur 1D de données avec sémantique par valeur (style STL).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int32_t Int32
Type entier signé sur 32 bits.