retrofitted to use the generic task sorter.

This commit is contained in:
Pradyumna Kaushik 2017-09-26 00:37:12 -04:00
parent 180e85ddfa
commit 59266d207d
4 changed files with 3 additions and 35 deletions

View file

@ -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).

View file

@ -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++ {

View file

@ -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 {

View file

@ -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 {