mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-12-13 07:46:43 +00:00
update
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user