diff --git a/schedulers/bottomHeavy.go b/schedulers/bottomHeavy.go index 2112fe2..f938095 100644 --- a/schedulers/bottomHeavy.go +++ b/schedulers/bottomHeavy.go @@ -68,19 +68,19 @@ func NewBottomHeavy(tasks []def.Task, wattsAsAResource bool, schedTracePrefix st // Separating small tasks from large tasks. // Classification done based on MMPU watts requirements. tasksToClassify := def.TasksToClassify(tasks) - classifiedTasks := tasksToClassify.ClassifyTasks(2, func(task def.Task) float64 { + classifiedTasks := tasksToClassify.ClassifyTasks(2, func(task def.Task) []float64 { if task.ClassToWatts != nil { // taking the aggregate - observation := 0.0 + observations := []float64{} for _, watts := range task.ClassToWatts { - observation += watts + observations = append(observations, watts) } - return observation + return observations } else if task.Watts != 0.0 { - return task.Watts + return []float64{task.Watts} } else { log.Fatal("Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload.") - return 0.0 // won't reach here + return []float64{0.0} // won't reach here } }) diff --git a/schedulers/topHeavy.go b/schedulers/topHeavy.go index 44b8292..c4f0d44 100644 --- a/schedulers/topHeavy.go +++ b/schedulers/topHeavy.go @@ -67,19 +67,19 @@ func NewTopHeavy(tasks []def.Task, wattsAsAResource bool, schedTracePrefix strin // Separating small tasks from large tasks. // Classification done based on MMPU watts requirements. tasksToClassify := def.TasksToClassify(tasks) - classifiedTasks := tasksToClassify.ClassifyTasks(2, func(task def.Task) float64 { + classifiedTasks := tasksToClassify.ClassifyTasks(2, func(task def.Task) []float64 { if task.ClassToWatts != nil { // taking the aggregate - observation := 0.0 + observations := []float64{} for _, watts := range task.ClassToWatts { - observation += watts + observations = append(observations, watts) } - return observation + return observations } else if task.Watts != 0.0 { - return task.Watts + return []float64{task.Watts} } else { log.Fatal("Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload.") - return 0.0 + return []float64{0.0} // won't be here } })