Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::TBBTaskImplementation
+ Graphe d'héritage de Arcane::TBBTaskImplementation:
+ Graphe de collaboration de Arcane::TBBTaskImplementation:

Classes

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

Fonctions membres publiques

 TBBTaskImplementation (const ServiceBuildInfo &sbi)
 
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
 
void executeParallelFor (Int32 begin, Int32 size, Integer grain_size, IRangeFunctor *f) final
 
void executeParallelFor (Int32 begin, Int32 size, IRangeFunctor *f) final
 
void executeParallelFor (const ParallelFor1DLoopInfo &loop_info) override
 Exécute la boucle loop_info en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 1 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 1 > *functor) final
 Exécute une boucle 1D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 2 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 2 > *functor) final
 Exécute une boucle 2D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 3 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 3 > *functor) final
 Exécute une boucle 3D en concurrence.
 
void executeParallelFor (const ComplexForLoopRanges< 4 > &loop_ranges, const ParallelLoopOptions &options, IMDRangeFunctor< 4 > *functor) final
 Exécute une boucle 4D en concurrence.
 
bool isActive () const final
 Indique si l'implémentation est active.
 
Int32 nbAllowedThread () const final
 Nombre de threads utilisés au maximum pour gérer les tâches.
 
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é
 
TaskThreadInfocurrentTaskThreadInfo () const
 Instance de TaskThreadInfo associé au thread courant.
 
- Fonctions membres publiques hérités de Arcane::ITaskImplementation
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.
 

Fonctions membres privées

template<int RankValue>
void _executeMDParallelFor (const ComplexForLoopRanges< RankValue > &loop_ranges, IMDRangeFunctor< RankValue > *functor, const ParallelLoopOptions &options)
 Exécution d'une boucle N-dimensions.
 
void _executeParallelFor (const ParallelFor1DLoopInfo &loop_info)
 

Attributs privés

bool m_is_active
 
Implm_p
 

Description détaillée

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

Documentation des constructeurs et destructeur

◆ TBBTaskImplementation()

Arcane::TBBTaskImplementation::TBBTaskImplementation ( const ServiceBuildInfo sbi)
inline

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

◆ ~TBBTaskImplementation()

Arcane::TBBTaskImplementation::~TBBTaskImplementation ( )
override

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

Documentation des fonctions membres

◆ _executeMDParallelFor()

template<int RankValue>
void Arcane::TBBTaskImplementation::_executeMDParallelFor ( const ComplexForLoopRanges< RankValue > &  loop_ranges,
IMDRangeFunctor< RankValue > *  functor,
const ParallelLoopOptions options 
)
private

Exécution d'une boucle N-dimensions.

Avertissement
L'implémentation actuelle ne tient pas compte de options

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

Références Arcane::TaskFactory::defaultParallelLoopOptions(), Arcane::makeLoopRanges(), Arcane::ParallelLoopOptions::maxThread(), Arcane::CheckedConvert::toInteger(), et Arcane::TaskFactory::verboseLevel().

◆ _executeParallelFor()

void Arcane::TBBTaskImplementation::_executeParallelFor ( const ParallelFor1DLoopInfo loop_info)
private

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

◆ build()

void Arcane::TBBTaskImplementation::build ( )
inline

Définition à la ligne 422 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 426 du fichier TBBTaskImplementation.cc.

◆ currentTaskIndex()

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

Implémentation de TaskFactory::currentTaskIndex()

Implémente Arcane::ITaskImplementation.

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

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

◆ currentTaskThreadIndex()

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

Implémentation de TaskFactory::currentTaskThreadIndex()

Implémente Arcane::ITaskImplementation.

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

Références nbAllowedThread().

Référencé par currentTaskIndex(), et currentTaskThreadInfo().

◆ 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 1200 du fichier TBBTaskImplementation.cc.

Références currentTaskThreadIndex().

Référencé par currentTaskIndex().

◆ executeParallelFor() [1/6]

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

Exécute une boucle 1D en concurrence.

Implémente Arcane::ITaskImplementation.

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

◆ executeParallelFor() [2/6]

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

Exécute une boucle 2D en concurrence.

Implémente Arcane::ITaskImplementation.

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

◆ executeParallelFor() [3/6]

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

Exécute une boucle 3D en concurrence.

Implémente Arcane::ITaskImplementation.

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

◆ executeParallelFor() [4/6]

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

Exécute une boucle 4D en concurrence.

Implémente Arcane::ITaskImplementation.

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

◆ executeParallelFor() [5/6]

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 1112 du fichier TBBTaskImplementation.cc.

◆ executeParallelFor() [6/6]

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

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

◆ initialize()

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

. 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émente Arcane::ITaskImplementation.

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

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

◆ isActive()

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

Indique si l'implémentation est active.

Implémente Arcane::ITaskImplementation.

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

◆ nbAllowedThread()

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

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

Implémente Arcane::ITaskImplementation.

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

Référencé par currentTaskThreadIndex(), et initialize().

◆ 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 1047 du fichier TBBTaskImplementation.cc.

◆ terminate()

void Arcane::TBBTaskImplementation::terminate ( )
overridevirtual

. Termine l'utilisation de l'implémentation. Cette méthode doit être appelée en fin de calcul uniquement.

Implémente Arcane::ITaskImplementation.

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

Documentation des données membres

◆ m_is_active

bool Arcane::TBBTaskImplementation::m_is_active
private

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

◆ m_p

Impl* Arcane::TBBTaskImplementation::m_p
private

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


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