mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-07 22:31:55 +00:00
update req predict
This commit is contained in:
parent
f8ea09f3c6
commit
4c657e698e
10
src/main.go
10
src/main.go
@ -42,6 +42,7 @@ func serverAPI(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else {
|
} else {
|
||||||
for i := range job.Tasks {
|
for i := range job.Tasks {
|
||||||
job.Tasks[i].ID = job.Name + ":" + job.Tasks[i].Name
|
job.Tasks[i].ID = job.Name + ":" + job.Tasks[i].Name
|
||||||
|
job.Tasks[i].Job = job.Name
|
||||||
}
|
}
|
||||||
scheduler.Schedule(job)
|
scheduler.Schedule(job)
|
||||||
}
|
}
|
||||||
@ -60,6 +61,15 @@ func serverAPI(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.Write(js)
|
w.Write(js)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
case "job_predict_req":
|
||||||
|
log.Debug("job_predict_req")
|
||||||
|
jobName := r.URL.Query().Get("name")
|
||||||
|
cmd := r.URL.Query().Get("cmd")
|
||||||
|
js, _ := json.Marshal(InstanceOfOptimizer().PredictReq(jobName, cmd))
|
||||||
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
w.Write(js)
|
||||||
|
break
|
||||||
|
|
||||||
case "job_stop":
|
case "job_stop":
|
||||||
log.Debug("job_stop")
|
log.Debug("job_stop")
|
||||||
js, _ := json.Marshal(scheduler.Stop(string(r.PostFormValue("id"))))
|
js, _ := json.Marshal(scheduler.Stop(string(r.PostFormValue("id"))))
|
||||||
|
@ -81,3 +81,13 @@ type MsgOptimizerPredict struct {
|
|||||||
Main int `json:"main"`
|
Main int `json:"main"`
|
||||||
Post int `json:"post"`
|
Post int `json:"post"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type MsgJobReq struct {
|
||||||
|
Code int `json:"code"`
|
||||||
|
Error string `json:"error"`
|
||||||
|
CPU int `json:"cpu"`
|
||||||
|
Mem int `json:"mem"`
|
||||||
|
GPU int `json:"gpu"`
|
||||||
|
MemGPU int `json:"cpu"`
|
||||||
|
BW int `json:"bw"`
|
||||||
|
}
|
||||||
|
@ -296,3 +296,7 @@ func (optimizer *Optimizer) predict(job string, seq int) (OptimizerJobExecutionT
|
|||||||
}
|
}
|
||||||
return OptimizerJobExecutionTime{}, false
|
return OptimizerJobExecutionTime{}, false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (optimizer *Optimizer) PredictReq(jobName string, cmd string) MsgJobReq {
|
||||||
|
return MsgJobReq{CPU: 4, Mem: 4096, GPU: 1, MemGPU: 8192, BW: 150}
|
||||||
|
}
|
||||||
|
@ -45,6 +45,10 @@ func (jobs JobList) Less(i, j int) bool {
|
|||||||
if jobs[i].Priority != jobs[j].Priority {
|
if jobs[i].Priority != jobs[j].Priority {
|
||||||
return jobs[i].Priority < jobs[j].Priority
|
return jobs[i].Priority < jobs[j].Priority
|
||||||
}
|
}
|
||||||
|
/* lower jobs, which unable to be scheduled */
|
||||||
|
if InstanceOfResourcePool().TotalGPU < jobs[i].NumberGPU {
|
||||||
|
return true
|
||||||
|
}
|
||||||
return jobs[i].BasePriority/float64(jobs[i].NumberGPU) < jobs[j].BasePriority/float64(jobs[j].NumberGPU)
|
return jobs[i].BasePriority/float64(jobs[i].NumberGPU) < jobs[j].BasePriority/float64(jobs[j].NumberGPU)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user