Options d'exécution d'une boucle parallèle en multi-thread. Plus de détails...
#include <arcane/utils/ParallelLoopOptions.h>
Graphe d'héritage de Arcane::ParallelLoopOptions:
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... | |
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 |
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 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 ParallelLoopOptions.h.
|
private |
Drapeau pour indiquer quels champs ont été positionnés.
Définition à la ligne 39 du fichier ParallelLoopOptions.h.
|
inline |
Définition à la ligne 79 du fichier ParallelLoopOptions.h.
|
inline |
Taille d'un intervalle d'itération.
Définition à la ligne 106 du fichier ParallelLoopOptions.h.
Références m_grain_size.
Référencé par Arcane::TBBTaskImplementation::_executeMDParallelFor(), Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), et mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Indique si grainSize() est positionné
Définition à la ligne 114 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Indique si maxThread() est positionné
Définition à la ligne 103 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Indique si grainSize() est positionné
Définition à la ligne 125 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Nombre maximal de threads autorisés.
Définition à la ligne 89 du fichier ParallelLoopOptions.h.
Références m_max_thread.
Référencé par Arcane::TBBTaskImplementation::_executeMDParallelFor(), Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), et mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Fusionne les valeurs non modifiées de l'instance par celles de po.
Définition à la ligne 130 du fichier ParallelLoopOptions.h.
Références grainSize(), hasGrainSize(), hasMaxThread(), hasPartitioner(), maxThread(), partitioner(), setGrainSize(), setMaxThread(), et setPartitioner().
Référencé par Arcane::TBBTaskImplementation::_executeMDParallelFor().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
inline |
Type du partitionneur.
Définition à la ligne 117 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Positionne la taille (approximative) d'un intervalle d'itération.
Définition à la ligne 108 du fichier ParallelLoopOptions.h.
Références m_grain_size.
Référencé par ArcaneTest::MeshMaterialTesterModule::_checkCreation(), Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Accelerator::impl::RunCommandLaunchInfo::computeParallelLoopOptions(), Arcane::Accelerator::impl::MultiThreadAlgo::doScan(), Arcane::TBBTaskImplementation::executeParallelFor(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), et mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
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 97 du fichier ParallelLoopOptions.h.
Références m_max_thread.
Référencé par Arcane::TBBTaskImplementation::initialize(), et mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
inline |
Positionne le type du partitionneur.
Définition à la ligne 119 du fichier ParallelLoopOptions.h.
Référencé par mergeUnsetValues().
Voici le graphe des appelants de cette fonction :
|
private |
Définition à la ligne 149 du fichier ParallelLoopOptions.h.
|
private |
Taille d'un bloc de la boucle.
Nombre maximum de threads pour la boucle
Définition à la ligne 143 du fichier ParallelLoopOptions.h.
Référencé par grainSize(), et setGrainSize().
|
private |
Type de partitionneur.
Définition à la ligne 145 du fichier ParallelLoopOptions.h.
Référencé par maxThread(), et setMaxThread().
|
private |
Définition à la ligne 147 du fichier ParallelLoopOptions.h.