12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*! \defgroup API_Modularized_Scheduler Modularized scheduler interface
- \struct starpu_sched_node
- \ingroup API_Modularized_Scheduler
- This structure represent a scheduler module.
- \var starpu_sched_node
- push a task in the scheduler module.
- \var starpu_sched_node
- pop a task from the scheduler module, the task returned by this function is executable by the caller if its a worker
- \var starpu_sched_node
- notify workers downstairs that a task is waiting for a pop
- \var starpu_sched_node
- is an heuristic to compute load of scheduler module
- \var starpu_sched_node
- compute executions prediction for a task
- \var starpu_sched_node
- the number of modules downstairs
- \var starpu_sched_node
- modules downstairs
- \var starpu_sched_node
- this member contain the set of underlaying workers
- \var starpu_sched_node
- this is set to true iff all underlaying workers are the same
- \var starpu_sched_node
- data used by the scheduler module
- \var starpu_sched_node
- the array of scheduler module above indexed by scheduling context index
- \var starpu_sched_node
- is called after all the scheduler is created and should init data member
- you can store things in node->data while calling _sched_node_create(arg)
- and use it with init_data
- \var starpu_sched_node
- is called just before starpu_sched_node_destroy
- \var starpu_sched_node
- the hwloc object associed to scheduler module
- \struct starpu_task_execute_preds
- \ingroup API_Modularized_Scheduler
- this structure containt predictions for a task and is filled by starpu_sched_node
- \var starpu_task_execute_preds
- indicate status of prediction
- \var starpu_task_execute_preds
- \var starpu_task_execute_preds
- those members are revelant is state is PERF_MODEL or CALIBRATING and is set to best or uncalibrated archtype and implementation, respectively, or suitable values if state is NO_PERF_MODEL
- \var starpu_task_execute_preds
- expected finish time of task
- \var starpu_task_execute_preds
- expected compute time of task
- \var starpu_task_execute_preds
- expected time for transfering data to worker's memory node
- \var starpu_task_execute_preds
- expected power consumption for task
- \struct starpu_sched_tree
- \ingroup API_Modularized_Scheduler
- \var starpu_sched_tree
- this is the entry module of the scheduler
- \var starpu_sched_tree
- this is the set of workers available in this context, this value is used to mask workers in modules
- \var lock
- this lock protect the worker member
- \fn struct starpu_sched_node * starpu_sched_node_create(void)
- allocate and initalise node field with defaults values :
- .pop_task make recursive call on father
- .available make a recursive call on childrens
- .estimated_load compute relative speedup and tasks in subtree
- .estimated_execute_preds return the average of recursive call on childs
- \fn void starpu_sched_node_destroy(struct starpu_sched_node * node)
- free data allocated by starpu_sched_node_create, but dont call node->deinit_data(node)
- \fn void starpu_sched_node_set_father(struct starpu_sched_node * node, struct starpu_sched_node * father_node, unsigned sched_ctx_id)
- set node->fathers[sched_ctx_id] to father_node
- \fn void starpu_sched_node_add_child(struct starpu_sched_node* node, struct starpu_sched_node * child)
- add child to node->childs and increment nchilds as well
- and dont modify child->fathers
- \fn void starpu_sched_node_remove_child(struct starpu_sched_node * node, struct starpu_sched_node * child)
- remove child from node->childs and decrement nchilds
- */
|