|
@@ -113,14 +113,21 @@ static int prio_push_local_task(struct starpu_sched_component * component, struc
|
|
|
STARPU_COMPONENT_MUTEX_LOCK(mutex);
|
|
|
|
|
|
double exp_len = NAN;
|
|
|
- if(data->exp)
|
|
|
+
|
|
|
+ if (data->ntasks_threshold != 0 && prio->ntasks >= data->ntasks_threshold)
|
|
|
+ {
|
|
|
+ STARPU_ASSERT(!is_pushback);
|
|
|
+ ret = 1;
|
|
|
+ STARPU_COMPONENT_MUTEX_UNLOCK(mutex);
|
|
|
+ }
|
|
|
+ else if(data->exp)
|
|
|
{
|
|
|
if(!isnan(task->predicted))
|
|
|
exp_len = prio->exp_len + task->predicted;
|
|
|
else
|
|
|
exp_len = prio->exp_len;
|
|
|
|
|
|
- if ((data->ntasks_threshold != 0 && prio->ntasks >= data->ntasks_threshold) || (data->exp_len_threshold != 0.0 && exp_len >= data->exp_len_threshold))
|
|
|
+ if (data->exp_len_threshold != 0.0 && exp_len >= data->exp_len_threshold)
|
|
|
{
|
|
|
static int warned;
|
|
|
if(data->exp_len_threshold != 0.0 && task->predicted > data->exp_len_threshold && !warned)
|
|
@@ -128,12 +135,12 @@ static int prio_push_local_task(struct starpu_sched_component * component, struc
|
|
|
_STARPU_DISP("Warning : a predicted task length (%lf) exceeds the expected length threshold (%lf) of a prio component queue, you should reconsider the value of this threshold. This message will not be printed again for further thresholds exceeding.\n",task->predicted,data->exp_len_threshold);
|
|
|
warned = 1;
|
|
|
}
|
|
|
+ STARPU_ASSERT(!is_pushback);
|
|
|
ret = 1;
|
|
|
STARPU_COMPONENT_MUTEX_UNLOCK(mutex);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
-
|
|
|
if(!isnan(task->predicted_transfer))
|
|
|
{
|
|
|
double end = prio_estimated_end(component);
|