1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-12-15 16:16:44 +00:00
This commit is contained in:
2020-04-30 15:06:36 +08:00
parent 12cbd16118
commit 467c90211d

View File

@@ -190,6 +190,7 @@ func (scheduler *SchedulerFair) AcquireResource(job Job, task Task) NodeStatus {
locks := map[int]sync.Mutex{} locks := map[int]sync.Mutex{}
allocationType := 1 allocationType := 1
availableGPUs := map[string][]GPUStatus{}
var candidates []NodeStatus var candidates []NodeStatus
/* first round, find vacant gpu */ /* first round, find vacant gpu */
@@ -205,6 +206,7 @@ func (scheduler *SchedulerFair) AcquireResource(job Job, task Task) NodeStatus {
} }
if len(available) >= task.NumberGPU { if len(available) >= task.NumberGPU {
candidates = append(candidates, node) candidates = append(candidates, node)
availableGPUs[node.ClientID] = available
if len(candidates) >= 8 { if len(candidates) >= 8 {
break break
} }
@@ -242,6 +244,7 @@ func (scheduler *SchedulerFair) AcquireResource(job Job, task Task) NodeStatus {
} }
if totalUtil < 100 { if totalUtil < 100 {
available = append(available, status) available = append(available, status)
availableGPUs[node.ClientID] = available
} }
} }
} }
@@ -274,7 +277,7 @@ func (scheduler *SchedulerFair) AcquireResource(job Job, task Task) NodeStatus {
node := candidates[0] node := candidates[0]
res.ClientID = node.ClientID res.ClientID = node.ClientID
res.ClientHost = node.ClientHost res.ClientHost = node.ClientHost
res.Status = available[0:task.NumberGPU] res.Status = availableGPUs[node.ClientID][0:task.NumberGPU]
res.NumCPU = task.NumberCPU res.NumCPU = task.NumberCPU
res.MemTotal = task.Memory res.MemTotal = task.Memory