Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::IParallelMngabstract

Interface du gestionnaire de parallélisme pour un sous-domaine. Plus de détails...

#include <arcane/core/IParallelMng.h>

+ Graphe d'héritage de Arcane::IParallelMng:
+ Graphe de collaboration de Arcane::IParallelMng:

Types publics

typedef Parallel::Request Request
 
using PointToPointMessageInfo = Parallel::PointToPointMessageInfo
 
using MessageId = Parallel::MessageId
 
using MessageSourceInfo = Parallel::MessageSourceInfo
 
typedef Parallel::eReduceType eReduceType
 
typedef Parallel::IStat IStat
 

Fonctions membres publiques

virtual ~IParallelMng ()=default
 Libère les ressources.
 
virtual void build ()=0
 Construit l'instance.
 
virtual bool isParallel () const =0
 Retourne true si l'exécution est parallèle.
 
virtual Int32 commRank () const =0
 Rang de cette instance dans le communicateur.
 
virtual Int32 commSize () const =0
 Nombre d'instance dans le communicateur.
 
virtual voidgetMPICommunicator ()=0
 Adresse du communicateur MPI associé à ce gestionnaire.
 
virtual ARCANE_DEPRECATED_120 voidmpiCommunicator ()
 Adresse du communicateur MPI associé à ce gestionnaire.
 
virtual Parallel::Communicator communicator () const =0
 Communicateur MPI associé à ce gestionnaire.
 
virtual bool isThreadImplementation () const =0
 Indique si l'implémentation utilise les threads.
 
virtual bool isHybridImplementation () const =0
 Indique si l'implémentation utilise le mode hybride.
 
virtual void setTimeStats (ITimeStats *time_stats)=0
 Positionne le gestionnaire de statistiques.
 
virtual ITimeStatstimeStats () const =0
 Gestionnaire de statistiques associé (peut être nul)
 
virtual ITraceMngtraceMng () const =0
 Gestionnaire de traces.
 
virtual IThreadMngthreadMng () const =0
 Gestionnaire de threads.
 
virtual ITimerMngtimerMng () const =0
 Gestionnaire de timers.
 
virtual IIOMngioMng () const =0
 Gestionnaire des entrées/sorties.
 
virtual IParallelMngworldParallelMng () const =0
 Gestionnaire de parallélisme sur l'ensemble des ressources allouées.
 
virtual void initialize ()=0
 Initialise le gestionnaire du parallélisme.
 
virtual ITimeMetricCollectortimeMetricCollector () const =0
 Collecteur Arccore des statistiques temporelles (peut être nul)
 
virtual bool isMasterIO () const =0
 true si l'instance est un gestionnaire maître des entrées/sorties.
 
virtual Integer masterIORank () const =0
 Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
 
allGather
virtual void allGather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0
 Effectue un regroupement sur tous les processeurs. Il s'agit d'une opération collective. Le tableau send_buf doit avoir la même taille, notée n, pour tous les processeurs et le tableau recv_buf doit avoir une taille égale au nombre de processeurs multiplié par n.
 
virtual void allGather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf)=0
 
virtual void allGather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf)=0
 
virtual void allGather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf)=0
 
virtual void allGather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf)=0
 
virtual void allGather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf)=0
 
virtual void allGather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf)=0
 
virtual void allGather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf)=0
 
virtual void allGather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf)=0
 
virtual void allGather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf)=0
 
virtual void allGather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf)=0
 
virtual void allGather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf)=0
 
virtual void allGather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf)=0
 
virtual void allGather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf)=0
 
virtual void allGather (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf)=0
 
virtual void allGather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf)=0
 
virtual void allGather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf)=0
 
virtual void allGather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf)=0
 
virtual void allGather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf)=0
 
virtual void allGather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf)=0
 
virtual void allGather (ISerializer *send_serializer, ISerializer *recv_serializer)=0
 
gather
virtual void gather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
 Effectue un regroupement sur un processeurs. Il s'agit d'une opération collective. Le tableau send_buf doit avoir la même taille, notée n, pour tous les processeurs et le tableau recv_buf pour le processeur rank doit avoir une taille égale au nombre de processeurs multiplié par n. Ce tableau recv_buf est inutilisé pour les autres rangs que rank.
 
virtual void gather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Int32 rank)=0
 
virtual void gather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Int32 rank)=0
 
allGather variable
virtual void gatherVariable (ConstArrayView< char > send_buf, Array< char > &recv_buf, Int32 rank)=0
 Effectue un regroupement sur tous les processeurs.
 
virtual void gatherVariable (ConstArrayView< signed char > send_buf, Array< signed char > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< unsigned char > send_buf, Array< unsigned char > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< short > send_buf, Array< short > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< unsigned short > send_buf, Array< unsigned short > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< int > send_buf, Array< int > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< unsigned int > send_buf, Array< unsigned int > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< long > send_buf, Array< long > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< unsigned long > send_buf, Array< unsigned long > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< long long > send_buf, Array< long long > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< unsigned long long > send_buf, Array< unsigned long long > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< float > send_buf, Array< float > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< double > send_buf, Array< double > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< long double > send_buf, Array< long double > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< APReal > send_buf, Array< APReal > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< Real2 > send_buf, Array< Real2 > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< Real3 > send_buf, Array< Real3 > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< Real2x2 > send_buf, Array< Real2x2 > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< Real3x3 > send_buf, Array< Real3x3 > &recv_buf, Int32 rank)=0
 
virtual void gatherVariable (ConstArrayView< HPReal > send_buf, Array< HPReal > &recv_buf, Int32 rank)=0
 
virtual void allGatherVariable (ConstArrayView< char > send_buf, Array< char > &recv_buf)=0
 Effectue un regroupement sur tous les processeurs.
 
virtual void allGatherVariable (ConstArrayView< signed char > send_buf, Array< signed char > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< unsigned char > send_buf, Array< unsigned char > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< short > send_buf, Array< short > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< unsigned short > send_buf, Array< unsigned short > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< int > send_buf, Array< int > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< unsigned int > send_buf, Array< unsigned int > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< long > send_buf, Array< long > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< unsigned long > send_buf, Array< unsigned long > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< long long > send_buf, Array< long long > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< unsigned long long > send_buf, Array< unsigned long long > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< float > send_buf, Array< float > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< double > send_buf, Array< double > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< long double > send_buf, Array< long double > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< APReal > send_buf, Array< APReal > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< Real2 > send_buf, Array< Real2 > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< Real3 > send_buf, Array< Real3 > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< Real2x2 > send_buf, Array< Real2x2 > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< Real3x3 > send_buf, Array< Real3x3 > &recv_buf)=0
 
