mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-07 14:21:55 +00:00
update GA
This commit is contained in:
parent
d35e0a57d6
commit
1a5172cdba
@ -78,9 +78,9 @@ func (X Allocation) Mutate(rng *rand.Rand) {
|
|||||||
|
|
||||||
//fmt.Println(tasks)
|
//fmt.Println(tasks)
|
||||||
|
|
||||||
/* first-fit */
|
/* random-fit */
|
||||||
for _, task := range tasks {
|
for _, task := range tasks {
|
||||||
if nodeID, ok := firstFit(X, task); ok {
|
if nodeID, ok := randomFit(X, task); ok {
|
||||||
X.TasksOnNode[nodeID] = append(X.TasksOnNode[nodeID], task)
|
X.TasksOnNode[nodeID] = append(X.TasksOnNode[nodeID], task)
|
||||||
cnt := task.NumberGPU
|
cnt := task.NumberGPU
|
||||||
//log.Info("Add task ", task.Name, " in ", nodeID)
|
//log.Info("Add task ", task.Name, " in ", nodeID)
|
||||||
@ -213,9 +213,9 @@ func (X Allocation) Crossover(Y eaopt.Genome, rng *rand.Rand) {
|
|||||||
}
|
}
|
||||||
X.TasksOnNode[nodeID] = newTasksOnNode
|
X.TasksOnNode[nodeID] = newTasksOnNode
|
||||||
|
|
||||||
/* first-fit */
|
/* random-fit */
|
||||||
for _, task := range tasks {
|
for _, task := range tasks {
|
||||||
if nodeID, ok := firstFit(X, task); ok {
|
if nodeID, ok := randomFit(X, task); ok {
|
||||||
X.TasksOnNode[nodeID] = append(X.TasksOnNode[nodeID], task)
|
X.TasksOnNode[nodeID] = append(X.TasksOnNode[nodeID], task)
|
||||||
cnt := task.NumberGPU
|
cnt := task.NumberGPU
|
||||||
//log.Info("Remove task ", task.Name, " in ", nodeID)
|
//log.Info("Remove task ", task.Name, " in ", nodeID)
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TgenerateCase() ([]NodeStatus, []Task) {
|
func TgenerateCase() ([]NodeStatus, []Task) {
|
||||||
numTask := 4
|
numTask := 6
|
||||||
|
|
||||||
var nodes []NodeStatus
|
var nodes []NodeStatus
|
||||||
var tasks []Task
|
var tasks []Task
|
||||||
@ -29,7 +29,7 @@ func TgenerateCase() ([]NodeStatus, []Task) {
|
|||||||
}
|
}
|
||||||
for i := 0; i < numTask; i++ {
|
for i := 0; i < numTask; i++ {
|
||||||
isPS := false
|
isPS := false
|
||||||
if i < numTask/4 {
|
if i < numTask/3 {
|
||||||
isPS = true
|
isPS = true
|
||||||
}
|
}
|
||||||
task := Task{Name: "task-" + strconv.Itoa(i), IsPS: isPS}
|
task := Task{Name: "task-" + strconv.Itoa(i), IsPS: isPS}
|
||||||
|
@ -261,6 +261,7 @@ func (jm *JobManager) status() MsgJobStatus {
|
|||||||
|
|
||||||
err := spider.do()
|
err := spider.do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Warn(err)
|
||||||
tasksStatus[i] = TaskStatus{Status: "unknown", State: map[string]interface{}{"ExitCode": float64(-1)}}
|
tasksStatus[i] = TaskStatus{Status: "unknown", State: map[string]interface{}{"ExitCode": float64(-1)}}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -276,6 +277,7 @@ func (jm *JobManager) status() MsgJobStatus {
|
|||||||
var res MsgTaskStatus
|
var res MsgTaskStatus
|
||||||
err = json.Unmarshal([]byte(string(body)), &res)
|
err = json.Unmarshal([]byte(string(body)), &res)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Warn(err)
|
||||||
tasksStatus[i] = TaskStatus{Status: "unknown", State: map[string]interface{}{"ExitCode": float64(-1)}}
|
tasksStatus[i] = TaskStatus{Status: "unknown", State: map[string]interface{}{"ExitCode": float64(-1)}}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user