Pārlūkot izejas kodu

rename
- starpu_conf::sched_policy_init to starpu_conf::sched_policy_callback
and
- starpu_sched_ctx_get_sched_policy_init() to starpu_sched_ctx_get_sched_policy_callback()
as the callback function may not only be used for init purposes

Nathalie Furmento 4 gadi atpakaļ
vecāks
revīzija
7a1b96dfb7

+ 5 - 0
ChangeLog

@@ -61,6 +61,11 @@ Small changes:
   * Add a synthetic energy efficiency testcase.
   * Make reduction methods want the commute flag.
   * Delete old MIC driver code
+  * Rename
+    - starpu_conf::sched_policy_init to starpu_conf::sched_policy_callback
+    and
+   - starpu_sched_ctx_get_sched_policy_init() to starpu_sched_ctx_get_sched_policy_callback()
+   as the callback function may not only be used for init purposes
 
 StarPU 1.3.8
 ====================================================================

+ 1 - 1
examples/scheduler/heteroprio_test.c

@@ -121,7 +121,7 @@ int main(void)
 	assert(ret == 0);
 
 	conf.sched_policy_name = "heteroprio";
-	conf.sched_policy_init = &initSchedulerCallback;
+	conf.sched_policy_callback = &initSchedulerCallback;
 	ret = starpu_init(&conf);
 	if (ret == -ENODEV)
 		return 77;

+ 7 - 1
include/starpu.h

@@ -129,7 +129,13 @@ struct starpu_conf
 	   (default = <c>NULL</c>)
 	*/
 	struct starpu_sched_policy *sched_policy;
-	void (*sched_policy_init)(unsigned);
+
+	/**
+	   Callback function that can later be used by the scheduler.
+	   The scheduler can retrieve this function by calling
+	   starpu_sched_ctx_get_sched_policy_callback()
+	*/
+	void (*sched_policy_callback)(unsigned);
 
 	/**
 	   For all parameters specified in this structure that can

+ 6 - 1
include/starpu_sched_ctx.h

@@ -336,7 +336,12 @@ void starpu_sched_ctx_move_task_to_ctx_locked(struct starpu_task *task, unsigned
 
 int starpu_sched_ctx_get_worker_rank(unsigned sched_ctx_id);
 
-void (*starpu_sched_ctx_get_sched_policy_init(unsigned sched_ctx_id))(unsigned);
+/**
+   Return the function associated with the scheduler context \p
+   sched_ctx_id which was given through the field
+   starpu_conf::sched_policy_callback
+*/
+void (*starpu_sched_ctx_get_sched_policy_callback(unsigned sched_ctx_id))(unsigned);
 
 unsigned starpu_sched_ctx_has_starpu_scheduler(unsigned sched_ctx_id, unsigned *awake_workers);
 

+ 4 - 4
src/core/sched_ctx.c

