Options d'exécution d'une boucle parallèle en multi-thread. Plus de détails...
#include <arccore/base/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 34 du fichier arccore/src/base/arccore/base/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 49 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
|
inline |
Définition à la ligne 79 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
|
inline |
Taille d'un intervalle d'itération.
Définition à la ligne 106 du fichier arccore/src/base/arccore/base/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 114 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Indique si maxThread() est positionné
Définition à la ligne 103 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Indique si grainSize() est positionné
Définition à la ligne 125 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Nombre maximal de threads autorisés.
Définition à la ligne 89 du fichier arccore/src/base/arccore/base/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 130 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Références grainSize(), hasGrainSize(), hasMaxThread(), hasPartitioner(), maxThread(), partitioner(), setGrainSize(), setMaxThread(), et setPartitioner().
|
inline |
Type du partitionneur.
Définition à la ligne 117 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Positionne la taille (approximative) d'un intervalle d'itération.
Définition à la ligne 108 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), Arcane::Accelerator::impl::MultiThreadAlgo::doScan(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), et mergeUnsetValues().
|
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 à ConcurrencyBase::maxAllowedThread(), c'est cette dernière valeur qui sera utilisée.
Définition à la ligne 97 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
|
inline |
Positionne le type du partitionneur.
Définition à la ligne 119 du fichier arccore/src/base/arccore/base/ParallelLoopOptions.h.
Référencé par mergeUnsetValues().