Implémentation d'une fabrique de tâches. Plus de détails...
#include <arcane/utils/ConcurrencyUtils.h>
Fonctions membres publiques | |
virtual void | initialize (Int32 nb_thread)=0 |
virtual void | terminate ()=0 |
virtual ITask * | createRootTask (ITaskFunctor *f)=0 |
Créé une tâche racine. L'implémentation doit recopier la valeur de f qui est soit un TaskFunctor, soit un TaskFunctorWithContext. | |
virtual void | executeParallelFor (Integer begin, Integer size, const ParallelLoopOptions &options, IRangeFunctor *f)=0 |
Exécute le fonctor f en concurrence. | |
virtual void | executeParallelFor (Integer begin, Integer size, Integer block_size, IRangeFunctor *f)=0 |
Exécute le fonctor f en concurrence. | |
virtual void | executeParallelFor (Integer begin, Integer size, IRangeFunctor *f)=0 |
Exécute le fonctor f en concurrence. | |
virtual void | executeParallelFor (const ParallelFor1DLoopInfo &loop_info)=0 |
Exécute la boucle loop_info en concurrence. | |
virtual void | executeParallelFor (const ComplexForLoopRanges< 1 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 1 > *functor)=0 |
Exécute une boucle 1D en concurrence. | |
virtual void | executeParallelFor (const ComplexForLoopRanges< 2 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 2 > *functor)=0 |
Exécute une boucle 2D en concurrence. | |
virtual void | executeParallelFor (const ComplexForLoopRanges< 3 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 3 > *functor)=0 |
Exécute une boucle 3D en concurrence. | |
virtual void | executeParallelFor (const ComplexForLoopRanges< 4 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 4 > *functor)=0 |
Exécute une boucle 4D en concurrence. | |
virtual bool | isActive () const =0 |
Indique si l'implémentation est active. | |
virtual Int32 | nbAllowedThread () const =0 |
Nombre de threads utilisés au maximum pour gérer les tâches. | |
virtual Int32 | currentTaskThreadIndex () const =0 |
Implémentation de TaskFactory::currentTaskThreadIndex() | |
virtual Int32 | currentTaskIndex () const =0 |
Implémentation de TaskFactory::currentTaskIndex() | |
virtual void | printInfos (std::ostream &o) const =0 |
Affiche les informations sur le runtime utilisé | |
Implémentation d'une fabrique de tâches.
Cette classe est interne à Arcane. Pour gérer les tâches, il faut utiliser la classe TaskFactory.
Définition à la ligne 196 du fichier ConcurrencyUtils.h.
|
inlinevirtual |
Définition à la ligne 199 du fichier ConcurrencyUtils.h.
|
pure virtual |
Créé une tâche racine. L'implémentation doit recopier la valeur de f qui est soit un TaskFunctor, soit un TaskFunctorWithContext.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Implémentation de TaskFactory::currentTaskIndex()
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Implémentation de TaskFactory::currentTaskThreadIndex()
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute une boucle 1D en concurrence.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute une boucle 2D en concurrence.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute une boucle 3D en concurrence.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute une boucle 4D en concurrence.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute la boucle loop_info en concurrence.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation.
. Initialise l'implémentation avec au maximum nb_thread. Si nb_thread vaut 0, l'implémentation peut choisir le nombre de thread automatiquement. Cette méthode est interne à Arcane et ne doit être appelée que lors de l'initialisation de l'exécution.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
Indique si l'implémentation est active.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
|
pure virtual |
Nombre de threads utilisés au maximum pour gérer les tâches.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
Affiche les informations sur le runtime utilisé
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.
. Termine l'utilisation de l'implémentation. Cette méthode doit être appelée en fin de calcul uniquement.
Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.