mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-12-12 23:36:44 +00:00
[WIP] add distributed job support
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"io/ioutil"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type JobManager struct {
|
||||
@@ -21,6 +22,8 @@ func (jm *JobManager) start() {
|
||||
log.Println("start job ", jm.job.Name)
|
||||
jm.jobStatus = JobStatus{Name: jm.job.Name, tasks: map[string]TaskStatus{}}
|
||||
|
||||
network := allocator.acquireNetwork()
|
||||
|
||||
/* request for resources */
|
||||
for i := range jm.job.Tasks {
|
||||
var resource NodeStatus
|
||||
@@ -48,6 +51,9 @@ func (jm *JobManager) start() {
|
||||
v.Set("name", jm.job.Tasks[i].Name)
|
||||
v.Set("workspace", jm.job.Workspace)
|
||||
v.Set("gpus", strings.Join(GPUs, ","))
|
||||
v.Set("mem_limit", strconv.Itoa(jm.job.Tasks[i].Memory)+"m")
|
||||
v.Set("cpu_limit", strconv.Itoa(jm.job.Tasks[i].NumberCPU))
|
||||
v.Set("network", network)
|
||||
|
||||
fmt.Println(v.Encode())
|
||||
|
||||
@@ -102,6 +108,8 @@ func (jm *JobManager) start() {
|
||||
time.Sleep(time.Second * 10)
|
||||
}
|
||||
|
||||
allocator.releaseNetwork(network)
|
||||
|
||||
jm.allocator.finish(&jm.job)
|
||||
log.Println("finish job", jm.job.Name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user