@@ -532,7 +532,7 @@ struct _starpu_sched_ctx* _starpu_create_sched_ctx(struct starpu_sched_policy *p
 						   int min_prio_set, int min_prio,
 						   int max_prio_set, int max_prio,
 						   unsigned awake_workers,
-						   void (*sched_policy_init)(unsigned),
+						   void (*sched_policy_callback)(unsigned),
 						   void * user_data,
 						   int nsub_ctxs, int *sub_ctxs, int nsms)
 {
@@ -589,7 +589,7 @@ struct _starpu_sched_ctx* _starpu_create_sched_ctx(struct starpu_sched_policy *p
 	sched_ctx->main_master = -1;
 	sched_ctx->perf_arch.devices = NULL;
 	sched_ctx->perf_arch.ndevices = 0;
-	sched_ctx->init_sched = sched_policy_init;
+	sched_ctx->callback_sched = sched_policy_callback;
 	sched_ctx->user_data = user_data;
 	sched_ctx->sms_start_idx = 0;
 	sched_ctx->sms_end_idx = STARPU_NMAXSMS;
@@ -2673,10 +2673,10 @@ int starpu_sched_ctx_get_worker_rank(unsigned sched_ctx_id)
 	return -1;
 }
 
-void (*starpu_sched_ctx_get_sched_policy_init(unsigned sched_ctx_id))(unsigned)
+void (*starpu_sched_ctx_get_sched_policy_callback(unsigned sched_ctx_id))(unsigned)
 {
 	struct _starpu_sched_ctx *sched_ctx = _starpu_get_sched_ctx_struct(sched_ctx_id);
-	return sched_ctx->init_sched;
+	return sched_ctx->callback_sched;
 }
 
 unsigned starpu_sched_ctx_has_starpu_scheduler(unsigned sched_ctx_id, unsigned *awake_workers)

+ 4 - 4
src/core/sched_ctx.h

@@ -149,8 +149,8 @@ struct _starpu_sched_ctx
 	   them awake & use them in the parallel code*/
 	unsigned awake_workers;
 
-	/** function called when initializing the scheduler */
-	void (*init_sched)(unsigned);
+	/** callback function called when initializing the scheduler */
+	void (*callback_sched)(unsigned);
 
 	int sub_ctxs[STARPU_NMAXWORKERS];
 	int nsub_ctxs;
@@ -184,8 +184,8 @@ void _starpu_init_all_sched_ctxs(struct _starpu_machine_config *config);
 /** allocate all structures belonging to a context */
 struct _starpu_sched_ctx*  _starpu_create_sched_ctx(struct starpu_sched_policy *policy, int *workerid, int nworkerids, unsigned is_init_sched, const char *sched_name,
 						    int min_prio_set, int min_prio,
-						    int max_prio_set, int max_prio, unsigned awake_workers, void (*sched_policy_init)(unsigned), void *user_data,
-							int nsub_ctxs, int *sub_ctxs, int nsms);
+						    int max_prio_set, int max_prio, unsigned awake_workers, void (*sched_policy_callback)(unsigned), void *user_data,
+						    int nsub_ctxs, int *sub_ctxs, int nsms);
 
 /** delete all sched_ctx */
 void _starpu_delete_all_sched_ctxs();

+ 1 - 1
src/core/workers.c

@@ -1604,7 +1604,7 @@ int starpu_initialize(struct starpu_conf *user_conf, int *argc, char ***argv)
 	if (!is_a_sink)
 	{
 		struct starpu_sched_policy *selected_policy = _starpu_select_sched_policy(&_starpu_config, _starpu_config.conf.sched_policy_name);
-		_starpu_create_sched_ctx(selected_policy, NULL, -1, 1, "init", (_starpu_config.conf.global_sched_ctx_min_priority != -1), _starpu_config.conf.global_sched_ctx_min_priority, (_starpu_config.conf.global_sched_ctx_max_priority != -1), _starpu_config.conf.global_sched_ctx_max_priority, 1, _starpu_config.conf.sched_policy_init, NULL,  0, NULL, 0);
+		_starpu_create_sched_ctx(selected_policy, NULL, -1, 1, "init", (_starpu_config.conf.global_sched_ctx_min_priority != -1), _starpu_config.conf.global_sched_ctx_min_priority, (_starpu_config.conf.global_sched_ctx_max_priority != -1), _starpu_config.conf.global_sched_ctx_max_priority, 1, _starpu_config.conf.sched_policy_callback, NULL,  0, NULL, 0);
 	}
 
 	_starpu_initialize_registered_performance_models();

+ 3 - 4
src/sched_policies/heteroprio.c

@@ -162,7 +162,6 @@ inline void starpu_heteroprio_set_arch_slow_factor(unsigned sched_ctx_id, enum s
 	hp->buckets[bucket_id].slow_factors_per_index[arch] = slow_factor;
 }
 
-
 /** If the user does not provide an init callback we create a single bucket for all architectures */
 static inline void default_init_sched(unsigned sched_ctx_id)
 {
@@ -206,10 +205,10 @@ static void initialize_heteroprio_policy(unsigned sched_ctx_id)
 	for(idx_prio = 0; idx_prio < STARPU_HETEROPRIO_MAX_PRIO; ++idx_prio)
 		_heteroprio_bucket_init(&hp->buckets[idx_prio]);
 
-	void (*init_sched)(unsigned) = starpu_sched_ctx_get_sched_policy_init(sched_ctx_id);
+	void (*callback_sched)(unsigned) = starpu_sched_ctx_get_sched_policy_callback(sched_ctx_id);
 
-	if(init_sched)
-		init_sched(sched_ctx_id);
+	if (callback_sched)
+		callback_sched(sched_ctx_id);
 	else
 		default_init_sched(sched_ctx_id);