1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-06-06 22:01:55 +00:00

update fair

This commit is contained in:
Newnius 2020-05-28 19:20:30 +08:00
parent fcd0ac52f0
commit e99b7ca0a5

View File

@ -396,7 +396,9 @@ func (scheduler *SchedulerFair) UpdateQuota() {
availableCPU -= (requests[queue].CPU * base) / requests[queue].NumberGPU
quota.Memory += ((requests[queue].Memory * base) / requests[queue].NumberGPU) / 1000
}
if availableGPU > 0 {
/* left more and more resource */
if availableGPU > 0 && availableGPU < per {
flag := false
for _, queue := range candidates {
if quota, ok := scheduler.queuesQuota[queue]; ok && quota.NumberGPU >= requests[queue].NumberGPU*1000 {
continue
@ -405,8 +407,19 @@ func (scheduler *SchedulerFair) UpdateQuota() {
quota.NumberGPU += availableGPU
quota.CPU += (requests[queue].CPU * availableGPU) / requests[queue].NumberGPU
quota.Memory += ((requests[queue].Memory * availableGPU) / requests[queue].NumberGPU) / 1000
flag = true
break
}
if !flag { /* make sure no resource is waste */
for _, queue := range candidates {
quota := scheduler.queuesQuota[queue]
quota.NumberGPU += availableGPU
quota.CPU += (requests[queue].CPU * availableGPU) / requests[queue].NumberGPU
quota.Memory += ((requests[queue].Memory * availableGPU) / requests[queue].NumberGPU) / 1000
flag = true
break
}
}
}
log.Info("After ")
for queue, quota := range scheduler.queuesQuota {