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 17:43:02 +08:00
parent 7cd25c9022
commit ad723641bc

View File

@ -384,20 +384,23 @@ func (scheduler *SchedulerFair) UpdateQuota() {
/* if allocate is more than request, reduce weight */ /* if allocate is more than request, reduce weight */
log.Info(quota.NumberGPU, per, weight, requests[queue].NumberGPU) log.Info(quota.NumberGPU, per, weight, requests[queue].NumberGPU)
if quota.NumberGPU+per*weight > requests[queue].NumberGPU*1000 { base := per * weight
weight = (requests[queue].NumberGPU*1000 - quota.NumberGPU + per - 1) / per if quota.NumberGPU+base > requests[queue].NumberGPU*1000 {
base = requests[queue].NumberGPU*1000 - quota.NumberGPU
} }
log.Info(weight)
quota.NumberGPU += per * weight quota.NumberGPU += base
availableGPU -= per * weight availableGPU -= base
quota.CPU += (requests[queue].CPU * per * weight) / requests[queue].NumberGPU quota.CPU += (requests[queue].CPU * base) / requests[queue].NumberGPU
availableCPU -= (requests[queue].CPU * per * weight) / requests[queue].NumberGPU availableCPU -= (requests[queue].CPU * base) / requests[queue].NumberGPU
quota.Memory += (requests[queue].Memory * per * weight) / requests[queue].NumberGPU / 1000 quota.Memory += (requests[queue].Memory * base) / requests[queue].NumberGPU / 1000
} }
if availableGPU > 0 { if availableGPU > 0 {
for _, queue := range candidates { for _, queue := range candidates {
if quota, ok := scheduler.queuesQuota[queue]; ok && quota.NumberGPU >= requests[queue].NumberGPU*1000 {
continue
}
quota := scheduler.queuesQuota[queue] quota := scheduler.queuesQuota[queue]
quota.NumberGPU += availableGPU quota.NumberGPU += availableGPU
break break