Skip to content

Commit 4170bca

Browse files
committed
refactor(scheduler): rename resourceaware plugin to gpujoborder for clarity
1 parent c5ff98c commit 4170bca

4 files changed

Lines changed: 71 additions & 66 deletions

File tree

pkg/scheduler/plugins/factory.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ import (
4545
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/plugins/subgrouporder"
4646
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/plugins/taskorder"
4747
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/plugins/topology"
48-
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/plugins/resourceaware"
48+
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/plugins/gpujoborder"
4949
)
5050

5151
func InitDefaultPlugins() {
5252
// Plugins for PodGroupInfos
5353
framework.RegisterPluginBuilder("predicates", predicates.New)
5454
framework.RegisterPluginBuilder("priority", priority.New)
55-
framework.RegisterPluginBuilder("resourceaware", resourceaware.New)
55+
framework.RegisterPluginBuilder("gpujoborder", gpujoborder.New)
5656
framework.RegisterPluginBuilder("nodeplacement", nodeplacement.New)
5757
framework.RegisterPluginBuilder("nominatednode", nominatednode.New)
5858
framework.RegisterPluginBuilder("numa", numa.New)
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package gpujoborder
2+
3+
import (
4+
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/api/podgroup_info"
5+
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/framework"
6+
"github.com/kai-scheduler/KAI-scheduler/pkg/scheduler/log"
7+
)
8+
9+
const (
10+
ModePreferLarger = "prefer-larger"
11+
ModePreferSmaller = "prefer-smaller"
12+
)
13+
14+
type gpuJobOrderPlugin struct {
15+
mode string
16+
}
17+
18+
func New(arguments framework.PluginArguments) framework.Plugin {
19+
mode := arguments.GetString("mode", ModePreferLarger)
20+
if mode != ModePreferLarger && mode != ModePreferSmaller {
21+
log.InfraLogger.Warningf("gpujoborder: unrecognized mode %q, defaulting to prefer-larger", mode)
22+
mode = ModePreferLarger
23+
}
24+
return &gpuJobOrderPlugin{mode: mode}
25+
}
26+
27+
func (rp *gpuJobOrderPlugin) Name() string {
28+
return "gpujoborder"
29+
}
30+
31+
func (rp *gpuJobOrderPlugin) OnSessionOpen(ssn *framework.Session) {
32+
ssn.AddJobOrderFn(rp.JobOrderFn)
33+
}
34+
35+
func (rp *gpuJobOrderPlugin) JobOrderFn(l, r interface{}) int {
36+
lv := l.(*podgroup_info.PodGroupInfo)
37+
rv := r.(*podgroup_info.PodGroupInfo)
38+
39+
if lv.Priority != rv.Priority {
40+
return 0
41+
}
42+
43+
lGPU := lv.GetAliveTasksRequestedGPUs()
44+
rGPU := rv.GetAliveTasksRequestedGPUs()
45+
46+
switch rp.mode {
47+
case ModePreferSmaller:
48+
if lGPU < rGPU {
49+
return -1
50+
}
51+
if lGPU > rGPU {
52+
return 1
53+
}
54+
default: // ModePreferLarger
55+
if lGPU > rGPU {
56+
return -1
57+
}
58+
if lGPU < rGPU {
59+
return 1
60+
}
61+
}
62+
return 0
63+
}
64+
65+
func (rp *gpuJobOrderPlugin) OnSessionClose(_ *framework.Session) {}

pkg/scheduler/plugins/resourceaware/resourceaware_test.go renamed to pkg/scheduler/plugins/gpujoborder/gpujoborder_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package resourceaware
1+
package gpujoborder
22

33
import (
44
"testing"
@@ -22,15 +22,15 @@ func makeGPUPodGroup(uid string, priority int32, gpuCount float64, vm *resource_
2222
return pg
2323
}
2424

25-
func newPlugin(t *testing.T, mode string) *resourceAwarePlugin {
25+
func newPlugin(t *testing.T, mode string) *gpuJobOrderPlugin {
2626
t.Helper()
2727
args := framework.PluginArguments{}
2828
if mode != "" {
2929
args["mode"] = mode
3030
}
31-
rp, ok := New(args).(*resourceAwarePlugin)
31+
rp, ok := New(args).(*gpuJobOrderPlugin)
3232
if !ok {
33-
t.Fatalf("New() did not return *resourceAwarePlugin")
33+
t.Fatalf("New() did not return *gpuJobOrderPlugin")
3434
}
3535
return rp
3636
}

pkg/scheduler/plugins/resourceaware/resourceaware.go

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)