1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-12-13 07:46:43 +00:00
This commit is contained in:
2020-04-30 15:50:05 +08:00
parent dc28448e1e
commit 44e94bca97
2 changed files with 10 additions and 12 deletions

View File

@@ -139,7 +139,7 @@ func (jm *JobManager) start() {
InstanceJobHistoryLogger().submitTaskStatus(jm.job.Name, res.Status[i]) InstanceJobHistoryLogger().submitTaskStatus(jm.job.Name, res.Status[i])
} }
} }
if onlyPS { if flag && onlyPS {
jm.stop() jm.stop()
log.Info("Only PS is running, stop", jm.job.Name) log.Info("Only PS is running, stop", jm.job.Name)
jm.killedFlag = false jm.killedFlag = false

View File

@@ -10,7 +10,7 @@ type Optimizer struct {
scheduler Scheduler scheduler Scheduler
killedFlag bool killedFlag bool
predicts map[string]OptimizerJobExecutionTime predicts map[string]*OptimizerJobExecutionTime
jobUtilsGPU map[string]int jobUtilsGPU map[string]int
versions map[string]int versions map[string]int
@@ -25,7 +25,7 @@ func InstanceOfOptimizer() *Optimizer {
if optimizerInstance == nil { if optimizerInstance == nil {
optimizerInstance = &Optimizer{} optimizerInstance = &Optimizer{}
optimizerInstance.predicts = map[string]OptimizerJobExecutionTime{} optimizerInstance.predicts = map[string]*OptimizerJobExecutionTime{}
optimizerInstance.jobUtilsGPU = map[string]int{} optimizerInstance.jobUtilsGPU = map[string]int{}
optimizerInstance.versions = map[string]int{} optimizerInstance.versions = map[string]int{}
} }
@@ -35,8 +35,6 @@ func InstanceOfOptimizer() *Optimizer {
func (optimizer *Optimizer) feed(job string, utils []int) { func (optimizer *Optimizer) feed(job string, utils []int) {
log.Info("optimizer feed") log.Info("optimizer feed")
log.Info(job, utils) log.Info(job, utils)
log.Info(optimizer.jobUtilsGPU)
log.Info(optimizer.predicts)
if len(utils) == 0 { if len(utils) == 0 {
return return
@@ -76,16 +74,18 @@ func (optimizer *Optimizer) feed(job string, utils []int) {
postCnt++ postCnt++
} }
if _, ok := optimizer.predicts[str[0]]; !ok { if _, ok := optimizer.predicts[jobName]; !ok {
optimizer.predicts[str[0]] = OptimizerJobExecutionTime{} optimizer.predicts[jobName] = &OptimizerJobExecutionTime{}
} }
predict := optimizer.predicts[str[0]] predict := optimizer.predicts[jobName]
predict.Pre = ((predict.Pre * predict.Version) + preCnt) / (predict.Version + 1) predict.Pre = ((predict.Pre * predict.Version) + preCnt) / (predict.Version + 1)
predict.Post = ((predict.Post * predict.Version) + postCnt) / (predict.Version + 1) predict.Post = ((predict.Post * predict.Version) + postCnt) / (predict.Version + 1)
predict.Total = ((predict.Total * predict.Version) + len(utils)) / (predict.Version + 1) predict.Total = ((predict.Total * predict.Version) + len(utils)) / (predict.Version + 1)
predict.Main = predict.Total - predict.Pre - predict.Post predict.Main = predict.Total - predict.Pre - predict.Post
predict.Version++ predict.Version++
} }
log.Info(optimizer.jobUtilsGPU)
log.Info(optimizer.predicts)
}() }()
} }
@@ -93,9 +93,7 @@ func (optimizer *Optimizer) predictUtilGPU(job string) (int, bool) {
str := strings.Split(job, "-") str := strings.Split(job, "-")
if len(str) == 2 { if len(str) == 2 {
jobName := str[0] jobName := str[0]
log.Info("predictUtilGPU, ", jobName) log.Info("predictUtilGPU, ", jobName)
return 49, true
if _, err := optimizer.jobUtilsGPU[jobName]; err { if _, err := optimizer.jobUtilsGPU[jobName]; err {
return 100, false return 100, false
} }
@@ -106,7 +104,7 @@ func (optimizer *Optimizer) predictUtilGPU(job string) (int, bool) {
return 100, false return 100, false
} }
func (optimizer *Optimizer) predictTime(job string) (OptimizerJobExecutionTime, bool) { func (optimizer *Optimizer) predictTime(job string) (*OptimizerJobExecutionTime, bool) {
str := strings.Split(job, "-") str := strings.Split(job, "-")
if len(str) == 2 { if len(str) == 2 {
jobName := str[0] jobName := str[0]
@@ -115,5 +113,5 @@ func (optimizer *Optimizer) predictTime(job string) (OptimizerJobExecutionTime,
return optimizer.predicts[job], optimizer.predicts[jobName].Version > 5 return optimizer.predicts[job], optimizer.predicts[jobName].Version > 5
} }
} }
return OptimizerJobExecutionTime{}, false return &OptimizerJobExecutionTime{}, false
} }