Browse Source

doc/doxygen/chapters/hierarchical_scheduler.doxy : Completing Section 4

Marc Sergent 11 years ago
parent
commit
1d65700521
1 changed files with 22 additions and 0 deletions
  1. 22 0
      doc/doxygen/chapters/hierarchical_scheduler.doxy

+ 22 - 0
doc/doxygen/chapters/hierarchical_scheduler.doxy

@@ -73,6 +73,8 @@ defined performance model (\ref PerformanceModelCalibration)
 to work efficiently, but can handle tasks without a performance
 model.
 
+It is currently needed to set the environment variable \ref STARPU_SCHED 
+to use those Schedulers. Hierarchical Schedulers' naming is tree-*
 
 \subsection ExampleTreeEagerPrefetchingStrategy An Example : The Tree-Eager-Prefetching Strategy
 
@@ -277,7 +279,27 @@ struct starpu_sched_policy _starpu_sched_tree_eager_prefetching_policy =
 \section WriteASchedulingComponent Write a Scheduling Component
 
 \subsection GenericSchedulingComponent Generic Scheduling Component
+
+Each Scheduling Component is instantiated from a Generic Scheduling Component,
+which implements a generic version of the Interface. The generic implementation
+of Pull, Can_Pull and Can_Push functions are recursive calls to their parents
+(respectively to their children). However, as a Generic Scheduling Component do
+not know how much children it will have when it will be instantiated, it do not
+implements the Push function.
+
 \subsection InstanciationRedefineInterface Instanciation : Redefine the Interface
+
+A Scheduling Component must implement all the functions of the Interface. It is
+so necessary to implement a Push function to instantiate a Scheduling Component.
+The implemented Push function is the "fingerprint" of a Scheduling Component.
+Depending on how functionalities or properties the programmer wants to give
+to the Scheduling Component he is implementing, it is possible to reimplement
+all the functions of the Interface. For example, a Flow-control Component
+reimplements the Pull and the Can_Push functions of the Interface, allowing him
+to catch the generic recursive calls of these functions. The Pull function of
+a Flow-control Component can, for example, pop a task from the local storage 
+queue of the Component, and give it to the calling Component which asks for it.
+
 \subsection DetailedProgressionAndValidationRules Detailed Progression and Validation Rules