virtual void allGatherVariable (ConstArrayView< HPReal > send_buf, Array< HPReal > &recv_buf)=0
 
opérations de réduction sur un scalaire
virtual void scatterVariable (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer root)=0
 Scinde un tableau sur plusieurs processeurs.
 
virtual void scatterVariable (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer root)=0
 
virtual void scatterVariable (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer root)=0
 
virtual char reduce (eReduceType rt, char v)=0
 Effectue la réduction de type rt sur le réel v et retourne la valeur.
 
virtual signed char reduce (eReduceType rt, signed char v)=0
 
virtual unsigned char reduce (eReduceType rt, unsigned char v)=0
 
virtual short reduce (eReduceType rt, short v)=0
 
virtual unsigned short reduce (eReduceType rt, unsigned short v)=0
 
virtual int reduce (eReduceType rt, int v)=0
 
virtual unsigned int reduce (eReduceType rt, unsigned int v)=0
 
virtual long reduce (eReduceType rt, long v)=0
 
virtual unsigned long reduce (eReduceType rt, unsigned long v)=0
 
virtual long long reduce (eReduceType rt, long long v)=0
 
virtual unsigned long long reduce (eReduceType rt, unsigned long long v)=0
 
virtual float reduce (eReduceType rt, float v)=0
 
virtual double reduce (eReduceType rt, double v)=0
 
virtual long double reduce (eReduceType rt, long double v)=0
 
virtual APReal reduce (eReduceType rt, APReal v)=0
 
virtual Real2 reduce (eReduceType rt, Real2 v)=0
 
virtual Real3 reduce (eReduceType rt, Real3 v)=0
 
virtual Real2x2 reduce (eReduceType rt, Real2x2 v)=0
 
virtual Real3x3 reduce (eReduceType rt, Real3x3 v)=0
 
virtual HPReal reduce (eReduceType rt, HPReal v)=0
 
