FleCSI Core API Version: 2.4.0
 
Loading...
Searching...
No Matches
scheduler Struct Reference

Launches tasks according to their execution-space (template) parameters. More...

Public Member Functions

template<class T , class... AA>
auto & allocate (std::unique_ptr< topology< T > > &p, const typename T::coloring &c, AA &&... aa)
 Create a topology instance with specialization support.
 
template<class V , class... AA>
auto execute (AA &&... aa)
 Launch a variant of a task.
 
template<auto & F, class... AA>
auto execute (AA &&... aa)
 Launch a task.
 
template<class , class R , class... AA>
auto reduce (AA &&...)
 Launch a variant of a reduction task.
 
template<auto & , class R , class... AA>
auto reduce (AA &&...)
 Launch a reduction task.
 
const flecsi::runtimeruntime () const
 Get the runtime (which created this scheduler).
 
 scheduler (scheduler &&)=delete
 Immovable.
 
template<class V , class... AA>
int test (AA &&... aa)
 Execute a variant of a test task.
 
template<auto & , class... AA>
int test (AA &&...)
 Execute a test task.
 

Detailed Description

Launches tasks according to their execution-space (template) parameters.

An instance is passed to control-model actions that accept it.

Note
MPI tasks cannot use this interface.

Constructor & Destructor Documentation

◆ scheduler()

scheduler ( scheduler && )
delete

Immovable.

Member Function Documentation

◆ reduce() [1/2]

template<class , class R , class... AA>
auto reduce ( AA && ...)

Launch a variant of a reduction task.

◆ execute() [1/2]

template<class V , class... AA>
auto execute ( AA &&... aa)

Launch a variant of a task.

Template Parameters
Vclass with a static member task that is either a function or a function template with a single type template parameter S (the execution space). In the latter case, the signatures of the specializations for exec::cpu, exec::gpu, and exec::omp may vary only in that the type of a parameter may be S; an unspecified such specialization that is not deleted is launched.

◆ reduce() [2/2]

template<auto & , class R , class... AA>
auto reduce ( AA && ...)

Launch a reduction task.

Template Parameters
Rreduction operation
Returns
a future providing the reduced return value
See also
execute about parameter and argument types.

◆ execute() [2/2]

template<auto & F, class... AA>
auto execute ( AA &&... aa)

Launch a task.

◆ test()

template<auto & , class... AA>
int test ( AA && ...)
nodiscard

Execute a test task.

◆ runtime()

const flecsi::runtime & runtime ( ) const

Get the runtime (which created this scheduler).