From 59266d207d80e40923e42a3040fcc8544408fdc0 Mon Sep 17 00:00:00 2001 From: Pradyumna Kaushik Date: Tue, 26 Sep 2017 00:37:12 -0400 Subject: [PATCH] retrofitted to use the generic task sorter. --- def/task.go | 30 ------------------------------ def/taskUtils.go | 2 +- schedulers/bin-packing.go | 3 +-- schedulers/max-greedymins.go | 3 +-- 4 files changed, 3 insertions(+), 35 deletions(-) diff --git a/def/task.go b/def/task.go index f5092de..cfe15f7 100644 --- a/def/task.go +++ b/def/task.go @@ -94,36 +94,6 @@ func WattsToConsider(task Task, classMapWatts bool, offer *mesos.Offer) (float64 } } -// Sorter implements sort.Sort interface to sort tasks by Watts requirement. -type WattsSorter []Task - -func (slice WattsSorter) Len() int { - return len(slice) -} - -func (slice WattsSorter) Less(i, j int) bool { - return slice[i].Watts < slice[j].Watts -} - -func (slice WattsSorter) Swap(i, j int) { - slice[i], slice[j] = slice[j], slice[i] -} - -// Sorter implements sort.Sort interface to sort tasks by CPU requirement. -type CPUSorter []Task - -func (slice CPUSorter) Len() int { - return len(slice) -} - -func (slice CPUSorter) Less(i, j int) bool { - return slice[i].CPU < slice[j].CPU -} - -func (slice CPUSorter) Swap(i, j int) { - slice[i], slice[j] = slice[j], slice[i] -} - // Compare two tasks. func Compare(task1 *Task, task2 *Task) bool { // If comparing the same pointers (checking the addresses). diff --git a/def/taskUtils.go b/def/taskUtils.go index 733754e..b6baf51 100644 --- a/def/taskUtils.go +++ b/def/taskUtils.go @@ -58,7 +58,7 @@ func (tc TasksToClassify) classify(numberOfClusters int, taskObservation func(ta return labelAndOrder(clusters, numberOfClusters, taskObservation) } -// record observations +// Record observations func getObservations(tasks []Task, taskObservation func(task Task) []float64) []gokmeans.Node { observations := []gokmeans.Node{} for i := 0; i < len(tasks); i++ { diff --git a/schedulers/bin-packing.go b/schedulers/bin-packing.go index 630413b..4dbd6c2 100644 --- a/schedulers/bin-packing.go +++ b/schedulers/bin-packing.go @@ -11,7 +11,6 @@ import ( sched "github.com/mesos/mesos-go/scheduler" "log" "os" - "sort" "time" ) @@ -40,7 +39,7 @@ type BinPackSortedWatts struct { // New elektron scheduler func NewBinPackSortedWatts(tasks []def.Task, wattsAsAResource bool, schedTracePrefix string, classMapWatts bool) *BinPackSortedWatts { - sort.Sort(def.WattsSorter(tasks)) + def.SortTasks(tasks, def.SortByWatts) logFile, err := os.Create("./" + schedTracePrefix + "_schedTrace.log") if err != nil { diff --git a/schedulers/max-greedymins.go b/schedulers/max-greedymins.go index a2545db..aafbde5 100644 --- a/schedulers/max-greedymins.go +++ b/schedulers/max-greedymins.go @@ -11,7 +11,6 @@ import ( sched "github.com/mesos/mesos-go/scheduler" "log" "os" - "sort" "time" ) @@ -41,7 +40,7 @@ type BPSWMaxMinWatts struct { // New elektron scheduler func NewBPSWMaxMinWatts(tasks []def.Task, wattsAsAResource bool, schedTracePrefix string, classMapWatts bool) *BPSWMaxMinWatts { - sort.Sort(def.WattsSorter(tasks)) + def.SortTasks(tasks, def.SortByWatts) logFile, err := os.Create("./" + schedTracePrefix + "_schedTrace.log") if err != nil {