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

update fair

This commit is contained in:
Newnius 2020-05-28 19:27:42 +08:00
parent e99b7ca0a5
commit 4a91d71c26

View File

@ -397,29 +397,15 @@ func (scheduler *SchedulerFair) UpdateQuota() {
quota.Memory += ((requests[queue].Memory * base) / requests[queue].NumberGPU) / 1000
}
/* left more and more resource */
if availableGPU > 0 && availableGPU < per {
flag := false
availableGPU = availableGPU % per
if availableGPU > 0 {
for _, queue := range candidates {
if quota, ok := scheduler.queuesQuota[queue]; ok && quota.NumberGPU >= requests[queue].NumberGPU*1000 {
continue
}
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
}
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 {