Arcane  v3.15.0.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 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 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 ForLoopRunInfo &run_info)
 Exécution d'une boucle N-dimensions.
 
void _executeParallelFor (const ParallelFor1DLoopInfo &loop_info)
 

Attributs privés

bool m_is_active = false
 
Implm_p = nullptr
 

Description détaillée

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

Documentation des constructeurs et destructeur

◆ TBBTaskImplementation()

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

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

◆ ~TBBTaskImplementation()

Arcane::TBBTaskImplementation::~TBBTaskImplementation ( )
override

Définition à la ligne 1062 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 ForLoopRunInfo run_info 
)
private

Exécution d'une boucle N-dimensions.

Avertissement
L'implémentation actuelle ne tient pas compte de options pour les boucles autres que une dimension.

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

Références Arcane::TaskFactory::defaultParallelLoopOptions(), Arcane::ParallelLoopOptions::grainSize(), Arcane::TBBTaskImplementation::Impl::m_sub_arena_list, 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 1125 du fichier TBBTaskImplementation.cc.

◆ build()

void Arcane::TBBTaskImplementation::build ( )
inline

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

◆ currentTaskIndex()

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

Implémentation de TaskFactory::currentTaskIndex()

Implémente Arcane::ITaskImplementation.

Définition à la ligne 1284 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 491 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 1272 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 ForLoopRunInfo run_info,
IMDRangeFunctor< 1 > *  functor 
)
inlinefinalvirtual

Exécute une boucle 1D en concurrence.

Implémente Arcane::ITaskImplementation.

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

◆ executeParallelFor() [2/6]

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

◆ executeParallelFor() [3/6]

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

◆ executeParallelFor() [4/6]

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

◆ executeParallelFor() [6/6]

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

Définition à la ligne 453 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 1071 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 484 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 1098 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 1107 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 1089 du fichier TBBTaskImplementation.cc.

Documentation des données membres

◆ m_is_active

bool Arcane::TBBTaskImplementation::m_is_active = false
private

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

◆ m_p

Impl* Arcane::TBBTaskImplementation::m_p = nullptr
private

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


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