fixed bug to return []float64{...} as observations rather than one value.

This commit is contained in:
Pradyumna Kaushik 2017-03-13 16:44:52 -04:00
parent 34ab753491
commit 190b395bc3
2 changed files with 12 additions and 12 deletions

View file

@ -68,19 +68,19 @@ func NewBottomHeavy(tasks []def.Task, wattsAsAResource bool, schedTracePrefix st
// Separating small tasks from large tasks. // Separating small tasks from large tasks.
// Classification done based on MMPU watts requirements. // Classification done based on MMPU watts requirements.
tasksToClassify := def.TasksToClassify(tasks) 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 { if task.ClassToWatts != nil {
// taking the aggregate // taking the aggregate
observation := 0.0 observations := []float64{}
for _, watts := range task.ClassToWatts { for _, watts := range task.ClassToWatts {
observation += watts observations = append(observations, watts)
} }
return observation return observations
} else if task.Watts != 0.0 { } else if task.Watts != 0.0 {
return task.Watts return []float64{task.Watts}
} else { } else {
log.Fatal("Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload.") 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
} }
}) })

View file

@ -67,19 +67,19 @@ func NewTopHeavy(tasks []def.Task, wattsAsAResource bool, schedTracePrefix strin
// Separating small tasks from large tasks. // Separating small tasks from large tasks.
// Classification done based on MMPU watts requirements. // Classification done based on MMPU watts requirements.
tasksToClassify := def.TasksToClassify(tasks) 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 { if task.ClassToWatts != nil {
// taking the aggregate // taking the aggregate
observation := 0.0 observations := []float64{}
for _, watts := range task.ClassToWatts { for _, watts := range task.ClassToWatts {
observation += watts observations = append(observations, watts)
} }
return observation return observations
} else if task.Watts != 0.0 { } else if task.Watts != 0.0 {
return task.Watts return []float64{task.Watts}
} else { } else {
log.Fatal("Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload.") log.Fatal("Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload.")
return 0.0 return []float64{0.0} // won't be here
} }
}) })