Skip to main content

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

Member Functions

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)

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)

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)

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)

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)

Declared at: include/task_manager.h:84

Parameters

buffer_id bid
const std::string& name

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)

Declared at: include/task_manager.h:88

Parameters

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)

Declared at: include/task_manager.h:53

Parameters

task_manager

task_manager& operator=(task_manager&&)

Declared at: include/task_manager.h:54

Parameters

task_manager&&

void set_horizon_max_parallelism(int para)

Declared at: include/task_manager.h:97

Parameters

int para

void set_horizon_step(int step)

Declared at: include/task_manager.h:92

Parameters

int step

task_manager(const task_manager&)

Declared at: include/task_manager.h:51

Parameters

const task_manager&

task_manager(task_manager&&)

Declared at: include/task_manager.h:52

Parameters

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())

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()

Declared at: include/task_manager.h:55


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)

Declared at: include/task_manager.h:183

Parameters

task& tsk

static constexpr policy_set default_policy_set()

Declared at: include/task_manager.h:105


task_id generate_horizon_task()

Declared at: include/task_manager.h:181


void invoke_callbacks(const task* tsk) const

Declared at: include/task_manager.h:171

Parameters

const task* tsk

bool need_new_horizon() const

Declared at: include/task_manager.h:175


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)

Declared at: include/task_manager.h:177

Parameters

std::unique_ptr<task> new_front

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)

Declared at: include/task_manager.h:179

Parameters

task* epoch