class task_manager
Declaration
class task_manager { /* full declaration omitted */ };
Declared at: include/task_manager.h:24
Member Variables
- task_manager::delegate* m_delegate
- size_t m_num_collective_nodes
- policy_set m_policy
- task_graph& m_tdag
- task_id m_next_tid = initial_epoch_task
- task* m_epoch_for_new_tasks = nullptr
- std::unordered_map<buffer_id, buffer_state> m_buffers
- std::unordered_map<collective_group_id, task*> m_last_collective_tasks
- std::unordered_map<host_object_id, host_object_state> m_host_objects
- int m_task_horizon_step_size = 4
- int m_task_horizon_max_parallelism = 64
- int m_max_pseudo_critical_path_length = 0
- int m_current_horizon_critical_path_length = 0
- task* m_current_horizon = nullptr
- size_t m_num_user_command_groups_submitted = 0
- size_t m_num_user_epochs_generated = 0
- std::unordered_set<task*> m_execution_front
- detail::task_recorder* m_task_recorder
- static const task_id initial_epoch_task = 0
Member Function Overview
- generate_command_group_task(raw_command_group && cg) → task_id
- generate_epoch_task(epoch_action action, std::unique_ptr<task_promise> promise = nullptr) → task_id
- generate_fence_task(buffer_access access, std::unique_ptr<task_promise> fence_promise) → task_id
- generate_fence_task(host_object_effect effect, std::unique_ptr<task_promise> fence_promise) → task_id
- notify_buffer_created(buffer_id bid, const range<3> & range, bool host_initialized) → void
- notify_buffer_debug_name_changed(buffer_id bid, const std::string & name) → void
- notify_buffer_destroyed(buffer_id bid) → void
- notify_host_object_created(host_object_id hoid) → void
- notify_host_object_destroyed(host_object_id hoid) → void
- operator=(task_manager) → task_manager &
- operator=(task_manager &&) → task_manager &
- set_horizon_max_parallelism(int para) → void
- set_horizon_step(int step) → void
- task_manager(const task_manager &)
- task_manager(task_manager &&)
- task_manager(size_t num_collective_nodes, task_graph & tdag, detail::task_recorder * recorder, task_manager::delegate * dlg, const policy_set & policy = default_policy_set())
- ~task_manager()
- add_dependency(task & depender, task & dependee, dependency_kind kind, dependency_origin origin) → void
- compute_dependencies(task & tsk) → void
- default_policy_set() → static constexpr policy_set
- generate_horizon_task() → task_id
- invoke_callbacks(const task * tsk) const → void
- need_new_horizon() const → bool
- print_buffer_debug_label(buffer_id bid) const → std::string
- reduce_execution_front(std::unique_ptr<task> new_front) → task &
- register_task_internal(std::unique_ptr<task> task) → task &
- set_epoch_for_new_tasks(task * epoch) → void
Member Functions
¶task_id generate_command_group_task(
raw_command_group&& cg)
task_id generate_command_group_task(
raw_command_group&& cg)
Declared at: include/task_manager.h:57
Parameters
- raw_command_group&& cg
¶task_id generate_epoch_task(
epoch_action action,
std::unique_ptr<task_promise> promise =
nullptr)
task_id generate_epoch_task(
epoch_action action,
std::unique_ptr<task_promise> promise =
nullptr)
Description
Inserts an epoch task that depends on the entire execution front and that immediately becomes the current epoch_for_new_tasks and the last writer for all buffers.
Declared at: include/task_manager.h:72
Parameters
- epoch_action action
- std::unique_ptr<task_promise> promise = nullptr
¶task_id generate_fence_task(
buffer_access access,
std::unique_ptr<task_promise> fence_promise)
task_id generate_fence_task(
buffer_access access,
std::unique_ptr<task_promise> fence_promise)
Declared at: include/task_manager.h:74
Parameters
- buffer_access access
- std::unique_ptr<task_promise> fence_promise
¶task_id generate_fence_task(
host_object_effect effect,
std::unique_ptr<task_promise> fence_promise)
task_id generate_fence_task(
host_object_effect effect,
std::unique_ptr<task_promise> fence_promise)
Declared at: include/task_manager.h:76
Parameters
- host_object_effect effect
- std::unique_ptr<task_promise> fence_promise
¶void notify_buffer_created(buffer_id bid,
const range<3>& range,
bool host_initialized)
void notify_buffer_created(buffer_id bid,
const range<3>& range,
bool host_initialized)
Description
Adds a new buffer for dependency tracking
Declared at: include/task_manager.h:82
Parameters
- buffer_id bid
- const range<3>& range
- bool host_initialized
- Whether this buffer has been initialized using a host pointer (i.e., it contains useful data before any write-task)
¶void notify_buffer_debug_name_changed(
buffer_id bid,
const std::string& name)
void notify_buffer_debug_name_changed(
buffer_id bid,
const std::string& name)
Declared at: include/task_manager.h:84
Parameters
- buffer_id bid
- const std::string& name
¶void notify_buffer_destroyed(buffer_id bid)
void notify_buffer_destroyed(buffer_id bid)
Declared at: include/task_manager.h:86
Parameters
- buffer_id bid
¶void notify_host_object_created(
host_object_id hoid)
void notify_host_object_created(
host_object_id hoid)
Declared at: include/task_manager.h:88
Parameters
- host_object_id hoid
¶void notify_host_object_destroyed(
host_object_id hoid)
void notify_host_object_destroyed(
host_object_id hoid)
Declared at: include/task_manager.h:90
Parameters
- host_object_id hoid
¶task_manager& operator=(task_manager)
task_manager& operator=(task_manager)
Declared at: include/task_manager.h:53
Parameters
¶task_manager& operator=(task_manager&&)
task_manager& operator=(task_manager&&)
Declared at: include/task_manager.h:54
Parameters
¶void set_horizon_max_parallelism(int para)
void set_horizon_max_parallelism(int para)
Declared at: include/task_manager.h:97
Parameters
- int para
¶void set_horizon_step(int step)
void set_horizon_step(int step)
Declared at: include/task_manager.h:92
Parameters
- int step
¶task_manager(const task_manager&)
task_manager(const task_manager&)
Declared at: include/task_manager.h:51
Parameters
- const task_manager&
¶task_manager(task_manager&&)
task_manager(task_manager&&)
Declared at: include/task_manager.h:52
Parameters
¶task_manager(size_t num_collective_nodes,
task_graph& tdag,
detail::task_recorder* recorder,
task_manager::delegate* dlg,
const policy_set& policy =
default_policy_set())
task_manager(size_t num_collective_nodes,
task_graph& tdag,
detail::task_recorder* recorder,
task_manager::delegate* dlg,
const policy_set& policy =
default_policy_set())
Declared at: include/task_manager.h:47
Parameters
- size_t num_collective_nodes
- task_graph& tdag
- detail::task_recorder* recorder
- task_manager::delegate* dlg
- const policy_set& policy = default_policy_set()
¶~task_manager()
~task_manager()
Declared at: include/task_manager.h:55
¶void add_dependency(task& depender,
task& dependee,
dependency_kind kind,
dependency_origin origin)
void add_dependency(task& depender,
task& dependee,
dependency_kind kind,
dependency_origin origin)
Declared at: include/task_manager.h:173
Parameters
- task& depender
- task& dependee
- dependency_kind kind
- dependency_origin origin
¶void compute_dependencies(task& tsk)
void compute_dependencies(task& tsk)
Declared at: include/task_manager.h:183
Parameters
- task& tsk
¶static constexpr policy_set default_policy_set()
static constexpr policy_set default_policy_set()
Declared at: include/task_manager.h:105
¶task_id generate_horizon_task()
task_id generate_horizon_task()
Declared at: include/task_manager.h:181
¶void invoke_callbacks(const task* tsk) const
void invoke_callbacks(const task* tsk) const
Declared at: include/task_manager.h:171
Parameters
- const task* tsk
¶bool need_new_horizon() const
bool need_new_horizon() const
Declared at: include/task_manager.h:175
¶std::string print_buffer_debug_label(
buffer_id bid) const
std::string print_buffer_debug_label(
buffer_id bid) const
Declared at: include/task_manager.h:185
Parameters
- buffer_id bid
¶task& reduce_execution_front(
std::unique_ptr<task> new_front)
task& reduce_execution_front(
std::unique_ptr<task> new_front)
Declared at: include/task_manager.h:177
Parameters
- std::unique_ptr<task> new_front
¶task& register_task_internal(
std::unique_ptr<task> task)
task& register_task_internal(
std::unique_ptr<task> task)
Declared at: include/task_manager.h:169
Parameters
- std::unique_ptr<task> task
¶void set_epoch_for_new_tasks(task* epoch)
void set_epoch_for_new_tasks(task* epoch)
Declared at: include/task_manager.h:179
Parameters
- task* epoch