Options d'exécution d'une boucle parallèle en multi-thread. Plus de détails...
#include <arcane/utils/ParallelLoopOptions.h>
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. | |
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.
|
strong |
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.
|
Définition à la ligne 52 du fichier ParallelLoopOptions.h.
|
inline |
Définition à la ligne 82 du fichier ParallelLoopOptions.h.
|
inline |
Taille d'un intervalle d'itération.
Définition à la ligne 109 du fichier ParallelLoopOptions.h.
Référencé par Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), et mergeUnsetValues().
|
inline |
Indique si grainSize() est positionné
Définition à la ligne 117 du fichier ParallelLoopOptions.h.
|
inline |
Indique si maxThread() est positionné
Définition à la ligne 106 du fichier ParallelLoopOptions.h.
|
inline |
Indique si grainSize() est positionné
Définition à la ligne 128 du fichier ParallelLoopOptions.h.
|
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().
|
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().
|
inline |
Type du partitionneur.
Définition à la ligne 120 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Positionne la taille (approximative) d'un intervalle d'itération.
Définition à la ligne 111 du fichier ParallelLoopOptions.h.
Référencé par Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), Arcane::Parallel::Foreach(), et Arcane::Parallel::Foreach().
|
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.
|
inline |
Positionne le type du partitionneur.
Définition à la ligne 122 du fichier ParallelLoopOptions.h.