StarPU Handbook - StarPU Language Bindings
|
Go to the source code of this file.
Data Structures | |
struct | starpu_sched_component |
struct | starpu_sched_tree |
struct | starpu_sched_component_fifo_data |
struct | starpu_sched_component_prio_data |
struct | starpu_sched_component_mct_data |
struct | starpu_sched_component_heteroprio_data |
struct | starpu_sched_component_perfmodel_select_data |
struct | starpu_sched_component_specs |
Macros | |
#define | STARPU_SCHED_COMPONENT_IS_HOMOGENEOUS(component) |
#define | STARPU_SCHED_COMPONENT_IS_SINGLE_MEMORY_NODE(component) |
#define | STARPU_COMPONENT_MUTEX_LOCK(m) |
#define | STARPU_COMPONENT_MUTEX_TRYLOCK(m) |
#define | STARPU_COMPONENT_MUTEX_UNLOCK(m) |
Enumerations | |
enum | starpu_sched_component_properties { STARPU_SCHED_COMPONENT_HOMOGENEOUS , STARPU_SCHED_COMPONENT_SINGLE_MEMORY_NODE } |
Functions | |
Scheduling Tree API | |
struct starpu_sched_tree * | starpu_sched_tree_create (unsigned sched_ctx_id) STARPU_ATTRIBUTE_MALLOC |
void | starpu_sched_tree_destroy (struct starpu_sched_tree *tree) |
void | starpu_sched_tree_deinitialize (unsigned sched_ctx_id) |
struct starpu_sched_tree * | starpu_sched_tree_get (unsigned sched_ctx_id) |
void | starpu_sched_tree_update_workers (struct starpu_sched_tree *t) |
void | starpu_sched_tree_update_workers_in_ctx (struct starpu_sched_tree *t) |
int | starpu_sched_tree_push_task (struct starpu_task *task) |
struct starpu_task * | starpu_sched_tree_pop_task (unsigned sched_ctx) |
int | starpu_sched_component_push_task (struct starpu_sched_component *from, struct starpu_sched_component *to, struct starpu_task *task) |
struct starpu_task * | starpu_sched_component_pull_task (struct starpu_sched_component *from, struct starpu_sched_component *to) |
struct starpu_task * | starpu_sched_component_pump_to (struct starpu_sched_component *component, struct starpu_sched_component *to, int *success) |
struct starpu_task * | starpu_sched_component_pump_downstream (struct starpu_sched_component *component, int *success) |
int | starpu_sched_component_send_can_push_to_parents (struct starpu_sched_component *component) |
void | starpu_sched_tree_add_workers (unsigned sched_ctx_id, int *workerids, unsigned nworkers) |
void | starpu_sched_tree_remove_workers (unsigned sched_ctx_id, int *workerids, unsigned nworkers) |
void | starpu_sched_tree_do_schedule (unsigned sched_ctx_id) |
void | starpu_sched_component_connect (struct starpu_sched_component *parent, struct starpu_sched_component *child) |
Worker Component API | |
struct starpu_sched_component * | starpu_sched_component_worker_get (unsigned sched_ctx, int workerid) |
struct starpu_sched_component * | starpu_sched_component_worker_new (unsigned sched_ctx, int workerid) |
struct starpu_sched_component * | starpu_sched_component_parallel_worker_create (struct starpu_sched_tree *tree, unsigned nworkers, unsigned *workers) |
int | starpu_sched_component_worker_get_workerid (struct starpu_sched_component *worker_component) |
int | starpu_sched_component_is_worker (struct starpu_sched_component *component) |
int | starpu_sched_component_is_simple_worker (struct starpu_sched_component *component) |
int | starpu_sched_component_is_combined_worker (struct starpu_sched_component *component) |
void | starpu_sched_component_worker_pre_exec_hook (struct starpu_task *task, unsigned sched_ctx_id) |
void | starpu_sched_component_worker_post_exec_hook (struct starpu_task *task, unsigned sched_ctx_id) |
Flow-control Fifo Component API | |
These can be used as methods of components. Note: they are not to be called directly, one should really call the methods of the components. | |
struct starpu_task * | starpu_sched_component_parents_pull_task (struct starpu_sched_component *component, struct starpu_sched_component *to) |
int | starpu_sched_component_can_push (struct starpu_sched_component *component, struct starpu_sched_component *to) |
int | starpu_sched_component_can_pull (struct starpu_sched_component *component) |
int | starpu_sched_component_can_pull_all (struct starpu_sched_component *component) |
double | starpu_sched_component_estimated_load (struct starpu_sched_component *component) |
double | starpu_sched_component_estimated_end_min (struct starpu_sched_component *component) |
double | starpu_sched_component_estimated_end_min_add (struct starpu_sched_component *component, double exp_len) |
double | starpu_sched_component_estimated_end_average (struct starpu_sched_component *component) |
struct starpu_sched_component * | starpu_sched_component_fifo_create (struct starpu_sched_tree *tree, struct starpu_sched_component_fifo_data *fifo_data) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_fifo (struct starpu_sched_component *component) |
Flow-control Prio Component API | |
struct starpu_sched_component * | starpu_sched_component_prio_create (struct starpu_sched_tree *tree, struct starpu_sched_component_prio_data *prio_data) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_prio (struct starpu_sched_component *component) |
Resource-mapping Work-Stealing Component API | |
struct starpu_sched_component * | starpu_sched_component_work_stealing_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_work_stealing (struct starpu_sched_component *component) |
int | starpu_sched_tree_work_stealing_push_task (struct starpu_task *task) |
Resource-mapping Random Component API | |
struct starpu_sched_component * | starpu_sched_component_random_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_random (struct starpu_sched_component *) |
Resource-mapping Eager Component API | |
struct starpu_sched_component * | starpu_sched_component_eager_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_eager (struct starpu_sched_component *) |
Resource-mapping Eager Prio Component API | |
struct starpu_sched_component * | starpu_sched_component_eager_prio_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_eager_prio (struct starpu_sched_component *) |
Resource-mapping Eager-Calibration Component API | |
struct starpu_sched_component * | starpu_sched_component_eager_calibration_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_eager_calibration (struct starpu_sched_component *) |
Resource-mapping MCT Component API | |
struct starpu_sched_component * | starpu_sched_component_mct_create (struct starpu_sched_tree *tree, struct starpu_sched_component_mct_data *mct_data) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_mct (struct starpu_sched_component *component) |
Resource-mapping Heft Component API | |
struct starpu_sched_component * | starpu_sched_component_heft_create (struct starpu_sched_tree *tree, struct starpu_sched_component_mct_data *mct_data) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_heft (struct starpu_sched_component *component) |
Resource-mapping Heteroprio Component API | |
struct starpu_sched_component * | starpu_sched_component_heteroprio_create (struct starpu_sched_tree *tree, struct starpu_sched_component_heteroprio_data *params) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_heteroprio (struct starpu_sched_component *component) |
Special-purpose Best_Implementation Component API | |
struct starpu_sched_component * | starpu_sched_component_best_implementation_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
Special-purpose Perfmodel_Select Component API | |
struct starpu_sched_component * | starpu_sched_component_perfmodel_select_create (struct starpu_sched_tree *tree, struct starpu_sched_component_perfmodel_select_data *perfmodel_select_data) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_perfmodel_select (struct starpu_sched_component *component) |
Staged pull Component API | |
struct starpu_sched_component * | starpu_sched_component_stage_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_stage (struct starpu_sched_component *component) |
User-choice push Component API | |
struct starpu_sched_component * | starpu_sched_component_userchoice_create (struct starpu_sched_tree *tree, void *arg) STARPU_ATTRIBUTE_MALLOC |
int | starpu_sched_component_is_userchoice (struct starpu_sched_component *component) |
Recipe Component API | |
struct starpu_sched_component_composed_recipe * | starpu_sched_component_composed_recipe_create (void) STARPU_ATTRIBUTE_MALLOC |
struct starpu_sched_component_composed_recipe * | starpu_sched_component_composed_recipe_create_singleton (struct starpu_sched_component *(*create_component)(struct starpu_sched_tree *tree, void *arg), void *arg) STARPU_ATTRIBUTE_MALLOC |
void | starpu_sched_component_composed_recipe_add (struct starpu_sched_component_composed_recipe *recipe, struct starpu_sched_component *(*create_component)(struct starpu_sched_tree *tree, void *arg), void *arg) |
void | starpu_sched_component_composed_recipe_destroy (struct starpu_sched_component_composed_recipe *) |
struct starpu_sched_component * | starpu_sched_component_composed_component_create (struct starpu_sched_tree *tree, struct starpu_sched_component_composed_recipe *recipe) STARPU_ATTRIBUTE_MALLOC |
struct starpu_sched_tree * | starpu_sched_component_make_scheduler (unsigned sched_ctx_id, struct starpu_sched_component_specs s) |
Basic API | |
#define | STARPU_SCHED_SIMPLE_DECIDE_MASK |
#define | STARPU_SCHED_SIMPLE_DECIDE_WORKERS |
#define | STARPU_SCHED_SIMPLE_DECIDE_MEMNODES |
#define | STARPU_SCHED_SIMPLE_DECIDE_ARCHS |
#define | STARPU_SCHED_SIMPLE_DECIDE_ALWAYS |
#define | STARPU_SCHED_SIMPLE_PERFMODEL |
#define | STARPU_SCHED_SIMPLE_IMPL |
#define | STARPU_SCHED_SIMPLE_FIFO_ABOVE |
#define | STARPU_SCHED_SIMPLE_FIFO_ABOVE_PRIO |
#define | STARPU_SCHED_SIMPLE_FIFOS_BELOW |
#define | STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
#define | STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
#define | STARPU_SCHED_SIMPLE_FIFOS_BELOW_NOLIMIT |
#define | STARPU_SCHED_SIMPLE_WS_BELOW |
#define | STARPU_SCHED_SIMPLE_COMBINED_WORKERS |
#define | STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
#define | STARPU_SCHED_SIMPLE_PRE_DECISION |
void | starpu_sched_component_initialize_simple_scheduler (starpu_sched_component_create_t create_decision_component, void *data, unsigned flags, unsigned sched_ctx_id) |
void | starpu_sched_component_initialize_simple_schedulers (unsigned sched_ctx_id, unsigned ndecisions,...) |