Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ITaskImplementationabstract

Implémentation d'une fabrique de tâches. Plus de détails...

#include <arcane/utils/ConcurrencyUtils.h>

+ 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 ITaskcreateRootTask (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é
 

Description détaillée

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.

Documentation des constructeurs et destructeur

◆ ~ITaskImplementation()

virtual Arcane::ITaskImplementation::~ITaskImplementation ( )
inlinevirtual

Définition à la ligne 199 du fichier ConcurrencyUtils.h.

Documentation des fonctions membres

◆ createRootTask()

virtual ITask * Arcane::ITaskImplementation::createRootTask ( ITaskFunctor f)
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.

◆ currentTaskIndex()

virtual Int32 Arcane::ITaskImplementation::currentTaskIndex ( ) const
pure virtual

◆ currentTaskThreadIndex()

virtual Int32 Arcane::ITaskImplementation::currentTaskThreadIndex ( ) const
pure virtual

◆ executeParallelFor() [1/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 1 > &  loop_ranges,
const ParallelLoopOptions options,
IMDRangeFunctor< 1 > *  functor 
)
pure virtual

Exécute une boucle 1D en concurrence.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ executeParallelFor() [2/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 2 > &  loop_ranges,
const ParallelLoopOptions options,
IMDRangeFunctor< 2 > *  functor 
)
pure virtual

Exécute une boucle 2D en concurrence.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ executeParallelFor() [3/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 3 > &  loop_ranges,
const ParallelLoopOptions options,
IMDRangeFunctor< 3 > *  functor 
)
pure virtual

Exécute une boucle 3D en concurrence.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ executeParallelFor() [4/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 4 > &  loop_ranges,
const ParallelLoopOptions options,
IMDRangeFunctor< 4 > *  functor 
)
pure virtual

Exécute une boucle 4D en concurrence.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ executeParallelFor() [5/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( const ParallelFor1DLoopInfo loop_info)
pure virtual

Exécute la boucle loop_info en concurrence.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ executeParallelFor() [6/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( Integer  begin,
Integer  size,
const ParallelLoopOptions options,
IRangeFunctor f 
)
pure virtual

Exécute le fonctor f en concurrence.

Implémenté dans Arcane::NullTaskImplementation.

◆ executeParallelFor() [7/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( Integer  begin,
Integer  size,
Integer  block_size,
IRangeFunctor f 
)
pure virtual

Exécute le fonctor f en concurrence.

Implémenté dans Arcane::NullTaskImplementation.

◆ executeParallelFor() [8/8]

virtual void Arcane::ITaskImplementation::executeParallelFor ( Integer  begin,
Integer  size,
IRangeFunctor f 
)
pure virtual

Exécute le fonctor f en concurrence.

Implémenté dans Arcane::NullTaskImplementation.

◆ initialize()

virtual void Arcane::ITaskImplementation::initialize ( Int32  nb_thread)
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::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ isActive()

virtual bool Arcane::ITaskImplementation::isActive ( ) const
pure virtual

Indique si l'implémentation est active.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ nbAllowedThread()

virtual Int32 Arcane::ITaskImplementation::nbAllowedThread ( ) const
pure virtual

Nombre de threads utilisés au maximum pour gérer les tâches.

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ printInfos()

virtual void Arcane::ITaskImplementation::printInfos ( std::ostream &  o) const
pure virtual

Affiche les informations sur le runtime utilisé

Implémenté dans Arcane::TBBTaskImplementation, et Arcane::NullTaskImplementation.

◆ terminate()

virtual void Arcane::ITaskImplementation::terminate ( )
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::TBBTaskImplementation, et Arcane::NullTaskImplementation.


La documentation de cette classe a été générée à partir du fichier suivant :