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

Options d'exécution d'une boucle parallèle en multi-thread. Plus de détails...

#include <arcane/utils/ParallelLoopOptions.h>

+ Graphe de collaboration de Arcane::ParallelLoopOptions:

Types publics

enum class  Partitioner { Auto = 0 , Static = 1 , Deterministic = 2 }
 Type du partitionneur. Plus de détails...
 

Fonctions membres publiques

Int32 maxThread () const
 Nombre maximal de threads autorisés.
 
void setMaxThread (Integer v)
 Positionne le nombre maximal de threads autorisé.
 
bool hasMaxThread () const
 Indique si maxThread() est positionné
 
Integer grainSize () const
 Taille d'un intervalle d'itération.
 
void setGrainSize (Integer v)
 Positionne la taille (approximative) d'un intervalle d'itération.
 
bool hasGrainSize () const
 Indique si grainSize() est positionné
 
Partitioner partitioner () const
 Type du partitionneur.
 
void setPartitioner (Partitioner v)
 Positionne le type du partitionneur.
 
bool hasPartitioner () const
 Indique si grainSize() est positionné
 
void mergeUnsetValues (const ParallelLoopOptions &po)
 Fusionne les valeurs non modifiées de l'instance par celles de po.
 

Types privés

enum  SetFlags { SF_MaxThread = 1 , SF_GrainSize = 2 , SF_Partitioner = 4 }
 Drapeau pour indiquer quels champs ont été positionnés. Plus de détails...
 

Fonctions membres privées

 ARCANE_DECLARE_PROPERTY_CLASS (ParallelLoopOptions)
 

Attributs privés

Int32 m_grain_size = 0
 Taille d'un bloc de la boucle.
 
Int32 m_max_thread = -1
 Type de partitionneur.
 
Partitioner m_partitioner = Partitioner::Auto
 
unsigned int m_flags = 0
 

Description détaillée

Options d'exécution d'une boucle parallèle en multi-thread.

Cette classe permet de spécifier des paramètres d'exécution d'une boucle parallèle.

Définition à la ligne 35 du fichier ParallelLoopOptions.h.

Documentation des énumérations membres

◆ Partitioner

Type du partitionneur.

Valeurs énumérées
Auto 

Laisse le partitionneur géré le partitionnement et l'ordonnancement (défaut)

Static 

Utilise un partitionnement statique.

Dans ce mode, grainSize() n'est pas utilisé et le partitionnement ne dépend que du nombre de threads et de l'intervalle d'itération.

A noter que l'ordonnencement reste dynamique et donc du exécution à l'autre ce n'est pas forcément le même thread qui va exécuter le même bloc d'itération.

Deterministic 

Utilise un partitionnement et un ordonnancement statique.

Ce mode est similaire à Partitioner::Static mais l'ordonnancement est déterministe pour l'attribution des tâches: la valeur renvoyée par TaskFactory::currentTaskIndex() est déterministe.

Note
Actuellement ce mode de partitionnement n'est disponible que pour la parallélisation des boucles 1D.

Définition à la ligne 52 du fichier ParallelLoopOptions.h.

◆ SetFlags

Drapeau pour indiquer quels champs ont été positionnés.

Définition à la ligne 42 du fichier ParallelLoopOptions.h.

Documentation des constructeurs et destructeur

◆ ParallelLoopOptions()

Arcane::ParallelLoopOptions::ParallelLoopOptions ( )
inline

Définition à la ligne 82 du fichier ParallelLoopOptions.h.

Documentation des fonctions membres

◆ grainSize()

Integer Arcane::ParallelLoopOptions::grainSize ( ) const
inline

Taille d'un intervalle d'itération.

Définition à la ligne 109 du fichier ParallelLoopOptions.h.

Référencé par Arcane::Parallel::Foreach(), et Arcane::Parallel::Foreach().

◆ hasGrainSize()

bool Arcane::ParallelLoopOptions::hasGrainSize ( ) const
inline

Indique si grainSize() est positionné

Définition à la ligne 117 du fichier ParallelLoopOptions.h.

◆ hasMaxThread()

bool Arcane::ParallelLoopOptions::hasMaxThread ( ) const
inline

Indique si maxThread() est positionné

Définition à la ligne 106 du fichier ParallelLoopOptions.h.

◆ hasPartitioner()

bool Arcane::ParallelLoopOptions::hasPartitioner ( ) const
inline

Indique si grainSize() est positionné

Définition à la ligne 128 du fichier ParallelLoopOptions.h.

◆ maxThread()

Int32 Arcane::ParallelLoopOptions::maxThread ( ) const
inline

Nombre maximal de threads autorisés.

Définition à la ligne 92 du fichier ParallelLoopOptions.h.

Référencé par Arcane::TBBTaskImplementation::_executeMDParallelFor().

◆ mergeUnsetValues()

void Arcane::ParallelLoopOptions::mergeUnsetValues ( const ParallelLoopOptions po)
inline

Fusionne les valeurs non modifiées de l'instance par celles de po.

Définition à la ligne 133 du fichier ParallelLoopOptions.h.

◆ partitioner()

Partitioner Arcane::ParallelLoopOptions::partitioner ( ) const
inline

Type du partitionneur.

Définition à la ligne 120 du fichier ParallelLoopOptions.h.

◆ setGrainSize()

void Arcane::ParallelLoopOptions::setGrainSize ( Integer  v)
inline

Positionne la taille (approximative) d'un intervalle d'itération.

Définition à la ligne 111 du fichier ParallelLoopOptions.h.

Référencé par ArcaneTest::MeshMaterialTesterModule::_checkCreation().

◆ setMaxThread()

void Arcane::ParallelLoopOptions::setMaxThread ( Integer  v)
inline

Positionne le nombre maximal de threads autorisé.

Si v vaut 0 ou 1, l'exécution sera séquentielle. Si v est supérieur à TaskFactory::nbAllowedThread(), c'est cette dernière valeur qui sera utilisée.

Définition à la ligne 100 du fichier ParallelLoopOptions.h.

◆ setPartitioner()

void Arcane::ParallelLoopOptions::setPartitioner ( Partitioner  v)
inline

Positionne le type du partitionneur.

Définition à la ligne 122 du fichier ParallelLoopOptions.h.

Documentation des données membres

◆ m_flags

unsigned int Arcane::ParallelLoopOptions::m_flags = 0
private

Définition à la ligne 152 du fichier ParallelLoopOptions.h.

◆ m_grain_size

Int32 Arcane::ParallelLoopOptions::m_grain_size = 0
private

Taille d'un bloc de la boucle.

Nombre maximum de threads pour la boucle

Définition à la ligne 146 du fichier ParallelLoopOptions.h.

◆ m_max_thread

Int32 Arcane::ParallelLoopOptions::m_max_thread = -1
private

Type de partitionneur.

Définition à la ligne 148 du fichier ParallelLoopOptions.h.

◆ m_partitioner

Partitioner Arcane::ParallelLoopOptions::m_partitioner = Partitioner::Auto
private

Définition à la ligne 150 du fichier ParallelLoopOptions.h.


La documentation de cette classe a été générée à partir du fichier suivant :