|
@@ -25,12 +25,16 @@
|
|
|
|
|
|
static void initialize_random_fifo_prefetching_center_policy(unsigned sched_ctx_id)
|
|
|
{
|
|
|
+ struct starpu_sched_tree *t;
|
|
|
+ struct starpu_sched_component * random_component;
|
|
|
+
|
|
|
starpu_sched_ctx_create_worker_collection(sched_ctx_id, STARPU_WORKER_LIST);
|
|
|
- struct starpu_sched_tree *t = starpu_sched_tree_create(sched_ctx_id);
|
|
|
+
|
|
|
+ t = starpu_sched_tree_create(sched_ctx_id);
|
|
|
t->root = starpu_sched_component_fifo_create(t, NULL);
|
|
|
- struct starpu_sched_component * random_component = starpu_sched_component_random_create(t, NULL);
|
|
|
- t->root->add_child(t->root, random_component);
|
|
|
- random_component->add_parent(random_component, t->root);
|
|
|
+ random_component = starpu_sched_component_random_create(t, NULL);
|
|
|
+
|
|
|
+ starpu_sched_component_connect(t->root, random_component);
|
|
|
|
|
|
struct starpu_sched_component_fifo_data fifo_data =
|
|
|
{
|
|
@@ -42,14 +46,10 @@ static void initialize_random_fifo_prefetching_center_policy(unsigned sched_ctx_
|
|
|
for(i = 0; i < starpu_worker_get_count() + starpu_combined_worker_get_count(); i++)
|
|
|
{
|
|
|
struct starpu_sched_component * worker_component = starpu_sched_component_worker_get(sched_ctx_id, i);
|
|
|
- STARPU_ASSERT(worker_component);
|
|
|
-
|
|
|
struct starpu_sched_component * fifo_component = starpu_sched_component_fifo_create(t, &fifo_data);
|
|
|
- fifo_component->add_child(fifo_component, worker_component);
|
|
|
- worker_component->add_parent(worker_component, fifo_component);
|
|
|
|
|
|
- random_component->add_child(random_component, fifo_component);
|
|
|
- fifo_component->add_parent(fifo_component, random_component);
|
|
|
+ starpu_sched_component_connect(fifo_component, worker_component);
|
|
|
+ starpu_sched_component_connect(random_component, fifo_component);
|
|
|
}
|
|
|
starpu_sched_tree_update_workers(t);
|
|
|
starpu_sched_ctx_set_policy_data(sched_ctx_id, (void*)t);
|
|
@@ -81,12 +81,16 @@ struct starpu_sched_policy _starpu_sched_modular_random_prefetching_policy =
|
|
|
|
|
|
static void initialize_random_prio_prefetching_center_policy(unsigned sched_ctx_id)
|
|
|
{
|
|
|
+ struct starpu_sched_tree *t;
|
|
|
+ struct starpu_sched_component *random_component;
|
|
|
+
|
|
|
starpu_sched_ctx_create_worker_collection(sched_ctx_id, STARPU_WORKER_LIST);
|
|
|
- struct starpu_sched_tree *t = starpu_sched_tree_create(sched_ctx_id);
|
|
|
+
|
|
|
+ t = starpu_sched_tree_create(sched_ctx_id);
|
|
|
t->root = starpu_sched_component_prio_create(t, NULL);
|
|
|
- struct starpu_sched_component * random_component = starpu_sched_component_random_create(t, NULL);
|
|
|
- t->root->add_child(t->root, random_component);
|
|
|
- random_component->add_parent(random_component, t->root);
|
|
|
+ random_component = starpu_sched_component_random_create(t, NULL);
|
|
|
+
|
|
|
+ starpu_sched_component_connect(t->root, random_component);
|
|
|
|
|
|
struct starpu_sched_component_prio_data prio_data =
|
|
|
{
|
|
@@ -98,14 +102,10 @@ static void initialize_random_prio_prefetching_center_policy(unsigned sched_ctx_
|
|
|
for(i = 0; i < starpu_worker_get_count() + starpu_combined_worker_get_count(); i++)
|
|
|
{
|
|
|
struct starpu_sched_component * worker_component = starpu_sched_component_worker_get(sched_ctx_id, i);
|
|
|
- STARPU_ASSERT(worker_component);
|
|
|
-
|
|
|
struct starpu_sched_component * prio_component = starpu_sched_component_prio_create(t, &prio_data);
|
|
|
- prio_component->add_child(prio_component, worker_component);
|
|
|
- worker_component->add_parent(worker_component, prio_component);
|
|
|
|
|
|
- random_component->add_child(random_component, prio_component);
|
|
|
- prio_component->add_parent(prio_component, random_component);
|
|
|
+ starpu_sched_component_connect(prio_component, worker_component);
|
|
|
+ starpu_sched_component_connect(random_component, prio_component);
|
|
|
}
|
|
|
starpu_sched_tree_update_workers(t);
|
|
|
starpu_sched_ctx_set_policy_data(sched_ctx_id, (void*)t);
|