From 3f65e1d0cbab3decf0a22fa14928b41bc60accdb Mon Sep 17 00:00:00 2001 From: Newnius Date: Sat, 30 May 2020 16:06:53 +0800 Subject: [PATCH] update fair --- src/scheduler_fair.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/scheduler_fair.go b/src/scheduler_fair.go index 186bbc7..5662557 100644 --- a/src/scheduler_fair.go +++ b/src/scheduler_fair.go @@ -181,10 +181,15 @@ func (scheduler *SchedulerFair) Start() { if least == 0 { for queue, quota := range scheduler.queuesQuota { /* do not self borrow */ - if queue == bestQueue || quota.NumberGPU < minRequestGPU { + if queue == bestQueue || quota.NumberGPU == 0 { continue } - quota.NumberGPU -= minRequestGPU + if quota.NumberGPU < minRequestGPU { + least = quota.NumberGPU + } else { + least = minRequestGPU + } + quota.NumberGPU -= least if _, ok := scheduler.IOUs[bestQueue]; !ok { scheduler.IOUs[bestQueue] = map[string]*ResourceCount{} } @@ -193,10 +198,10 @@ func (scheduler *SchedulerFair) Start() { scheduler.IOUs[bestQueue][queue] = &ResourceCount{} IOU = scheduler.IOUs[bestQueue][queue] } - IOU.NumberGPU += minRequestGPU - scheduler.queuesQuota[bestQueue].NumberGPU += minRequestGPU + IOU.NumberGPU += least + scheduler.queuesQuota[bestQueue].NumberGPU += least log.Info(bestQueue, " borrow ", minRequestGPU, " from ", queue, " now ", scheduler.queuesQuota[bestQueue].NumberGPU) - minRequestGPU = 0 + minRequestGPU -= least break } }