Arcane  v4.1.1.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::TBBTaskImplementation

Classes

class  Impl
 
class  ParallelForExecute
 
class  TaskInfoLockGuard
 Classe pour positionner TaskThreadInfo::taskIndex(). Plus de détails...
 

Fonctions membres publiques

class ARCCORE_ALIGNAS_PACKED (64) TaskThreadInfo
 
void build ()
 
void initialize (Int32 nb_thread) override
 
void terminate () override
 
ITaskcreateRootTask (ITaskFunctor *f) override
 Créé une tâche racine. L'implémentation doit recopier la valeur de f qui est soit un TaskFunctor, soit un TaskFunctorWithContext.
 
void executeParallelFor (Int32 begin, Int32 size, const ParallelLoopOptions &options, IRangeFunctor *f) final
 Exécute le fonctor f en concurrence.
 
void executeParallelFor (Int32 begin, Int32 size, Integer grain_size, IRangeFunctor *f) final
 Exécute le fonctor f en concurrence.
 
void executeParallelFor (Int32 begin, Int32 size, IRangeFunctor *f) final
 Exécute le fonctor f en concurrence.
 
void executeParallelFor (const ParallelFor1DLoopInfo &loop_info) override
 Exécute la boucle loop_info en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 1 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 1 > *functor) final
 Exécute une boucle 1D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 2 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 2 > *functor) final
 Exécute une boucle 2D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 3 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 3 > *functor) final
 Exécute une boucle 3D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 4 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 4 > *functor) final
 Exécute une boucle 4D en concurrence.
 
bool isActive () const final
 Indique si l'implémentation est active.
 
Int32 currentTaskThreadIndex () const final
 Implémentation de TaskFactory::currentTaskThreadIndex()
 
Int32 currentTaskIndex () const final
 Implémentation de TaskFactory::currentTaskIndex()
 
void printInfos (std::ostream &o) const final
 Affiche les informations sur le runtime utilisé
 
TaskThreadInfo * currentTaskThreadInfo () const
 Instance de TaskThreadInfo associé au thread courant.
 
- Fonctions membres publiques hérités de Arcane::ITaskImplementation
Int32 nbAllowedThread () const
 Nombre de threads utilisés au maximum pour gérer les tâches.
 

Description détaillée

Définition à la ligne 342 du fichier TBBTaskImplementation.cc.

Documentation des constructeurs et destructeur

◆ ~TBBTaskImplementation()

Arcane::TBBTaskImplementation::~TBBTaskImplementation ( )
override

Définition à la ligne 1032 du fichier TBBTaskImplementation.cc.

Documentation des fonctions membres

◆ ARCCORE_ALIGNAS_PACKED()

class Arcane::TBBTaskImplementation::ARCCORE_ALIGNAS_PACKED ( 64 )
inline

Définition à la ligne 331 du fichier TBBTaskImplementation.cc.

◆ build()

void Arcane::TBBTaskImplementation::build ( )
inline

Définition à la ligne 410 du fichier TBBTaskImplementation.cc.

◆ createRootTask()

ITask * Arcane::TBBTaskImplementation::createRootTask ( ITaskFunctor * f)
inlineoverridevirtual

Créé une tâche racine. L'implémentation doit recopier la valeur de f qui est soit un TaskFunctor, soit un TaskFunctorWithContext.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 414 du fichier TBBTaskImplementation.cc.

◆ currentTaskIndex()

Int32 Arcane::TBBTaskImplementation::currentTaskIndex ( ) const
finalvirtual

Implémentation de TaskFactory::currentTaskIndex()

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1239 du fichier TBBTaskImplementation.cc.

Références currentTaskThreadIndex(), et currentTaskThreadInfo().

◆ currentTaskThreadIndex()

Int32 Arcane::TBBTaskImplementation::currentTaskThreadIndex ( ) const
inlinefinalvirtual

◆ currentTaskThreadInfo()

TBBTaskImplementation::TaskThreadInfo * Arcane::TBBTaskImplementation::currentTaskThreadInfo ( ) const

Instance de TaskThreadInfo associé au thread courant.

Peut-être nul si le thread courant n'est pas associé à un thread TBB ou si en dehors d'une exécution d'une tâche ou d'une boucle parallèle.

Définition à la ligne 1227 du fichier TBBTaskImplementation.cc.

Références currentTaskThreadIndex().

Référencé par currentTaskIndex().

◆ executeParallelFor() [1/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 1 > & loop_ranges,
const ForLoopRunInfo & run_info,
IMDRangeFunctor< 1 > * functor )
inlinefinalvirtual

Exécute une boucle 1D en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 428 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [2/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 2 > & loop_ranges,
const ForLoopRunInfo & run_info,
IMDRangeFunctor< 2 > * functor )
inlinefinalvirtual

Exécute une boucle 2D en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 434 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [3/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 3 > & loop_ranges,
const ForLoopRunInfo & run_info,
IMDRangeFunctor< 3 > * functor )
inlinefinalvirtual

Exécute une boucle 3D en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 440 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [4/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( const ComplexForLoopRanges< 4 > & loop_ranges,
const ForLoopRunInfo & run_info,
IMDRangeFunctor< 4 > * functor )
inlinefinalvirtual

Exécute une boucle 4D en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 446 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [5/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( const ParallelFor1DLoopInfo & loop_info)
overridevirtual

Exécute la boucle loop_info en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1128 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [6/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( Int32 begin,
Int32 size,
const ParallelLoopOptions & options,
IRangeFunctor * f )
finalvirtual

Exécute le fonctor f en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1218 du fichier TBBTaskImplementation.cc.

Références executeParallelFor().

Référencé par executeParallelFor(), executeParallelFor(), et executeParallelFor().

◆ executeParallelFor() [7/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( Int32 begin,
Int32 size,
Integer block_size,
IRangeFunctor * f )
finalvirtual

Exécute le fonctor f en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1206 du fichier TBBTaskImplementation.cc.

Références Arcane::TaskFactory::defaultParallelLoopOptions(), executeParallelFor(), et Arcane::ParallelLoopOptions::setGrainSize().

◆ executeParallelFor() [8/8]

void Arcane::TBBTaskImplementation::executeParallelFor ( Int32 begin,
Int32 size,
IRangeFunctor * f )
inlinefinalvirtual

Exécute le fonctor f en concurrence.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 422 du fichier TBBTaskImplementation.cc.

Références Arcane::TaskFactory::defaultParallelLoopOptions(), et executeParallelFor().

◆ initialize()

void Arcane::TBBTaskImplementation::initialize ( Int32 nb_thread)
overridevirtual

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1041 du fichier TBBTaskImplementation.cc.

◆ isActive()

bool Arcane::TBBTaskImplementation::isActive ( ) const
inlinefinalvirtual

Indique si l'implémentation est active.

Implémente Arcane::ITaskImplementation.

Définition à la ligne 453 du fichier TBBTaskImplementation.cc.

◆ printInfos()

void Arcane::TBBTaskImplementation::printInfos ( std::ostream & o) const
finalvirtual

Affiche les informations sur le runtime utilisé

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1068 du fichier TBBTaskImplementation.cc.

◆ terminate()

void Arcane::TBBTaskImplementation::terminate ( )
overridevirtual

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1059 du fichier TBBTaskImplementation.cc.


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