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:
parent
acdbd39a08
commit
55e3fe781b
29
src/optimizer.go
Normal file
29
src/optimizer.go
Normal 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)
|
||||||
|
}
|
@ -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{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user