1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-06-08 06:41:56 +00:00

add optimizer

This commit is contained in:
Newnius 2020-04-12 11:14:53 +08:00
parent acdbd39a08
commit 55e3fe781b
2 changed files with 30 additions and 1 deletions

29
src/optimizer.go Normal file
View File

@ -0,0 +1,29 @@
package main
import (
log "github.com/sirupsen/logrus"
"sync"
)
type Optimizer struct {
scheduler Scheduler
killedFlag bool
}
var optimizerInstance *Optimizer
var OptimizerInstanceLock sync.Mutex
func InstanceOfOptimizer() *Optimizer {
defer OptimizerInstanceLock.Unlock()
OptimizerInstanceLock.Lock()
if optimizerInstance == nil {
optimizerInstance = &Optimizer{}
}
return optimizerInstance
}
func (jhl *Optimizer) feed(job string, utils []int) {
log.Info("optimizer feed")
log.Info(job, utils)
}

View File

@ -222,7 +222,7 @@ func (pool *ResourcePool) attach(GPU string, job string) {
func (pool *ResourcePool) detach(GPU string, jobName string) { func (pool *ResourcePool) detach(GPU string, jobName string) {
if _, ok := pool.bindings[GPU]; ok { if _, ok := pool.bindings[GPU]; ok {
if len(pool.bindings[GPU]) == 1 { if len(pool.bindings[GPU]) == 1 {
InstanceOptimizer().feed(jobName, pool.utils[GPU]) InstanceOfOptimizer().feed(jobName, pool.utils[GPU])
pool.utils[GPU] = []int{} pool.utils[GPU] = []int{}
} }
} }