From 55e3fe781bf7fe352554e3407d2afd2268b81460 Mon Sep 17 00:00:00 2001 From: Newnius Date: Sun, 12 Apr 2020 11:14:53 +0800 Subject: [PATCH] add optimizer --- src/optimizer.go | 29 +++++++++++++++++++++++++++++ src/resource_pool.go | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/optimizer.go diff --git a/src/optimizer.go b/src/optimizer.go new file mode 100644 index 0000000..8073c61 --- /dev/null +++ b/src/optimizer.go @@ -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) +} diff --git a/src/resource_pool.go b/src/resource_pool.go index 6d86eca..c2318a0 100644 --- a/src/resource_pool.go +++ b/src/resource_pool.go @@ -222,7 +222,7 @@ func (pool *ResourcePool) attach(GPU string, job string) { func (pool *ResourcePool) detach(GPU string, jobName string) { if _, ok := pool.bindings[GPU]; ok { if len(pool.bindings[GPU]) == 1 { - InstanceOptimizer().feed(jobName, pool.utils[GPU]) + InstanceOfOptimizer().feed(jobName, pool.utils[GPU]) pool.utils[GPU] = []int{} } }