mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-07 22:31:55 +00:00
update
This commit is contained in:
parent
39d7ebd93d
commit
d6c884067e
@ -42,7 +42,10 @@ func (jobs JobList) Len() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (jobs JobList) Less(i, j int) bool {
|
func (jobs JobList) Less(i, j int) bool {
|
||||||
return jobs[i].BasePriority < jobs[j].BasePriority
|
if jobs[i].Priority != jobs[j].Priority {
|
||||||
|
return jobs[i].Priority < jobs[j].Priority
|
||||||
|
}
|
||||||
|
return jobs[i].BasePriority/float64(jobs[i].NumberGPU) < jobs[j].BasePriority/float64(jobs[j].NumberGPU)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (jobs JobList) Swap(i, j int) {
|
func (jobs JobList) Swap(i, j int) {
|
||||||
@ -424,6 +427,12 @@ func (scheduler *SchedulerFair) Schedule(job Job) {
|
|||||||
copy(scheduler.queues[queue][index+1:], scheduler.queues[queue][index:])
|
copy(scheduler.queues[queue][index+1:], scheduler.queues[queue][index:])
|
||||||
scheduler.queues[queue][index] = job
|
scheduler.queues[queue][index] = job
|
||||||
|
|
||||||
|
numberGPU := 0
|
||||||
|
for _, task := range job.Tasks {
|
||||||
|
numberGPU += task.NumberGPU
|
||||||
|
}
|
||||||
|
job.NumberGPU = numberGPU
|
||||||
|
|
||||||
job.Status = Created
|
job.Status = Created
|
||||||
job.BasePriority = float64(len(scheduler.queues[queue])) / 10000
|
job.BasePriority = float64(len(scheduler.queues[queue])) / 10000
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ type Job struct {
|
|||||||
CreatedBy int `json:"created_by"`
|
CreatedBy int `json:"created_by"`
|
||||||
Locality int `json:"locality"`
|
Locality int `json:"locality"`
|
||||||
Status State `json:"status"`
|
Status State `json:"status"`
|
||||||
|
NumberGPU int `json:"number_GPU"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Task struct {
|
type Task struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user