Browse Source

Add flag STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP for some modular scheduler

Adrien Guilbaud 5 years ago
parent
commit
1bec0aa827

+ 5 - 0
include/starpu_sched_component.h

@@ -779,6 +779,11 @@ struct starpu_sched_tree *starpu_sched_component_make_scheduler(unsigned sched_c
 #define STARPU_SCHED_SIMPLE_COMBINED_WORKERS	(1<<12)
 
 /**
+   Request that the fifos below keep track of expected duration, start and end time of theirs elements
+*/
+#define STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP	(1<<13)
+
+/**
    Create a simple modular scheduler tree around a scheduling decision-making
    component \p component. The details of what should be built around \p component
    is described by \p flags. The different STARPU_SCHED_SIMPL_DECIDE_* flags are

+ 4 - 2
src/sched_policies/modular_ez.c

@@ -276,12 +276,14 @@ void starpu_sched_component_initialize_simple_schedulers(unsigned sched_ctx_id,
 
 		int ready = starpu_get_env_number_default("STARPU_SCHED_READY", flags & STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY ? 1 : 0);
 
+		int exp = flags & STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP ? 1 : 0;
+
 		struct starpu_sched_component_prio_data prio_data =
 			{
 				.ntasks_threshold = ntasks_threshold,
 				.exp_len_threshold = exp_len_threshold,
 				.ready = ready,
-				.exp = 1,
+				.exp = exp,
 			};
 
 		struct starpu_sched_component_fifo_data fifo_data =
@@ -289,7 +291,7 @@ void starpu_sched_component_initialize_simple_schedulers(unsigned sched_ctx_id,
 				.ntasks_threshold = ntasks_threshold,
 				.exp_len_threshold = exp_len_threshold,
 				.ready = ready,
-				.exp = 1,
+				.exp = exp,
 			};
 
 		/* Create one fifo+eager component pair per choice, below scheduling decision */

+ 1 - 0
src/sched_policies/modular_gemm.c

@@ -174,6 +174,7 @@ static void initialize_gemm_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFO_ABOVE_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }
 

+ 1 - 0
src/sched_policies/modular_heft.c

@@ -57,6 +57,7 @@ static void initialize_heft_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }
 

+ 1 - 0
src/sched_policies/modular_heft2.c

@@ -57,6 +57,7 @@ static void initialize_heft2_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }
 

+ 1 - 0
src/sched_policies/modular_heft_prio.c

@@ -58,6 +58,7 @@ static void initialize_heft_prio_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }
 

+ 1 - 0
src/sched_policies/modular_heteroprio.c

@@ -30,6 +30,7 @@ static void initialize_heteroprio_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }
 

+ 2 - 0
src/sched_policies/modular_heteroprio_heft.c

@@ -31,6 +31,7 @@ static void initialize_heteroprio_heft_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_DECIDE_WORKERS |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL,
 			(starpu_sched_component_create_t) starpu_sched_component_heft_create, NULL,
 			STARPU_SCHED_SIMPLE_DECIDE_WORKERS |
@@ -39,6 +40,7 @@ static void initialize_heteroprio_heft_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL);
 }
 

+ 1 - 0
src/sched_policies/modular_parallel_heft.c

@@ -61,6 +61,7 @@ static void initialize_parallel_heft_center_policy(unsigned sched_ctx_id)
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_PRIO |
 			STARPU_SCHED_SIMPLE_FIFOS_BELOW_READY |
+			STARPU_SCHED_SIMPLE_FIFOS_BELOW_EXP |
 			STARPU_SCHED_SIMPLE_IMPL, sched_ctx_id);
 }