virtual void computeMinMaxSum (char val, char &min_val, char &max_val, char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 Calcule en une opération la somme, le min, le max d'une valeur.
 
virtual void computeMinMaxSum (signed char val, signed char &min_val, signed char &max_val, signed char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (unsigned char val, unsigned char &min_val, unsigned char &max_val, unsigned char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (short val, short &min_val, short &max_val, short &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (unsigned short val, unsigned short &min_val, unsigned short &max_val, unsigned short &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (int val, int &min_val, int &max_val, int &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (unsigned int val, unsigned int &min_val, unsigned int &max_val, unsigned int &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (long val, long &min_val, long &max_val, long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (unsigned long val, unsigned long &min_val, unsigned long &max_val, unsigned long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (long long val, long long &min_val, long long &max_val, long long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (unsigned long long val, unsigned long long &min_val, unsigned long long &max_val, unsigned long long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (float val, float &min_val, float &max_val, float &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (double val, double &min_val, double &max_val, double &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (long double val, long double &min_val, long double &max_val, long double &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (APReal val, APReal &min_val, APReal &max_val, APReal &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (Real2 val, Real2 &min_val, Real2 &max_val, Real2 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (Real3 val, Real3 &min_val, Real3 &max_val, Real3 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (Real2x2 val, Real2x2 &min_val, Real2x2 &max_val, Real2x2 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (Real3x3 val, Real3x3 &min_val, Real3x3 &max_val, Real3x3 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
virtual void computeMinMaxSum (HPReal val, HPReal &min_val, HPReal &max_val, HPReal &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 
opérations de réduction sur un vecteur
virtual void computeMinMaxSum (ConstArrayView< char > values, ArrayView< char > min_values, ArrayView< char > max_values, ArrayView< char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 Calcule en une opération la somme, le min, le max d'une valeur.
 
virtual void computeMinMaxSum (ConstArrayView< signed char > values, ArrayView< signed char > min_values, ArrayView< signed char > max_values, ArrayView< signed char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< unsigned char > values, ArrayView< unsigned char > min_values, ArrayView< unsigned char > max_values, ArrayView< unsigned char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< short > values, ArrayView< short > min_values, ArrayView< short > max_values, ArrayView< short > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< unsigned short > values, ArrayView< unsigned short > min_values, ArrayView< unsigned short > max_values, ArrayView< unsigned short > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< int > values, ArrayView< int > min_values, ArrayView< int > max_values, ArrayView< int > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< unsigned int > values, ArrayView< unsigned int > min_values, ArrayView< unsigned int > max_values, ArrayView< unsigned int > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< long > values, ArrayView< long > min_values, ArrayView< long > max_values, ArrayView< long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< unsigned long > values, ArrayView< unsigned long > min_values, ArrayView< unsigned long > max_values, ArrayView< unsigned long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< long long > values, ArrayView< long long > min_values, ArrayView< long long > max_values, ArrayView< long long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< unsigned long long > values, ArrayView< unsigned long long > min_values, ArrayView< unsigned long long > max_values, ArrayView< unsigned long long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< float > values, ArrayView< float > min_values, ArrayView< float > max_values, ArrayView< float > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< double > values, ArrayView< double > min_values, ArrayView< double > max_values, ArrayView< double > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< long double > values, ArrayView< long double > min_values, ArrayView< long double > max_values, ArrayView< long double > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< APReal > values, ArrayView< APReal > min_values, ArrayView< APReal > max_values, ArrayView< APReal > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< Real2 > values, ArrayView< Real2 > min_values, ArrayView< Real2 > max_values, ArrayView< Real2 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< Real3 > values, ArrayView< Real3 > min_values, ArrayView< Real3 > max_values, ArrayView< Real3 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< Real2x2 > values, ArrayView< Real2x2 > min_values, ArrayView< Real2x2 > max_values, ArrayView< Real2x2 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< Real3x3 > values, ArrayView< Real3x3 > min_values, ArrayView< Real3x3 > max_values, ArrayView< Real3x3 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
virtual void computeMinMaxSum (ConstArrayView< HPReal > values, ArrayView< HPReal > min_values, ArrayView< HPReal > max_values, ArrayView< HPReal > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 
opérations de réduction sur un tableau
virtual void reduce (eReduceType rt, ArrayView< char > v)=0
 Effectue la réduction de type rt sur le tableau v.
 
virtual void reduce (eReduceType rt, ArrayView< signed char > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< unsigned char > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< short > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< unsigned short > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< int > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< unsigned int > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< long > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< unsigned long > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< long long > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< unsigned long long > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< float > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< double > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< long double > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< APReal > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< Real2 > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< Real3 > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< Real2x2 > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< Real3x3 > v)=0
 
virtual void reduce (eReduceType rt, ArrayView< HPReal > v)=0
 
opérations de broadcast

Envoie un tableau de valeurs sur tous les sous-domaines.

Cette opération envoie le tableau de valeur send_buf sur tous les sous-domaines. Le tableau utilisé est celui dont le rang (commRank) est rank. Tous les sous-domaines participants doivent appelés cette méthode avec le même paramètre rank et avoir un tableau send_buf contenant le même nombre d'éléments.

virtual void broadcast (ArrayView< char > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< signed char > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< unsigned char > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< short > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< unsigned short > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< int > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< unsigned int > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< long > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< unsigned long > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< long long > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< unsigned long long > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< float > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< double > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< long double > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< APReal > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< Real2 > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< Real3 > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< Real2x2 > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< Real3x3 > send_buf, Int32 rank)=0
 
virtual void broadcast (ArrayView< HPReal > send_buf, Int32 rank)=0
 
virtual void broadcastString (String &str, Int32 rank)=0
 
virtual void broadcastSerializer (ISerializer *values, Int32 rank)=0
 
virtual void broadcastMemoryBuffer (ByteArray &bytes, Int32 rank)=0
 Effectue un broadcast d'une zone mémoire.
 
opérations d'envoie de messages

Envoie bloquant d'un tableau de valeurs à un sous-domaine.

Envoie les valeurs du tableau values au sous-domaine rank. Le sous-domaine doit effectuer une réception correspondante (le numéro de sous-domaine doit être celui de ce gestionnaire et le type et la taille du tableau doit correspondre) avec la fonction recvValues(). L'envoie est bloquant.

virtual void send (ConstArrayView< char > values, Int32 rank)=0
 
virtual void send (ConstArrayView< signed char > values, Int32 rank)=0
 
virtual void send (ConstArrayView< unsigned char > values, Int32 rank)=0
 
virtual void send (ConstArrayView< short > values, Int32 rank)=0
 
virtual void send (ConstArrayView< unsigned short > values, Int32 rank)=0
 
virtual void send (ConstArrayView< int > values, Int32 rank)=0
 
virtual void send (ConstArrayView< unsigned int > values, Int32 rank)=0
 
virtual void send (ConstArrayView< long > values, Int32 rank)=0
 
virtual void send (ConstArrayView< unsigned long > values, Int32 rank)=0
 
virtual void send (ConstArrayView< long long > values, Int32 rank)=0
 
virtual void send (ConstArrayView< unsigned long long > values, Int32 rank)=0
 
virtual void send (ConstArrayView< float > values, Int32 rank)=0
 
virtual void send (ConstArrayView< double > values, Int32 rank)=0
 
virtual void send (ConstArrayView< long double > values, Int32 rank)=0
 
virtual void send (ConstArrayView< APReal > values, Int32 rank)=0
 
virtual void send (ConstArrayView< Real2 > values, Int32 rank)=0
 
virtual void send (ConstArrayView< Real3 > values, Int32 rank)=0
 
virtual void send (ConstArrayView< Real2x2 > values, Int32 rank)=0
 
virtual void send (ConstArrayView< Real3x3 > values, Int32 rank)=0
 
virtual void send (ConstArrayView< HPReal > values, Int32 rank)=0
 
virtual void sendSerializer (ISerializer *values, Int32 rank)=0
 
virtual Parallel::Request sendSerializer (ISerializer *values, Int32 rank, ByteArray &bytes)=0
 
virtual ISerializeMessagecreateSendSerializer (Int32 rank)=0
 Créé un message non bloquant pour envoyer des données sérialisées au rang rank.
 
opérations de réception de messages.
virtual void recv (ArrayView< char > values, Int32 rank)=0
 
virtual void recv (ArrayView< signed char > values, Int32 rank)=0
 
virtual void recv (ArrayView< unsigned char > values, Int32 rank)=0
 
virtual void recv (ArrayView< short > values, Int32 rank)=0
 
virtual void recv (ArrayView< unsigned short > values, Int32 rank)=0
 
virtual void recv (ArrayView< int > values, Int32 rank)=0
 
virtual void recv (ArrayView< unsigned int > values, Int32 rank)=0
 
virtual void recv (ArrayView< long > values, Int32 rank)=0
 
virtual void recv (ArrayView< unsigned long > values, Int32 rank)=0
 
virtual void recv (ArrayView< long long > values, Int32 rank)=0
 
virtual void recv (ArrayView< unsigned long long > values, Int32 rank)=0
 
virtual void recv (ArrayView< float > values, Int32 rank)=0
 
virtual void recv (ArrayView< double > values, Int32 rank)=0
 
virtual void recv (ArrayView< long double > values, Int32 rank)=0
 
virtual void recv (ArrayView< APReal > values, Int32 rank)=0
 
virtual void recv (ArrayView< Real2 > values, Int32 rank)=0
 
virtual void recv (ArrayView< Real3 > values, Int32 rank)=0
 
virtual void recv (ArrayView< Real2x2 > values, Int32 rank)=0
 
virtual void recv (ArrayView< Real3x3 > values, Int32 rank)=0
 
virtual void recv (ArrayView< HPReal > values, Int32 rank)=0
 
virtual void recvSerializer (ISerializer *values, Int32 rank)=0
 
virtual ISerializeMessagecreateReceiveSerializer (Int32 rank)=0
 Créé un message non bloquant pour recevoir des données sérialisées du rang rank.
 
virtual void processMessages (ConstArrayView< ISerializeMessage * > messages)=0
 Exécute les opérations des messages messages.
 
virtual void freeRequests (ArrayView< Parallel::Request > requests)=0
 Libère les requêtes.
 
opérations d'envoie de messages non bloquants

Envoie un tableau de valeurs à un rang rank.

Envoie les valeurs du tableau values à l'instance de rang rank. Le destinataire doit effectuer une réception correspondante (dont le rang doit être celui de ce gestionnaire et le type et la taille du tableau doit correspondre) avec la fonction recvValues(). L'envoie est bloquant si is_blocking vaut true, non bloquant s'il vaut false. Dans ce dernier cas, la requête retournée doit être utilisée dans waitAllRequests() ou libérée par freeRequests().

virtual Request send (ConstArrayView< char > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< signed char > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< unsigned char > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< short > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< unsigned short > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< int > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< unsigned int > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< long > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< unsigned long > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< long long > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< unsigned long long > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< float > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< double > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< long double > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< APReal > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< Real2 > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< Real3 > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< Real2x2 > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< Real3x3 > values, Int32 rank, bool is_blocking)=0
 
virtual Request send (ConstArrayView< HPReal > values, Int32 rank, bool is_blocking)=0
 
opérations de réception de messages non bloquantes.
virtual Request recv (ArrayView< char > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< signed char > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< unsigned char > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< short > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< unsigned short > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< int > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< unsigned int > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< long > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< unsigned long > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< long long > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< unsigned long long > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< float > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< double > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< long double > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< APReal > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< Real2 > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< Real3 > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< Real2x2 > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< Real3x3 > values, Int32 rank, bool is_blocking)=0
 
virtual Request recv (ArrayView< HPReal > values, Int32 rank, bool is_blocking)=0
 
opérations de réception génériques de messages
virtual Request receive (Span< char > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< signed char > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< unsigned char > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< short > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< unsigned short > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< int > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< unsigned int > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< long > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< unsigned long > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< long long > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< unsigned long long > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< float > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< double > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< long double > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< APReal > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< Real2 > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< Real3 > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< Real2x2 > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< Real3x3 > values, const PointToPointMessageInfo &message)=0
 
virtual Request receive (Span< HPReal > values, const PointToPointMessageInfo &message)=0
 
virtual Request receiveSerializer (ISerializer *values, const PointToPointMessageInfo &message)=0
 
opérations d'envoie génériques de messages
virtual Request send (Span< const char > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const signed char > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const unsigned char > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const short > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const unsigned short > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const int > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const unsigned int > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const long > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const unsigned long > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const long long > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const unsigned long long > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const float > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const double > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const long double > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const APReal > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const Real2 > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const Real3 > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const Real2x2 > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const Real3x3 > values, const PointToPointMessageInfo &message)=0
 
virtual Request send (Span< const HPReal > values, const PointToPointMessageInfo &message)=0
 
virtual Request sendSerializer (const ISerializer *values, const PointToPointMessageInfo &message)=0
 
virtual MessageId probe (const PointToPointMessageInfo &message)=0
 Sonde si des messages sont disponibles.
 
virtual MessageSourceInfo legacyProbe (const PointToPointMessageInfo &message)=0
 Sonde si des messages sont disponibles.
 
virtual void sendRecv (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Int32 rank)=0
 
virtual void sendRecv (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Int32 rank)=0
 
virtual void allToAll (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer count)=0
 
virtual void allToAll (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer count)=0
 
allToAll variable

Effectue un allToAll variable

virtual void allToAllVariable (ConstArrayView< char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< signed char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< signed char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< unsigned char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< unsigned short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< unsigned int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< unsigned long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< unsigned long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< float > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< float > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< long double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< APReal > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< APReal > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< Real2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< Real3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< Real2x2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2x2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< Real3x3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3x3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
virtual void allToAllVariable (ConstArrayView< HPReal > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< HPReal > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
 
scan

Effectue un algorithme de scan équivalent en sémantique à MPI_Scan

virtual void scan (eReduceType rt, ArrayView< char > v)=0
 Applique un algorithme de prefix-um sur les valeurs de v via l'opération rt.
 
virtual void scan (eReduceType rt, ArrayView< signed char > v)=0
 
virtual void scan (eReduceType rt, ArrayView< unsigned char > v)=0
 
virtual void scan (eReduceType rt, ArrayView< short > v)=0
 
virtual void scan (eReduceType rt, ArrayView< unsigned short > v)=0
 
virtual void scan (eReduceType rt, ArrayView< int > v)=0
 
virtual void scan (eReduceType rt, ArrayView< unsigned int > v)=0
 
virtual void scan (eReduceType rt, ArrayView< long > v)=0
 
virtual void scan (eReduceType rt, ArrayView< unsigned long > v)=0
 
virtual void scan (eReduceType rt, ArrayView< long long > v)=0
 
virtual void scan (eReduceType rt, ArrayView< unsigned long long > v)=0
 
virtual void scan (eReduceType rt, ArrayView< float > v)=0
 
virtual void scan (eReduceType rt, ArrayView< double > v)=0
 
virtual void scan (eReduceType rt, ArrayView< long double > v)=0
 
virtual void scan (eReduceType rt, ArrayView< APReal > v)=0
 
virtual void scan (eReduceType rt, ArrayView< Real2 > v)=0
 
virtual void scan (eReduceType rt, ArrayView< Real3 > v)=0
 
virtual void scan (eReduceType rt, ArrayView< Real2x2 > v)=0
 
virtual void scan (eReduceType rt, ArrayView< Real3x3 > v)=0
 
virtual void scan (eReduceType rt, ArrayView< HPReal > v)=0
 
virtual ISerializeMessageListcreateSerializeMessageList ()=0
 Créé une liste pour gérer les 'ISerializeMessage'.
 
virtual Ref< ISerializeMessageListcreateSerializeMessageListRef ()=0
 Créé une liste pour gérer les 'ISerializeMessage'.
 
opérations de synchronisation et opérations asynchrones
virtual void barrier ()=0
 Effectue une barière.
 
virtual void waitAllRequests (ArrayView< Request > rvalues)=0
 Bloque en attendant que les requêtes rvalues soient terminées.
 
virtual UniqueArray< Integer > waitSomeRequests (ArrayView< Request > rvalues)=0
 Bloque en attendant qu'une des requêtes rvalues soit terminée.
 
virtual UniqueArray< Integer > testSomeRequests (ArrayView< Request > rvalues)=0
 Test si une des requêtes rvalues est terminée.
 

Fonctions membres privées

 ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS ()
 
virtual ARCANE_DEPRECATED Integer subDomainId () const final
 Numéro du sous-domaine associé à ce gestionnaire.
 
virtual ARCANE_DEPRECATED Integer nbSubDomain () const final
 Nombre total de sous-domaines.
 

Amis

class ParallelMngUtilsAccessor
 

opérations diverses

virtual Ref< IParallelMngUtilsFactory_internalUtilsFactory () const =0
 Fabrique des fonctions utilitaires.
 
virtual IParallelMngsequentialParallelMng ()=0
 Retourne un gestionnaire de parallélisme séquentiel.
 
virtual Ref< IParallelMngsequentialParallelMngRef ()=0
 
virtual IGetVariablesValuesParallelOperationcreateGetVariablesValuesOperation ()=0
 Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-domaine.
 
virtual ITransferValuesParallelOperationcreateTransferValuesOperation ()=0
 Retourne une opération pour transférer des valeurs entre sous-domaine.
 
virtual IParallelExchangercreateExchanger ()=0
 Retourne une interface pour transférer des messages entre processeurs.
 
virtual IVariableSynchronizercreateSynchronizer (IItemFamily *family)=0
 Retourne une interface pour synchroniser des variables sur le groupe de la famille family.
 
virtual IVariableSynchronizercreateSynchronizer (const ItemGroup &group)=0
 Retourne une interface pour synchroniser des variables sur le groupe group.
 
virtual IParallelTopologycreateTopology ()=0
 Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
 
virtual IParallelReplicationreplication () const =0
 Informations sur la réplication.
 
virtual void setReplication (IParallelReplication *v)=0
 Positionne les Informations sur la réplication.
 
virtual IParallelMngcreateSubParallelMng (Int32ConstArrayView kept_ranks)=0
 Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.
 
virtual Ref< IParallelMngcreateSubParallelMngRef (Int32ConstArrayView kept_ranks)=0
 Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.
 
virtual Ref< Parallel::IRequestListcreateRequestListRef ()=0
 Créé une liste de requêtes pour ce gestionnaire.
 
virtual IStatstat ()=0
 Gestionnaire des statistiques.
 
virtual void printStats ()=0
 Affiche des statistiques liées à ce gestionnaire du parallélisme.
 
virtual IParallelNonBlockingCollectivenonBlockingCollective () const =0
 Interface des opérations collectives non blocantes.
 
virtual IMessagePassingMngmessagePassingMng () const =0
 Gestionnaire de message de Arccore associé
 
virtual IParallelMngInternal_internalApi ()=0
 API interne à Arcane.
 

Description détaillée

Interface du gestionnaire de parallélisme pour un sous-domaine.

Ce gestionnaire propose une interface pour accéder à l'ensemble des fonctionnalités liées au parallélisme.

Il existe plusieurs implémentations possibles:

  • mode séquentiel.
  • mode parallèle via MPI
  • mode parallèle via les threads.
  • mode parallèle mixte MPI/threads. Le choix de l'implémentation se fait lors du lancement de l'application.

Lorsqu'une opération est collective, tous les gestionnaires associés doivent participer.

Il est possible de créer à partir d'une instance un autre gestionnaire contenant un sous-ensemble de rang via createSubParallelMng().

Définition à la ligne 51 du fichier IParallelMng.h.

Documentation des définitions de type membres

◆ eReduceType

◆ IStat

◆ MessageId

◆ MessageSourceInfo

◆ PointToPointMessageInfo

◆ Request

Documentation des fonctions membres

◆ _internalApi()

virtual IParallelMngInternal * Arcane::IParallelMng::_internalApi ( )
pure virtual

API interne à Arcane.

Implémenté dans Arcane::ParallelMngDispatcher.

◆ _internalUtilsFactory()

virtual Ref< IParallelMngUtilsFactory > Arcane::IParallelMng::_internalUtilsFactory ( ) const
privatepure virtual

◆ allGather()

virtual void Arcane::IParallelMng::allGather ( ISerializer send_serializer,
ISerializer recv_serializer 
)
pure virtual

◆ allGatherVariable()

virtual void Arcane::IParallelMng::allGatherVariable ( ConstArrayView< char send_buf,
Array< char > &  recv_buf 
)
pure virtual

Effectue un regroupement sur tous les processeurs.

Il s'agit d'une opération collective. Le nombre d'éléments du tableau send_buf peut être différent pour chaque processeur. Le tableau recv_buf contient en sortie la concaténation des tableaux send_buf de chaque processeur. Ce tableau recv_buf est éventuellement redimensionné.

Référencé par Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::Hdf5VariableReaderHelper2::_createCorrespondance(), Arcane::mesh::ItemFamily::checkUniqueIds(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::CartesianMeshAMRPatchMng::coarse(), Arcane::BasicRayMeshIntersection::compute(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::CartesianMeshAMRPatchMng::refine(), et Arcane::TransferValuesParallelOperation::transferValues().

◆ barrier()

◆ broadcastMemoryBuffer()

virtual void Arcane::IParallelMng::broadcastMemoryBuffer ( ByteArray bytes,
Int32  rank 
)
pure virtual

Effectue un broadcast d'une zone mémoire.

Le processeur qui effectue le broadcast est donnée par \id. Le tableau envoyé est alors donnée par bytes. Les processeurs réceptionnent le tableau dans bytes. Ce tableau est alloué automatiquement, les processeurs réceptionnant n'ont pas besoin de connaitre le nombre d'octets devant être envoyés.

Implémenté dans Arcane::ParallelMngDispatcher, et Arcane::SequentialParallelMng.

Référencé par Arcane::VtkMeshIOService::_readData(), et Arcane::Hdf5VariableReaderHelper2::open().

◆ build()

◆ commRank()

virtual Int32 Arcane::IParallelMng::commRank ( ) const
pure virtual

Rang de cette instance dans le communicateur.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::TimeHistoryMngInternal::_addHistoryValue(), Arcane::VariableIOReaderMng::_checkHashFunction(), Arcane::mesh::MeshRefinement::_checkLevelOne(), Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::mesh::FaceUniqueIdBuilder2::_computeParallel(), Arcane::VtkHdfV2DataWriter::_computeWritePartInfo(), Arcane::CartesianMeshCoarsening2::_createCoarseCells2D(), Arcane::CartesianMeshCoarsening2::_createCoarseCells3D(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::mesh::ParallelAMRConsistency::_gatherFaces(), Arcane::mesh::TiedInterfaceBuilder::_gatherFaces(), Arcane::mesh::ParallelAMRConsistency::_gatherItems(), Arcane::mesh::MeshRefinement::_makeCoarseningCompatible(), Arcane::mesh::MeshRefinement::_makeRefinementCompatible(), Arcane::mesh::GhostLayerBuilder2::_markBoundaryItems(), Arcane::mesh::GhostLayerBuilder2::_markBoundaryNodes(), Arcane::ArcaneInitialPartitioner::_mergeConstraints(), Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::VtkMeshIOService::_readData(), Arcane::VtkMeshIOService::_readFacesMesh(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::MshParallelMeshReader::_readOneElementBlock(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV1(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV2Helper(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), ArcaneTest::CartesianMeshTesterModule::_testGridPartitioning(), Arcane::MetisMeshPartitioner::_writeGraph(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::GhostLayerBuilder2::addGhostLayers(), Arcane::ParallelMngDispatcher::broadcastMemoryBuffer(), Arcane::CartesianMeshAMRPatchMng::coarse(), Arcane::mesh::ItemRefinement::coarsenOneCell(), Arcane::BasicRayMeshIntersection::compute(), Arcane::VariablePrivate::computeComparisonHashCollective(), Arcane::ItemConnectivitySynchronizer::computeExtraItemsToSend(), Arcane::mesh::CartesianFaceUniqueIdBuilder::computeFacesUniqueIdAndOwner(), Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion5(), Arcane::mesh::TiedInterfaceBuilder::computeInterfaceConnections(), Arcane::UnstructuredMeshUtilities::computeNormal(), Arcane::CartesianMeshCoarsening::createCoarseCells(), Arcane::TimeLoopMng::doComputeLoop(), Arcane::MeshUtils::dumpSynchronizerTopologyJSON(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::mesh::MeshRefinement::init(), Arcane::GraphDistributor::initWithOneRankPerNode(), Arcane::TimeHistoryMngInternal::iterationsAndValues(), Arcane::MeshPartitionerTester::partitionMesh(), Arcane::XmfMeshReader::readMeshFromFile(), Arcane::ItemTypeMng::readTypes(), Arcane::TimeHistoryMngInternal::readVariables(), Arcane::CartesianMeshAMRPatchMng::refine(), et Arcane::TransferValuesParallelOperation::transferValues().

◆ commSize()

virtual Int32 Arcane::IParallelMng::commSize ( ) const
pure virtual

Nombre d'instance dans le communicateur.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::mesh::MeshExchange::_computeMeshConnectivityInfos3(), Arcane::ArcaneLoadBalanceModule::_computeWeights(), Arcane::VtkHdfV2DataWriter::_computeWritePartInfo(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::TimeHistoryMngInternal::_dumpSummaryOfCurves(), Arcane::TimeHistoryMngInternal::_dumpSummaryOfCurvesLegacy(), Arcane::mesh::TiedInterfaceBuilder::_gatherAllNodesInfo(), Arcane::mesh::ParallelAMRConsistency::_gatherFaces(), Arcane::mesh::TiedInterfaceBuilder::_gatherFaces(), Arcane::mesh::ParallelAMRConsistency::_gatherItems(), Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::SubDomain::_printCPUAffinity(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::MshParallelMeshReader::_readNodesFromFileAscii(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), Arcane::CheckpointMng::_writeCheckpointInfoFile(), Arcane::MetisMeshPartitioner::_writeGraph(), Arcane::mesh::DynamicMesh::addCells(), Arcane::mesh::DynamicMesh::addCells(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::CommonItemGroupFilterer::applyFiltering(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), Arcane::centralizePartInfo(), Arcane::CartesianMeshAMRPatchMng::coarse(), Arcane::ItemConnectivitySynchronizer::computeExtraItemsToSend(), Arcane::TimeHistoryMngInternal::dumpCurves(), Arcane::MessagePassing::dumpDateAndMemoryUsage(), Arcane::MeshUtils::dumpSynchronizerTopologyJSON(), Arcane::MessagePassing::filterCommonStrings(), Arcane::VariableUtilities::filterCommonVariables(), Arcane::mesh::MeshRefinement::findOrAddFaceUid(), Arcane::mesh::MeshRefinement::findOrAddNodeUid(), Arcane::mesh::MeshRefinement::getFirstChildNewUid(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::mesh::MeshRefinement::init(), Arcane::SplitSDMeshPartitioner::init(), Arcane::GraphDistributor::initWithOneRankPerNode(), Arcane::ArcaneInitialPartitioner::partitionAndDistributeMeshes(), ArcaneTest::CartesianMeshPartitionerService::partitionMesh(), Arcane::MeshPartitionerTester::partitionMesh(), Arcane::SimpleGridMeshPartitioner::partitionMesh(), Arcane::MetisMeshPartitioner::partitionMesh(), Arcane::MshParallelMeshReader::readMeshFromMshFile(), Arcane::CartesianMeshAMRPatchMng::refine(), et Arcane::ModuleMaster::timeLoopBegin().

◆ communicator()

virtual Parallel::Communicator Arcane::IParallelMng::communicator ( ) const
pure virtual

Communicateur MPI associé à ce gestionnaire.

Le communicateur n'est valide que si on utilise MPI. Il est possible de tester la validité en appelant la méthode Communicator::isValid(). S'il est valid, il est possible de récupérer sa valide via un cast:

IParallelMng* pm = ...;
MPI_Comm c = static_cast<MPI_Comm>(pm->communicator());
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual Parallel::Communicator communicator() const =0
Communicateur MPI associé à ce gestionnaire.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::MetisWrapper::callAdaptiveRepart(), Arcane::MetisWrapper::callPartKway(), et Arcane::VariableSynchronizerMpiCommunicator::compute().

◆ computeMinMaxSum() [1/2]

virtual void Arcane::IParallelMng::computeMinMaxSum ( char  val,
char min_val,
char max_val,
char sum_val,
Int32 &  min_rank,
Int32 &  max_rank 
)
pure virtual

Calcule en une opération la somme, le min, le max d'une valeur.

Calcule le minimum, le maximum et la somme de la valeur val.

Paramètres
valvaleur servant pour le calcul
[out]min_valvaleur minimale
[out]max_valvaleur maximale
[out]sum_valsomme des valeurs
[out]min_rankrang du processeur ayant la valeur minimale
[out]max_rankrang du processeur ayant la valeur maximale

Référencé par Arcane::MetisMeshPartitioner::_removeEmptyPartsV1(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV2Helper(), Arcane::mesh::BasicParticleExchanger::beginNewExchange(), Arcane::SplitSDMeshPartitioner::ConnexifieDomaine(), Arcane::MessagePassing::HybridParallelMng::createSubParallelMngRef(), Arcane::MessagePassing::dumpDateAndMemoryUsage(), et Arcane::ModuleMaster::timeLoopBegin().

◆ computeMinMaxSum() [2/2]

virtual void Arcane::IParallelMng::computeMinMaxSum ( ConstArrayView< char values,
ArrayView< char min_values,
ArrayView< char max_values,
ArrayView< char sum_values,
ArrayView< Int32 >  min_ranks,
ArrayView< Int32 >  max_ranks 
)
pure virtual

Calcule en une opération la somme, le min, le max d'une valeur.

Calcule le minimum, le maximum et la somme de la valeur val.

Paramètres
valvaleur servant pour le calcul
[out]min_valvaleur minimale
[out]max_valvaleur maximale
[out]sum_valsomme des valeurs
[out]min_rankrang du processeur ayant la valeur minimale
[out]max_rankrang du processeur ayant la valeur maximale

◆ createExchanger()

virtual IParallelExchanger * Arcane::IParallelMng::createExchanger ( )
pure virtual

Retourne une interface pour transférer des messages entre processeurs.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createGetVariablesValuesOperation()

virtual IGetVariablesValuesParallelOperation * Arcane::IParallelMng::createGetVariablesValuesOperation ( )
pure virtual

Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-domaine.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createReceiveSerializer()

virtual ISerializeMessage * Arcane::IParallelMng::createReceiveSerializer ( Int32  rank)
pure virtual

Créé un message non bloquant pour recevoir des données sérialisées du rang rank.

Le message est traité uniquement lors de l'appel à processMessages().

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createRequestListRef()

virtual Ref< Parallel::IRequestList > Arcane::IParallelMng::createRequestListRef ( )
pure virtual

◆ createSendSerializer()

virtual ISerializeMessage * Arcane::IParallelMng::createSendSerializer ( Int32  rank)
pure virtual

Créé un message non bloquant pour envoyer des données sérialisées au rang rank.

Le message est traité uniquement lors de l'appel à processMessages().

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createSerializeMessageList()

virtual ISerializeMessageList * Arcane::IParallelMng::createSerializeMessageList ( )
pure virtual

Créé une liste pour gérer les 'ISerializeMessage'.

Obsolète:
Utiliser createSerializeMessageListRef() à la place.

Implémenté dans Arcane::ParallelMngDispatcher.

◆ createSerializeMessageListRef()

virtual Ref< ISerializeMessageList > Arcane::IParallelMng::createSerializeMessageListRef ( )
pure virtual

Créé une liste pour gérer les 'ISerializeMessage'.

Implémenté dans Arcane::ParallelMngDispatcher.

Référencé par Arccore::MessagePassing::mpCreateSerializeMessageListRef().

◆ createSubParallelMng()

virtual IParallelMng * Arcane::IParallelMng::createSubParallelMng ( Int32ConstArrayView  kept_ranks)
pure virtual

Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.

Obsolète:
Utiliser createSubParallelMngRef() à la place

Implémenté dans Arcane::ParallelMngDispatcher.

◆ createSubParallelMngRef()

virtual Ref< IParallelMng > Arcane::IParallelMng::createSubParallelMngRef ( Int32ConstArrayView  kept_ranks)
pure virtual

Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.

Cette opération est collective.

Cett opération permet de créér un nouveau gestionnaire contenant uniquement les rangs kept_ranks de ce gestionnaire.

Si le rang appelant cette opération n'est pas dans kept_ranks, retourne 0.

L'instance retournée doit être détruire par l'opérateur delete.

Implémenté dans Arcane::ParallelMngDispatcher, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::GraphDistributor::initWithOneRankPerNode().

◆ createSynchronizer() [1/2]

virtual IVariableSynchronizer * Arcane::IParallelMng::createSynchronizer ( const ItemGroup group)
pure virtual

Retourne une interface pour synchroniser des variables sur le groupe group.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createSynchronizer() [2/2]

virtual IVariableSynchronizer * Arcane::IParallelMng::createSynchronizer ( IItemFamily family)
pure virtual

Retourne une interface pour synchroniser des variables sur le groupe de la famille family.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createTopology()

virtual IParallelTopology * Arcane::IParallelMng::createTopology ( )
pure virtual

Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.

Cette opération est collective.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ createTransferValuesOperation()

virtual ITransferValuesParallelOperation * Arcane::IParallelMng::createTransferValuesOperation ( )
pure virtual

Retourne une opération pour transférer des valeurs entre sous-domaine.

L'instance retournée doit être détruite par l'opérateur delete.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ freeRequests()

virtual void Arcane::IParallelMng::freeRequests ( ArrayView< Parallel::Request requests)
pure virtual

◆ gatherVariable()

virtual void Arcane::IParallelMng::gatherVariable ( ConstArrayView< char send_buf,
Array< char > &  recv_buf,
Int32  rank 
)
pure virtual

Effectue un regroupement sur tous les processeurs.

Il s'agit d'une opération collective. Le nombre d'éléments du tableau send_buf peut être différent pour chaque processeur. Le tableau recv_buf contient en sortie la concaténation des tableaux send_buf de chaque processeur. Ce tableau recv_buf est éventuellement redimensionné pour le processeurs de rang rank.

Référencé par Arcane::VariablePrivate::computeComparisonHashCollective(), et Arcane::MeshUtils::dumpSynchronizerTopologyJSON().

◆ getMPICommunicator()

virtual void * Arcane::IParallelMng::getMPICommunicator ( )
pure virtual

Adresse du communicateur MPI associé à ce gestionnaire.

Le communicateur n'est valide que si on utilise MPI. Sinon, l'adresse retournée est 0. La valeur retournée est de type (MPI_Comm*).

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::Hdf5Utils::HProperty::createFilePropertyMPIIO(), et mpiCommunicator().

◆ initialize()

virtual void Arcane::IParallelMng::initialize ( )
pure virtual

◆ ioMng()

◆ isHybridImplementation()

virtual bool Arcane::IParallelMng::isHybridImplementation ( ) const
pure virtual

Indique si l'implémentation utilise le mode hybride.

L'implémentation utilise le mode mixte MPI/thread.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ isMasterIO()

◆ isParallel()

virtual bool Arcane::IParallelMng::isParallel ( ) const
pure virtual

Retourne true si l'exécution est parallèle.

L'exécution est parallèle si l'instance implémente un mécanisme d'échange de message tel que MPI.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::mesh::MeshRefinement::_contract(), Arcane::VariableIOWriterMng::_generateMeshesMetaData(), Arcane::mesh::MeshRefinement::_makeCoarseningCompatible(), Arcane::mesh::MeshRefinement::_makeFlagParallelConsistent(), Arcane::MshMeshReader::_readMeshFromNewMshFile(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::mesh::MeshRefinement::_refineItems(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::GhostLayerBuilder2::addGhostLayers(), Arcane::mesh::MeshRefinement::coarsenItems(), Arcane::mesh::MeshRefinement::coarsenItemsV2(), Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion3(), Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion5(), Arcane::ArcaneBasicVerifierService::doVerifFromReferenceFile(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::mesh::AsyncParticleExchanger::initialize(), Arcane::ArcaneBasicCheckpointService::notifyBeginWrite(), Arcane::ArcaneVerifierModule::onExit(), Arcane::MeshReaderMng::readMesh(), Arcane::XmfMeshReader::readMeshFromFile(), Arcane::MshParallelMeshReader::readMeshFromMshFile(), Arcane::Materials::MeshMaterialVariableSynchronizer::recompute(), Arcane::mesh::MeshRefinement::refineAndCoarsenItems(), Arcane::mesh::MeshRefinement::refineItems(), et Arcane::TransferValuesParallelOperation::transferValues().

◆ isThreadImplementation()

virtual bool Arcane::IParallelMng::isThreadImplementation ( ) const
pure virtual

Indique si l'implémentation utilise les threads.

L'implémentation utilise les threads soit en mode thread pure, soit en mode mixte MPI/thread.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::MetisMeshPartitioner::_partitionMesh().

◆ legacyProbe()

◆ masterIORank()

◆ messagePassingMng()

virtual IMessagePassingMng * Arcane::IParallelMng::messagePassingMng ( ) const
pure virtual

Gestionnaire de message de Arccore associé

Implémenté dans Arcane::ParallelMngDispatcher.

Référencé par Arcane::TransferValuesParallelOperation::transferValues().

◆ mpiCommunicator()

void * Arcane::IParallelMng::mpiCommunicator ( )
virtual

Adresse du communicateur MPI associé à ce gestionnaire.

Obsolète:
Utiliser getMPICommunicator() à la place.

Définition à la ligne 49 du fichier Parallel.cc.

Références getMPICommunicator().

◆ nbSubDomain()

virtual ARCANE_DEPRECATED Integer Arcane::IParallelMng::nbSubDomain ( ) const
inlinefinalprivatevirtual

Nombre total de sous-domaines.

Définition à la ligne 96 du fichier IParallelMng.h.

◆ nonBlockingCollective()

virtual IParallelNonBlockingCollective * Arcane::IParallelMng::nonBlockingCollective ( ) const
pure virtual

◆ printStats()

virtual void Arcane::IParallelMng::printStats ( )
pure virtual

Affiche des statistiques liées à ce gestionnaire du parallélisme.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ probe()

virtual MessageId Arcane::IParallelMng::probe ( const PointToPointMessageInfo message)
pure virtual

◆ processMessages()

virtual void Arcane::IParallelMng::processMessages ( ConstArrayView< ISerializeMessage * >  messages)
pure virtual

Exécute les opérations des messages messages.

Implémenté dans Arcane::ParallelMngDispatcher, et Arcane::SequentialParallelMng.

Référencé par Arcane::GetVariablesValuesParallelOperation::getVariableValues().

◆ receive()

virtual Request Arcane::IParallelMng::receive ( Span< char values,
const PointToPointMessageInfo message 
)
pure virtual

Reception du message message le tableau values

◆ recv() [1/2]

◆ recv() [2/2]

virtual Request Arcane::IParallelMng::recv ( ArrayView< char values,
Int32  rank,
bool  is_blocking 
)
pure virtual

Recoie du sous-domaine rank le tableau values

◆ replication()

◆ send()

virtual Request Arcane::IParallelMng::send ( Span< const char values,
const PointToPointMessageInfo message 
)
pure virtual

Envoie du message message avec les valeurs du tableau values

◆ sendSerializer()

virtual Parallel::Request Arcane::IParallelMng::sendSerializer ( ISerializer values,
Int32  rank,
ByteArray bytes 
)
pure virtual

la requête donnée en retour doit être utilisée dans waitAllRequests() ou libérée par appel à freeRequests().

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ sequentialParallelMng()

virtual IParallelMng * Arcane::IParallelMng::sequentialParallelMng ( )
pure virtual

Retourne un gestionnaire de parallélisme séquentiel.

Cette instance reste propriétaire de l'instance retournée qui ne doit pas être détruite. La durée de vie de l'instance retournée est la même que cette instance.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Référencé par Arcane::VariableIOWriterMng::_generateMeshesMetaData().

◆ setReplication()

virtual void Arcane::IParallelMng::setReplication ( IParallelReplication v)
pure virtual

Positionne les Informations sur la réplication.

Cette méthode est interne à Arcane et ne doit être appelée que lors de l'initialisation.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

◆ setTimeStats()

virtual void Arcane::IParallelMng::setTimeStats ( ITimeStats time_stats)
pure virtual

Positionne le gestionnaire de statistiques.

Implémenté dans Arcane::ParallelMngDispatcher.

◆ stat()

◆ subDomainId()

virtual ARCANE_DEPRECATED Integer Arcane::IParallelMng::subDomainId ( ) const
inlinefinalprivatevirtual

Numéro du sous-domaine associé à ce gestionnaire.

Définition à la ligne 93 du fichier IParallelMng.h.

◆ testSomeRequests()

virtual UniqueArray< Integer > Arcane::IParallelMng::testSomeRequests ( ArrayView< Request rvalues)
pure virtual

Test si une des requêtes rvalues est terminée.

Retourne un tableau d'indices des requêtes réalisées.

Implémenté dans Arcane::ParallelMngDispatcher, Arcane::SequentialParallelMng, et Arcane::MpiParallelMng.

◆ threadMng()

virtual IThreadMng * Arcane::IParallelMng::threadMng ( ) const
pure virtual

◆ timeMetricCollector()

virtual ITimeMetricCollector * Arcane::IParallelMng::timeMetricCollector ( ) const
pure virtual

Collecteur Arccore des statistiques temporelles (peut être nul)

Implémenté dans Arcane::ParallelMngDispatcher.

◆ timerMng()

◆ timeStats()

◆ traceMng()

◆ waitAllRequests()

◆ waitSomeRequests()

virtual UniqueArray< Integer > Arcane::IParallelMng::waitSomeRequests ( ArrayView< Request rvalues)
pure virtual

Bloque en attendant qu'une des requêtes rvalues soit terminée.

Retourne un tableau d'indices des requêtes réalisées.

Implémenté dans Arcane::ParallelMngDispatcher, Arcane::SequentialParallelMng, et Arcane::MpiParallelMng.

Référencé par Arccore::MessagePassing::mpTestSome(), et Arccore::MessagePassing::mpWaitSome().

◆ worldParallelMng()

virtual IParallelMng * Arcane::IParallelMng::worldParallelMng ( ) const
pure virtual

Gestionnaire de parallélisme sur l'ensemble des ressources allouées.

Implémenté dans Arcane::SequentialParallelMng, Arcane::MpiParallelMng, Arcane::MessagePassing::HybridParallelMng, et Arcane::MessagePassing::SharedMemoryParallelMng.

Documentation des fonctions amies et associées

◆ ParallelMngUtilsAccessor

Définition à la ligne 55 du fichier IParallelMng.h.


La documentation de cette classe a été générée à partir des fichiers suivants :