Arcane  v3.14.10.0
Documentation utilisateur
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.
 

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.

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

◆ 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::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), et mergeUnsetValues().

◆ 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.

Références grainSize(), maxThread(), et partitioner().

◆ partitioner()

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

Type du partitionneur.

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

Référencé par mergeUnsetValues().

◆ setGrainSize()

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

◆ 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.


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