Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::ITaskImplementation Class Referenceabstract

Public Member Functions

virtual void initialize (Int32 nb_thread)=0
virtual void terminate ()=0
virtual ITaskcreateRootTask (ITaskFunctor *f)=0
 Creates a root task. The implementation must copy the value of f, which is either a TaskFunctor or a TaskFunctorWithContext.
virtual void executeParallelFor (Integer begin, Integer size, const ParallelLoopOptions &options, IRangeFunctor *f)=0
 Executes the functor f in parallel.
virtual void executeParallelFor (Integer begin, Integer size, Integer block_size, IRangeFunctor *f)=0
 Executes the functor f in parallel.
virtual void executeParallelFor (Integer begin, Integer size, IRangeFunctor *f)=0
 Executes the functor f in parallel.
virtual void executeParallelFor (const ParallelFor1DLoopInfo &loop_info)=0
 Executes the loop loop_info in parallel.
virtual void executeParallelFor (const ComplexForLoopRanges< 1 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 1 > *functor)=0
 Executes a 1D loop in parallel.
virtual void executeParallelFor (const ComplexForLoopRanges< 2 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 2 > *functor)=0
 Executes a 2D loop in parallel.
virtual void executeParallelFor (const ComplexForLoopRanges< 3 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 3 > *functor)=0
 Executes a 3D loop in parallel.
virtual void executeParallelFor (const ComplexForLoopRanges< 4 > &loop_ranges, const ForLoopRunInfo &run_info, IMDRangeFunctor< 4 > *functor)=0
 Executes a 4D loop in parallel.
virtual bool isActive () const =0
 Indicates if the implementation is active.
Int32 nbAllowedThread () const
 Maximum number of threads used to manage tasks.
virtual Int32 currentTaskThreadIndex () const =0
 Implementation of TaskFactory::currentTaskThreadIndex().
virtual Int32 currentTaskIndex () const =0
 Implementation of TaskFactory::currentTaskIndex().
virtual void printInfos (std::ostream &o) const =0
 Prints information about the runtime used.

Detailed Description

Definition at line 37 of file ITaskImplementation.h.

Member Function Documentation

◆ createRootTask()

virtual ITask * Arcane::ITaskImplementation::createRootTask ( ITaskFunctor * f)
pure virtual

Creates a root task. The implementation must copy the value of f, which is either a TaskFunctor or a TaskFunctorWithContext.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ 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 ForLoopRunInfo & run_info,
IMDRangeFunctor< 1 > * functor )
pure virtual

Executes a 1D loop in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [2/8]

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

Executes a 2D loop in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [3/8]

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

Executes a 3D loop in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [4/8]

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

Executes a 4D loop in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [5/8]

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

Executes the loop loop_info in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [6/8]

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

Executes the functor f in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [7/8]

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

Executes the functor f in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ executeParallelFor() [8/8]

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

Executes the functor f in parallel.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

◆ isActive()

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

Indicates if the implementation is active.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

References nbAllowedThread().

◆ nbAllowedThread()

Int32 Arcane::ITaskImplementation::nbAllowedThread ( ) const

Maximum number of threads used to manage tasks.

Definition at line 130 of file ConcurrencyGlobal.cc.

References Arcane::ConcurrencyBase::maxAllowedThread().

Referenced by Arcane::TBBTaskImplementation::currentTaskThreadIndex(), and isActive().

◆ printInfos()

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

Prints information about the runtime used.

Implemented in Arcane::NullTaskImplementation, and Arcane::TBBTaskImplementation.

References printInfos().

Referenced by printInfos().


The documentation for this class was generated from the following files: