Executor for scheduling runnable tasks with specific scheduling information. More...
Public Member Functions | |
template<typename Scheduler > | |
executor (TaskGraph &tg, Scheduler &&s) | |
void | notify_finished (void) |
Calls the notifier that informs that this executor has finished. | |
result_type | populate (void) override |
Populates the executor with entries if there is a factory task. More... | |
result_type | operator() (void) override |
Executes some entries. | |
void | operator() (execute_all_t) override |
Executes all entries. | |
bool | empty (void) override |
scheduler_type const & | scheduler (void) const noexcept |
scheduler_type & | scheduler (void) noexcept |
bool | is_bound (void) const noexcept |
Returns true if this executor is inserted to another executor. | |
void | bind_to (const runtime::gang_id gid) |
Binds this executor to the executor of gid . | |
template<typename RunnableFunction , typename FinishedFunction > | |
void | set_notifiers (RunnableFunction &&rf, chunker::entry_type &entry, FinishedFunction &&ff) |
Sets the notifiers to be called when the executor becomes runnable or has finished execution and associates it with a chunker entry. | |
void | retire_chunker_entry (void) noexcept |
Retires the chunker entry associated with this executor. | |
bool | idle (void) const noexcept |
Returns true if the executor is processing entries. | |
void | add_task (runnable_base *t) |
Adds a task without scheduling information. | |
template<typename SchedInfo > | |
void | add_executor (executor_base *, SchedInfo &&, const bool is_gang_executor=false) |
Adds an executor with the given scheduling information. | |
void | add_executor (executor_base *ex, none_t, const bool is_gang_executor=false) |
Adds an executor without scheduling information. | |
void | add_executor (executor_base *ex, const bool is_gang_executor=false) |
Adds an executor without scheduling information. More... | |
Public Types | |
using | scheduler_type = typename TaskGraph::scheduler_type |
using | sched_info_type = typename scheduler_type::sched_info_type |
using | result_type = executor_base::result_type |
enum | status_type { Active, Idle, Finished } |
Return values for function operator. More... | |
Protected Member Functions | |
void | add_task_impl (runnable_base *t) override |
void | add_executor_impl (executor_base *, sched_info_type const &, const bool) override |
Adds an executor with the given scheduling information. More... | |
void | add_executor_impl (executor_base *, sched_info_type &&, const bool) override |
Adds an executor with the given scheduling information. More... | |
void | add_executor_impl (executor_base *, const bool) override |
Adds an executor without scheduling information. More... | |
void | print (std::ostream &os) override |
Outputs information about this executor_base. More... | |
virtual void | add_executor_impl (executor_base *, TaskGraph::scheduler_type::sched_info_type const &, const bool is_gang_executor)=0 |
virtual void | add_executor_impl (executor_base *, TaskGraph::scheduler_type::sched_info_type &&, const bool is_gang_executor)=0 |
void | notify_runnable (void) |
Signals that the executor is runnable. | |
Protected Attributes | |
runtime::bool_mutex | m_executing |
Executor for scheduling runnable tasks with specific scheduling information.
TaskGraph | Task graph type. |
|
inherited |
|
overrideprotectedvirtual |
Implements stapl::executor_base.
|
overrideprotected |
Adds an executor with the given scheduling information.
|
overrideprotected |
Adds an executor with the given scheduling information.
|
overrideprotectedvirtual |
Adds an executor without scheduling information.
Implements stapl::executor_base.
|
overrideprotectedvirtual |
Outputs information about this executor_base.
Implements stapl::executor_base.
|
overridevirtual |
Populates the executor with entries if there is a factory task.
Implements stapl::executor_base.
|
inherited |
Adds an executor without scheduling information.