Implémentation d'une fabrique de tâches. Plus de détails...
Graphe d'héritage de Arcane::ITaskImplementation:
Graphe de collaboration de Arcane::ITaskImplementation: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 ForLoopRunInfo &run_info, IMDRangeFunctor< 1 > *functor)=0 |
| Exécute une boucle 1D en concurrence. | |
| virtual void | executeParallelFor (const ComplexForLoopRanges< 2 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 2 > *functor)=0 |
| Exécute une boucle 2D en concurrence. | |
| virtual void | executeParallelFor (const ComplexForLoopRanges< 3 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 3 > *functor)=0 |
| Exécute une boucle 3D en concurrence. | |
| virtual void | executeParallelFor (const ComplexForLoopRanges< 4 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 4 > *functor)=0 |
| Exécute une boucle 4D en concurrence. | |
| virtual bool | isActive () const =0 |
| Indique si l'implémentation est active. | |
| Int32 | nbAllowedThread () const |
| 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 36 du fichier ITaskImplementation.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::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Implémentation de TaskFactory::currentTaskIndex()
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
Références currentTaskIndex().
Référencé par currentTaskIndex().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
pure virtual |
Implémentation de TaskFactory::currentTaskThreadIndex()
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
Références currentTaskThreadIndex().
Référencé par currentTaskThreadIndex().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
pure virtual |
Exécute une boucle 1D en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute une boucle 2D en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute une boucle 3D en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute une boucle 4D en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute la boucle loop_info en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Exécute le fonctor f en concurrence.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
. 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::NullTaskImplementation, et Arcane::TBBTaskImplementation.
|
pure virtual |
Indique si l'implémentation est active.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
Références nbAllowedThread().
Voici le graphe d'appel pour cette fonction :| Int32 Arcane::ITaskImplementation::nbAllowedThread | ( | ) | const |
Nombre de threads utilisés au maximum pour gérer les tâches.
Définition à la ligne 129 du fichier ConcurrencyGlobal.cc.
Références Arcane::ConcurrencyBase::maxAllowedThread().
Référencé par Arcane::TBBTaskImplementation::currentTaskThreadIndex(), Arcane::TBBTaskImplementation::initialize(), et isActive().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
pure virtual |
Affiche les informations sur le runtime utilisé
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.
Références printInfos().
Référencé par printInfos().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
pure virtual |
. Termine l'utilisation de l'implémentation. Cette méthode doit être appelée en fin de calcul uniquement.
Implémenté dans Arcane::NullTaskImplementation, et Arcane::TBBTaskImplementation.