modularized_scheduler.doxy 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. !\defgroup API_Modularized_Scheduler
  2. \struct _starpu_sched_node
  3. \ingroup API_Modularized_Scheduler
  4. This structure represent a scheduler module.
  5. \var _starpu_sched_node::push_task
  6. this function push a task in the scheduler module.
  7. \var _starpu_sched_node::pop_task
  8. this function pop a task from the scheduler module, the task returned by this function is executable by the caller if its a worker
  9. \var _starpu_sched_node::available
  10. this function notify workers downstairs that a task is waiting for a pop
  11. \var _starpu_sched_node::estimated_load
  12. this function is an heuristic to compute load of scheduler module
  13. \var _starpu_sched_node::estimated_execute_preds
  14. this function compute executions prediction for a task
  15. \var _starpu_sched_node::nchilds
  16. the number of modules downstairs
  17. \var _starpu_sched_node::childs
  18. modules downstairs
  19. \var _starpu_sched_node::workers
  20. this member contain the set of underlaying workers
  21. \var _starpu_sched_node::is_homogeneous
  22. this is set to true iff all underlaying workers are the same
  23. \var _starpu_sched_node::data
  24. data used by the scheduler module
  25. \var _starpu_sched_node::fathers
  26. the array of scheduler module above indexed by scheduling context index
  27. \var _starpu_sched_node::init_data
  28. this function is called after all the scheduler is created and should init data member
  29. \var _starpu_sched_node::deinit_data
  30. this function is called just before _starpu_sched_node_destroy
  31. \var _starpu_sched_node::obj
  32. the hwloc object associed to scheduler module
  33. \struct _starpu_task_execute_preds
  34. \ingroup API_Modularized_Scheduler
  35. this structure containt predictions for a task and is filled by _starpu_sched_node::estimated_execute_preds
  36. \var _starpu_task_execute_preds::state
  37. indicate status of prediction
  38. \var _starpu_task_execute_preds::archtype
  39. \var _starpu_task_execute_preds::impl
  40. 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
  41. \var _starpu_task_execute_preds::expected_finish_time
  42. expected finish time of worker without task
  43. \var _starpu_task_execute_preds::expected_length
  44. expected compute time of task
  45. \var _starpu_task_execute_preds::expected_transfer_length
  46. expected time for transfering data to worker's memory node
  47. \var _starpu_task_execute_preds::expected_power
  48. expected power consumption for task
  49. \struct _starpu_sched_tree
  50. \ingroup API_Modularized_Scheduler
  51. \var _starpu_sched_tree::root
  52. this is the entry module of the scheduler
  53. \var _starpu_sched_tree::workers
  54. this is the set of workers available in this context, this value is used to mask workers in modules
  55. \var lock
  56. this lock protect the worker member
  57. \fn struct _starpu_sched_node * _starpu_sched_node_create(void)
  58. this function return an initialised scheduler module with default values
  59. \fn void _starpu_sched_node_destroy(struct _starpu_sched_node * node)
  60. this function free data allocated by _starpu_sched_node_create, but dont call node->deinit_data(node)
  61. \fn void _starpu_sched_node_set_father(struct _starpu_sched_node * node, struct _starpu_sched_node * father_node, unsigned sched_ctx_id)
  62. this function set node->fathers[sched_ctx_id] to father_node
  63. \fn void _starpu_sched_node_add_child(struct _starpu_sched_node* node, struct _starpu_sched_node * child)
  64. this function add child to node->childs and increment nchilds as well
  65. and dont modify child->fathers
  66. \fn void _starpu_sched_node_remove_child(struct _starpu_sched_node * node, struct _starpu_sched_node * child)
  67. this function remove child from node->childs and decrement nchilds