Prechádzať zdrojové kódy

Always call init_iterator, it does not make sense otherwise

Samuel Thibault 10 rokov pred
rodič
commit
717fbf7ab1

+ 2 - 3
examples/sched_ctx/dummy_sched_with_ctx.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2013  Université de Bordeaux 1
+ * Copyright (C) 2010-2014  Université de Bordeaux 1
  * Copyright (C) 2010-2013  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -83,9 +83,8 @@ static int push_task_dummy(struct starpu_task *task)
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
         struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
         {
                 worker = workers->get_next(workers, &it);

+ 2 - 3
examples/scheduler/dummy_sched.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2013  Université de Bordeaux 1
+ * Copyright (C) 2010-2014  Université de Bordeaux 1
  * Copyright (C) 2010-2013  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -83,9 +83,8 @@ static int push_task_dummy(struct starpu_task *task)
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
         struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
         {
                 worker = workers->get_next(workers, &it);

+ 1 - 2
examples/worker_collections/worker_list_example.c

@@ -63,10 +63,9 @@ int main()
 	}
 
 	struct starpu_sched_ctx_iterator it;
-        if(co->init_iterator)
-                co->init_iterator(co, &it);
 
 	int pu;
+	co->init_iterator(co, &it);
 	while(co->has_next(co, &it))
 	{
 		pu = co->get_next(co, &it);

+ 1 - 2
examples/worker_collections/worker_tree_example.c

@@ -71,10 +71,9 @@ int main()
 	}
 
 	struct starpu_sched_ctx_iterator it;
-        if(co->init_iterator)
-                co->init_iterator(co, &it);
 
 	int pu;
+	co->init_iterator(co, &it);
 	while(co->has_next(co, &it))
 	{
 		pu = co->get_next(co, &it);

+ 1 - 2
sc_hypervisor/src/hypervisor_policies/ispeed_policy.c

@@ -78,9 +78,8 @@ static int* _get_slowest_workers(unsigned sched_ctx, int *nworkers, enum starpu_
 	int considered = 0;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	for(index = 0; index < *nworkers; index++)
 	{
 		while(workers->has_next(workers, &it))

+ 1 - 2
sc_hypervisor/src/policies_utils/lp_tools.c

@@ -635,9 +635,8 @@ int _lp_get_unwanted_workers(int *workers_add, int nw_add, unsigned sched_ctx, i
 	int worker;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);

+ 4 - 6
sc_hypervisor/src/policies_utils/policy_tools.c

@@ -28,9 +28,8 @@ static int _compute_priority(unsigned sched_ctx)
 	int worker;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -118,9 +117,8 @@ int* sc_hypervisor_get_idlest_workers(unsigned sched_ctx, int *nworkers, enum st
 	int considered = 0;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	for(index = 0; index < *nworkers; index++)
 	{
 		while(workers->has_next(workers, &it))
@@ -185,8 +183,8 @@ int sc_hypervisor_get_movable_nworkers(struct sc_hypervisor_policy_config *confi
 	int worker;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);

+ 3 - 4
sc_hypervisor/src/policies_utils/speed.c

@@ -127,13 +127,13 @@ double sc_hypervisor_get_speed_per_worker_type(struct sc_hypervisor_wrapper* sc_
 		int worker;
 		
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
 		
 		double speed = 0.0;
 		unsigned nworkers = 0;
 		double all_workers_flops = 0.0;
 		double max_workers_idle_time = 0.0;
+
+		workers->init_iterator(workers, &it);
 		while(workers->has_next(workers, &it))
 		{
 			worker = workers->get_next(workers, &it);
@@ -233,9 +233,8 @@ double sc_hypervisor_get_avg_speed(enum starpu_worker_archtype arch)
 		int worker;
 		
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
 
+		workers->init_iterator(workers, &it);
 		while(workers->has_next(workers, &it))
 		{
 			worker = workers->get_next(workers, &it);

+ 7 - 10
sc_hypervisor/src/sc_hypervisor.c

@@ -438,9 +438,8 @@ int sc_hypervisor_get_nworkers_ctx(unsigned sched_ctx, enum starpu_worker_archty
 	int worker;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -473,9 +472,8 @@ double sc_hypervisor_get_elapsed_flops_per_sched_ctx(struct sc_hypervisor_wrappe
 	int worker;
 	
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-		
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -492,9 +490,8 @@ double sc_hypervisor_get_total_elapsed_flops_per_sched_ctx(struct sc_hypervisor_
 	int worker;
 	
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-		
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -981,12 +978,12 @@ void sc_hypervisor_update_resize_interval(unsigned *sched_ctxs, int nsched_ctxs,
 		int worker;
 		
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
 		
 		double elapsed_time_worker[STARPU_NMAXWORKERS];
 		double norm_idle_time = 0.0;
 		double end_time  = starpu_timing_now();
+
+		workers->init_iterator(workers, &it);
 		while(workers->has_next(workers, &it))
 		{
 			double idle_time = 0.0;

+ 12 - 26
src/core/sched_ctx.c

@@ -254,9 +254,8 @@ static void _starpu_sched_ctx_create_hwloc_tree(struct _starpu_sched_ctx *sched_
 	struct starpu_worker_collection *workers = sched_ctx->workers;
 	struct _starpu_worker *worker;
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = _starpu_get_worker_struct(workers->get_next(workers, &it));
@@ -877,9 +876,8 @@ int _starpu_nworkers_able_to_execute_task(struct starpu_task *task, struct _star
 	struct starpu_worker_collection *workers = sched_ctx->workers;
 	
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -1202,9 +1200,8 @@ unsigned starpu_sched_ctx_get_workers_list(unsigned sched_ctx_id, int **workerid
 	int worker;
 	unsigned nworkers = 0;
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -1236,9 +1233,8 @@ int _starpu_get_workers_of_sched_ctx(unsigned sched_ctx_id, int *pus, enum starp
 
 	int npus = 0;
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -1276,12 +1272,9 @@ unsigned starpu_sched_ctx_get_nshared_workers(unsigned sched_ctx_id, unsigned sc
         int shared_workers = 0;
 
 	struct starpu_sched_ctx_iterator it1, it2;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it1);
-
-        if(workers2->init_iterator)
-                workers2->init_iterator(workers2, &it2);
 
+	workers->init_iterator(workers, &it1);
+	workers2->init_iterator(workers2, &it2);
         while(workers->has_next(workers, &it1))
         {
                 worker = workers->get_next(workers, &it1);
@@ -1304,10 +1297,8 @@ unsigned starpu_sched_ctx_contains_worker(int workerid, unsigned sched_ctx_id)
         int worker;
 
 	struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
-
 
+	workers->init_iterator(workers, &it);
         while(workers->has_next(workers, &it))
         {
                 worker = workers->get_next(workers, &it);
@@ -1325,9 +1316,8 @@ unsigned starpu_sched_ctx_contains_type_of_worker(enum starpu_worker_archtype ar
 	int worker;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -1548,9 +1538,8 @@ unsigned _starpu_sched_ctx_last_worker_awake(struct _starpu_worker *worker)
 		struct starpu_sched_ctx_iterator it;
 
 		int workerid;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
 		
+		workers->init_iterator(workers, &it);
 		while(workers->has_next(workers, &it))
 		{
 			workerid = workers->get_next(workers, &it);
@@ -1741,9 +1730,8 @@ static void _starpu_sched_ctx_wake_up_workers(unsigned sched_ctx_id, int master)
 	struct starpu_worker_collection *workers = sched_ctx->workers;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		int workerid = workers->get_next(workers, &it);
@@ -1790,9 +1778,8 @@ void starpu_sched_ctx_get_available_cpuids(unsigned sched_ctx_id, int **cpuids,
 
 	struct starpu_sched_ctx_iterator it;
 	int workerid;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		workerid = workers->get_next(workers, &it);
@@ -1959,9 +1946,8 @@ int starpu_sched_ctx_get_worker_rank(unsigned sched_ctx_id)
 	struct starpu_worker_collection *workers = sched_ctx->workers;
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);

+ 5 - 7
src/core/workers.c

@@ -99,12 +99,11 @@ static uint32_t _starpu_worker_exists_and_can_execute(struct starpu_task *task,
 	struct _starpu_sched_ctx *sched_ctx = _starpu_get_sched_ctx_struct(task->sched_ctx);
 	struct starpu_worker_collection *workers = sched_ctx->workers;
 
-        struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
+	struct starpu_sched_ctx_iterator it;
 
-        while(workers->has_next(workers, &it))
-        {
+	workers->init_iterator(workers, &it);
+	while(workers->has_next(workers, &it))
+	{
                 i = workers->get_next(workers, &it);
 		if (starpu_worker_get_type(i) != arch)
 			continue;
@@ -1766,9 +1765,8 @@ int starpu_worker_get_nids_ctx_free_by_type(enum starpu_worker_archtype type, in
 				{
 					struct starpu_worker_collection *workers = config.sched_ctxs[s].workers;
 					struct starpu_sched_ctx_iterator it;
-					if(workers->init_iterator)
-						workers->init_iterator(workers, &it);
 
+					workers->init_iterator(workers, &it);
 					while(workers->has_next(workers, &it))
 					{
 						worker = workers->get_next(workers, &it);

+ 3 - 6
src/sched_policies/deque_modeling_policy_data_aware.c

@@ -409,9 +409,8 @@ static int _dm_push_task(struct starpu_task *task, unsigned prio, unsigned sched
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next_master(workers, &it))
 	{
 		worker = workers->get_next_master(workers, &it);
@@ -547,9 +546,8 @@ static void compute_all_performance_predictions(struct starpu_task *task,
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next_master(workers, &it))
 	{
 		worker = workers->get_next_master(workers, &it);
@@ -716,9 +714,8 @@ static int _dmda_push_task(struct starpu_task *task, unsigned prio, unsigned sch
 	if (forced_best == -1)
 	{
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
 
+		workers->init_iterator(workers, &it);
 		while(workers->has_next_master(workers, &it))
 		{
 			worker = workers->get_next_master(workers, &it);

+ 4 - 6
src/sched_policies/eager_central_policy.c

@@ -94,9 +94,8 @@ static int push_task_eager_policy(struct starpu_task *task)
 #ifndef STARPU_NON_BLOCKING_DRIVERS
 	char dowake[STARPU_NMAXWORKERS] = { 0 };
 #endif
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-	
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next_master(workers, &it))
 	{
 		worker = workers->get_next_master(workers, &it);
@@ -126,9 +125,8 @@ static int push_task_eager_policy(struct starpu_task *task)
 
 #ifndef STARPU_NON_BLOCKING_DRIVERS
 	/* Now that we have a list of potential workers, try to wake one */
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-	
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);

+ 6 - 9
src/sched_policies/eager_central_priority_policy.c

@@ -142,9 +142,8 @@ static int _starpu_priority_push_task(struct starpu_task *task)
 #ifndef STARPU_NON_BLOCKING_DRIVERS
 	char dowake[STARPU_NMAXWORKERS] = { 0 };
 #endif
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-	
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -174,9 +173,8 @@ static int _starpu_priority_push_task(struct starpu_task *task)
 
 #ifndef STARPU_NON_BLOCKING_DRIVERS
 	/* Now that we have a list of potential workers, try to wake one */
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
-	
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -266,9 +264,8 @@ static struct starpu_task *_starpu_priority_pop_task(unsigned sched_ctx_id)
 		struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
-		
+
+		workers->init_iterator(workers, &it);
 		while(workers->has_next(workers, &it))
 		{
 			worker = workers->get_next(workers, &it);

+ 5 - 5
src/sched_policies/locality_work_stealing_policy.c

@@ -225,8 +225,8 @@ static int lws_push_task(struct starpu_task *task)
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 	struct starpu_sched_ctx_iterator it;
 	unsigned worker;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);
@@ -278,9 +278,9 @@ static void lws_add_workers(unsigned sched_ctx_id, int *workerids,unsigned nwork
 		
 		struct starpu_tree *neighbour = NULL;
 		struct starpu_sched_ctx_iterator it;
-		if(workers->init_iterator)
-			workers->init_iterator(workers, &it);
-	
+
+		workers->init_iterator(workers, &it);
+
 		bindid   = starpu_worker_get_bindid(workerid);
 		it.value = starpu_tree_get(tree, bindid);
 		int cnt = 0;

+ 8 - 9
src/sched_policies/parallel_eager.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2011-2013  Université de Bordeaux 1
+ * Copyright (C) 2011-2014  Université de Bordeaux 1
  * Copyright (C) 2011  Télécom-SudParis
  * Copyright (C) 2011-2013  INRIA
  *
@@ -155,16 +155,15 @@ static int push_task_peager_policy(struct starpu_task *task)
 	starpu_push_task_end(task);
 	STARPU_PTHREAD_MUTEX_UNLOCK(&data->policy_mutex);
 
-        /*if there are no tasks block */
-        /* wake people waiting for a task */
-        struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
-
-        struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
+	/*if there are no tasks block */
+	/* wake people waiting for a task */
+	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 #ifndef STARPU_NON_BLOCKING_DRIVERS
-        int worker = -1;
+	struct starpu_sched_ctx_iterator it;
+	int worker = -1;
+
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
 	{
 		worker = workers->get_next(workers, &it);

+ 4 - 5
src/sched_policies/parallel_heft.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 inria
- * Copyright (C) 2010-2013  Université de Bordeaux 1
+ * Copyright (C) 2010-2014  Université de Bordeaux 1
  * Copyright (C) 2011  Télécom-SudParis
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -309,12 +309,11 @@ static int _parallel_heft_push_task(struct starpu_task *task, unsigned prio, uns
 	/* A priori, we know all estimations */
 	int unknown = 0;
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
-        {
-                worker = workers->get_next(workers, &it);
+	{
+		worker = workers->get_next(workers, &it);
 
 		if(!starpu_worker_is_combined_worker(worker))
 		{

+ 3 - 4
src/sched_policies/random_policy.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010-2013  Université de Bordeaux 1
+ * Copyright (C) 2010-2014  Université de Bordeaux 1
  * Copyright (C) 2010, 2011, 2012, 2013  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -39,10 +39,9 @@ static int _random_push_task(struct starpu_task *task, unsigned prio)
 	double speedup_arr[STARPU_NMAXWORKERS];
 	int size = 0;
 	struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
 
-        while(workers->has_next(workers, &it))
+	workers->init_iterator(workers, &it);
+	while(workers->has_next(workers, &it))
 	{
                 worker = workers->get_next(workers, &it);
 		int impl = 0;

+ 6 - 9
src/sched_policies/work_stealing_policy.c

@@ -167,11 +167,10 @@ static unsigned select_victim_overload(unsigned sched_ctx_id)
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 	struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
-        {
+	{
                 worker = workers->get_next(workers, &it);
 		worker_ratio = overload_metric(sched_ctx_id, worker);
 
@@ -207,12 +206,11 @@ static unsigned select_worker_overload(unsigned sched_ctx_id)
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 
 	struct starpu_sched_ctx_iterator it;
-        if(workers->init_iterator)
-                workers->init_iterator(workers, &it);
 
+	workers->init_iterator(workers, &it);
 	while(workers->has_next(workers, &it))
-        {
-                worker = workers->get_next(workers, &it);
+	{
+		worker = workers->get_next(workers, &it);
 
 		worker_ratio = overload_metric(sched_ctx_id, worker);
 
@@ -343,9 +341,8 @@ int ws_push_task(struct starpu_task *task)
 	unsigned worker = 0;
 	struct starpu_worker_collection *workers = starpu_sched_ctx_get_worker_collection(sched_ctx_id);
 	struct starpu_sched_ctx_iterator it;
-	if(workers->init_iterator)
-		workers->init_iterator(workers, &it);
 	
+	workers->init_iterator(workers, &it);
 	/* !! C'est ballot de tout locker! */
 	while(workers->has_next(workers, &it))
 	{