diff --git a/src/scheduler.c b/src/scheduler.c index 4d880b01c41845c70033897e015cdf4ae953b983..b47c0da7d52c3aa03f1bc1a14b8ed05f898748f0 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -564,6 +564,9 @@ void scheduler_reweight ( struct scheduler *s ) { int k, j, nr_tasks = s->nr_tasks, *tid = s->tasks_ind; struct task *t, *tasks = s->tasks; + float sid_scale[13] = { 0.1897 , 0.4025 , 0.1897 , 0.4025 , 0.5788 , 0.4025 , + 0.1897 , 0.4025 , 0.1897 , 0.4025 , 0.5788 , 0.4025 , + 0.5788 }; // ticks tic; /* Run throught the tasks backwards and set their waits and @@ -587,11 +590,11 @@ void scheduler_reweight ( struct scheduler *s ) { t->weight += 2 * t->ci->count * t->ci->count; break; case task_type_pair: - t->weight += 2 * t->ci->count * t->cj->count; + t->weight += 2 * sid_scale[ t->flags ] * t->ci->count * t->cj->count; break; case task_type_sub: if ( t->cj != NULL ) - t->weight += 2 * t->ci->count * t->cj->count; + t->weight += 2 * sid_scale[ t->flags ] * t->ci->count * t->cj->count; else t->weight += 2 * t->ci->count * t->ci->count; break;