STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Protected Member Functions | Protected Types | Friends
stapl::paragraph_impl::identity_task_impl< SchedulerEntry, EnableMigration, EnablePersistence, ViewSet > Class Template Reference

Implementation base class for Task class template specializations involving identity tasks. Inspects the incoming edge and attempts to move / share the associated value object instead of copying. More...

Public Member Functions

template<typename SchedInfoParam , typename WFParam , typename ViewParam >
 identity_task_impl (detail::edge_entry_base *edge_entry_ptr, SchedInfoParam &&si, WFParam const &, ViewParam &&view)
 
result_type operator() (tg_callback const &cb) final
 Invokes workfunction with the specified view set.
 
bool migratable (void) const noexcept final
 Return true if task can be migrated. More...
 
void migrate (std::size_t, tg_callback const &) final
 Method overridden in Task to request migration of this task by task_graph. More...
 
bool is_factory_task (void) const noexcept final
 Pure virtual method implemented by derived classes to report whether or not they are instance of the class template factory_task. More...
 
std::size_t task_id () const
 Extract task identifier from bit field and return it.
 
p_object const & comm_p_object (tg_callback const &cb) const
 Use presence/lack of intra-PARAGRAPH successors to inform the execution in which task communication group this task's traffic should be placed. More...
 
virtual bool finished (void) const
 Return true if task has completed and does not need reinvocation. This default implementation is used by the non factory tasks, where the method should never be called.
 
virtual bool reinvoke (tg_callback const &)
 Reinvoke the task if it has not completed. This default implementation is used by the non factory tasks, where the method should never be called. More...
 
virtual bool is_nested_pg_task (void) const noexcept
 Allows detection of derived class acting as holder for nested paragraph. Used paragraph::operator() to detect starting tasks which are actually nested paragraphs to avoid passing them to the executor.
 

Public Types

enum  status_type { Active, Idle, Finished }
 Return values for function operator. More...
 

Protected Member Functions

bool has_succs () const
 Extract the has successors boolean trait from the bit field and return. More...
 
void processed (empty_class &&ignore, bool b_has_succs, tg_callback const &) const
 Notify the PARAGRAPH that the task has finished execution and provide the return value to trigger data flow. Signature for void return values. More...
 
template<typename Return >
void processed (Return &&val, bool b_has_succs, tg_callback const &) const
 Notify the PARAGRAPH that the task has finished execution and provide the return value to trigger data flow. Signature for non void return values. More...
 

Protected Types

using result_type = runnable_base::status_type
 the type returned by the function operator with status information for the executor.
 

Friends

class task_graph
 

Detailed Description

template<typename SchedulerEntry, typename EnableMigration, typename EnablePersistence, typename ViewSet>
class stapl::paragraph_impl::identity_task_impl< SchedulerEntry, EnableMigration, EnablePersistence, ViewSet >

Implementation base class for Task class template specializations involving identity tasks. Inspects the incoming edge and attempts to move / share the associated value object instead of copying.

Member Enumeration Documentation

◆ status_type

Return values for function operator.

Enumerator
Active 

Runnable object is active.

Idle 

Runnable object is idle.

Finished 

Runnable object has finished.

Member Function Documentation

◆ migratable()

template<typename SchedulerEntry, typename EnableMigration, typename EnablePersistence, typename ViewSet>
bool stapl::paragraph_impl::identity_task_impl< SchedulerEntry, EnableMigration, EnablePersistence, ViewSet >::migratable ( void  ) const
finalvirtualnoexcept

Return true if task can be migrated.

This default implementation is used by the factory task, where migration is not allowed.

Reimplemented from stapl::paragraph_impl::task_base.

◆ migrate()

template<typename SchedulerEntry, typename EnableMigration, typename EnablePersistence, typename ViewSet>
void stapl::paragraph_impl::identity_task_impl< SchedulerEntry, EnableMigration, EnablePersistence, ViewSet >::migrate ( std::size_t  ,
tg_callback const &   
)
finalvirtual

Method overridden in Task to request migration of this task by task_graph.

Parameters
dest_locThe location the task should be migrated to.
cbCallback wrapper to the associated PARAGRAPH.

Reimplemented from stapl::paragraph_impl::task_base_intermediate< SchedulerEntry >.

◆ is_factory_task()

template<typename SchedulerEntry, typename EnableMigration, typename EnablePersistence, typename ViewSet>
bool stapl::paragraph_impl::identity_task_impl< SchedulerEntry, EnableMigration, EnablePersistence, ViewSet >::is_factory_task ( void  ) const
finalvirtualnoexcept

Pure virtual method implemented by derived classes to report whether or not they are instance of the class template factory_task.

Used by the runtime executor and scheduler to specialize scheduling (i.e., execute once immediately upon being made runnable).

Implements stapl::paragraph_impl::task_base.

◆ has_succs()

bool stapl::paragraph_impl::task_base::has_succs ( ) const
protectedinherited

Extract the has successors boolean trait from the bit field and return.

Returns
True if this task has successors in the PARAGRAPH.

◆ processed() [1/2]

void stapl::paragraph_impl::task_base::processed ( empty_class &&  ignore,
bool  b_has_succs,
tg_callback const &  cb 
) const
protectedinherited

Notify the PARAGRAPH that the task has finished execution and provide the return value to trigger data flow. Signature for void return values.

Parameters
ignoreParameter passed in place of void for genericity. Unused.

Called from derived class function operator implementations.

◆ processed() [2/2]

template<typename Return >
void stapl::paragraph_impl::task_base::processed ( Return &&  val,
bool  b_has_succs,
tg_callback const &  cb 
) const
protectedinherited

Notify the PARAGRAPH that the task has finished execution and provide the return value to trigger data flow. Signature for non void return values.

Parameters
valThe return value of the workfunction invocation.

Called from derived class function operator implementations.

◆ comm_p_object()

p_object const & stapl::paragraph_impl::task_base::comm_p_object ( tg_callback const &  cb) const
inherited

Use presence/lack of intra-PARAGRAPH successors to inform the execution in which task communication group this task's traffic should be placed.

Parameters
cbCallback mechanism to PARAGRAPH passed to task by its executor.

◆ reinvoke()

virtual bool stapl::paragraph_impl::task_base::reinvoke ( tg_callback const &  )
virtualinherited

Reinvoke the task if it has not completed. This default implementation is used by the non factory tasks, where the method should never be called.

Returns
true if it needs to be reinvoked again, otherwise false.

Reimplemented in stapl::paragraph_impl::factory_task< Factory, ViewSet, SchedulerEntry, PGV >, and stapl::paragraph_impl::factory_task< Factory, view_manager< coarsener_type< Factory >::type, Views... >::result_type, Scheduler::entry_type, paragraph_impl::paragraph_view< Scheduler > >.


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