diff --git a/src/scheduler_fair.go b/src/scheduler_fair.go index 120b819..218368b 100644 --- a/src/scheduler_fair.go +++ b/src/scheduler_fair.go @@ -187,10 +187,10 @@ func (scheduler *SchedulerFair) AcquireResource(job Job, task Task) NodeStatus { var candidates []NodeStatus /* first round, find vacant gpu */ - for i := poolID; i < pool.poolsCount; i++ { - pool.poolsMu[i].Lock() - locks[i] = pool.poolsMu[i] - for _, node := range pool.pools[i] { + for i := 0; i < pool.poolsCount; i++ { + pool.poolsMu[(i+poolID)%pool.poolsCount].Lock() + locks[(i+poolID)%pool.poolsCount] = pool.poolsMu[(i+poolID)%pool.poolsCount] + for _, node := range pool.pools[(i+poolID)%pool.poolsCount] { var available []GPUStatus for _, status := range node.Status { if status.MemoryTotal >= task.MemoryGPU && status.MemoryUsed < 10 {