From 872f50e1d25762b5206035103acefbcec2d6d317 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 25 Oct 2024 15:46:50 +0800 Subject: [PATCH] support metax topology-aware scheduling Signed-off-by: root --- README.md | 1 + README_cn.md | 1 + cmd/scheduler/main.go | 5 +- coverage.out | 1 + docs/metax-support.md | 65 ++++++++++ docs/metax-support_cn.md | 66 ++++++++++ examples/metax/binpack.yaml | 15 +++ examples/metax/default_use.yaml | 13 ++ examples/metax/spread.yaml | 15 +++ imgs/metax_binpack.jpg | Bin 0 -> 71888 bytes imgs/metax_spread.jpg | Bin 0 -> 65915 bytes imgs/metax_topo.jpg | Bin 0 -> 55722 bytes pkg/device/ascend/device.go | 4 + pkg/device/cambricon/device.go | 4 + pkg/device/devices.go | 10 +- pkg/device/hygon/device.go | 4 + pkg/device/iluvatar/device.go | 4 + pkg/device/metax/device.go | 186 ++++++++++++++++++++++++++++ pkg/device/metax/device_test.go | 153 +++++++++++++++++++++++ pkg/device/mthreads/device.go | 4 + pkg/device/nvidia/device.go | 4 + pkg/scheduler/config/config.go | 6 +- pkg/scheduler/nodes.go | 6 +- pkg/scheduler/policy/gpu_policy.go | 2 +- pkg/scheduler/policy/node_policy.go | 20 ++- pkg/scheduler/scheduler.go | 16 +-- pkg/scheduler/scheduler_test.go | 16 +-- pkg/scheduler/score.go | 5 +- pkg/scheduler/score_test.go | 46 +++---- pkg/util/types.go | 19 +++ 30 files changed, 630 insertions(+), 61 deletions(-) create mode 100644 coverage.out create mode 100644 docs/metax-support.md create mode 100644 docs/metax-support_cn.md create mode 100644 examples/metax/binpack.yaml create mode 100644 examples/metax/default_use.yaml create mode 100644 examples/metax/spread.yaml create mode 100644 imgs/metax_binpack.jpg create mode 100644 imgs/metax_spread.jpg create mode 100644 imgs/metax_topo.jpg create mode 100644 pkg/device/metax/device.go create mode 100644 pkg/device/metax/device_test.go diff --git a/README.md b/README.md index d14b5c341..804cbd5b1 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ will see 3G device memory inside container [![iluvatar GPU](https://img.shields.io/badge/Iluvatar-GPU-blue)](docs/iluvatar-gpu-support.md) [![mthreads GPU](https://img.shields.io/badge/Mthreads-GPU-blue)](docs/mthreads-support.md) [![ascend NPU](https://img.shields.io/badge/Ascend-NPU-blue)](https://github.com/Project-HAMi/ascend-device-plugin/blob/main/README.md) +[![metax GPU](https://img.shields.io/badge/metax-GPU-blue)](docs/metax-support.md) ## Architect diff --git a/README_cn.md b/README_cn.md index 8b58e212a..2e069a1ef 100644 --- a/README_cn.md +++ b/README_cn.md @@ -24,6 +24,7 @@ [![天数智芯 GPU](https://img.shields.io/badge/天数智芯-GPU-blue)](docs/iluvatar-gpu-support_cn.md) [![摩尔线程 GPU](https://img.shields.io/badge/摩尔线程-GPU-blue)](docs/mthreads-support_cn.md) [![华为昇腾 NPU](https://img.shields.io/badge/华为昇腾-NPU-blue)](https://github.com/Project-HAMi/ascend-device-plugin/blob/main/README_cn.md) +[![沐曦 GPU](https://img.shields.io/badge/metax-GPU-blue)](docs/metax-support_cn.md) ## 简介 diff --git a/cmd/scheduler/main.go b/cmd/scheduler/main.go index 7babd5540..3c9904220 100644 --- a/cmd/scheduler/main.go +++ b/cmd/scheduler/main.go @@ -22,7 +22,6 @@ import ( "github.com/Project-HAMi/HAMi/pkg/device" "github.com/Project-HAMi/HAMi/pkg/scheduler" "github.com/Project-HAMi/HAMi/pkg/scheduler/config" - "github.com/Project-HAMi/HAMi/pkg/scheduler/policy" "github.com/Project-HAMi/HAMi/pkg/scheduler/routes" "github.com/Project-HAMi/HAMi/pkg/util" "github.com/Project-HAMi/HAMi/pkg/version" @@ -58,8 +57,8 @@ func init() { rootCmd.Flags().Int32Var(&config.DefaultMem, "default-mem", 0, "default gpu device memory to allocate") rootCmd.Flags().Int32Var(&config.DefaultCores, "default-cores", 0, "default gpu core percentage to allocate") rootCmd.Flags().Int32Var(&config.DefaultResourceNum, "default-gpu", 1, "default gpu to allocate") - rootCmd.Flags().StringVar(&config.NodeSchedulerPolicy, "node-scheduler-policy", policy.NodeSchedulerPolicyBinpack.String(), "node scheduler policy") - rootCmd.Flags().StringVar(&config.GPUSchedulerPolicy, "gpu-scheduler-policy", policy.GPUSchedulerPolicySpread.String(), "GPU scheduler policy") + rootCmd.Flags().StringVar(&config.NodeSchedulerPolicy, "node-scheduler-policy", util.NodeSchedulerPolicyBinpack.String(), "node scheduler policy") + rootCmd.Flags().StringVar(&config.GPUSchedulerPolicy, "gpu-scheduler-policy", util.GPUSchedulerPolicySpread.String(), "GPU scheduler policy") rootCmd.Flags().StringVar(&config.MetricsBindAddress, "metrics-bind-address", ":9395", "The TCP address that the scheduler should bind to for serving prometheus metrics(e.g. 127.0.0.1:9395, :9395)") rootCmd.Flags().StringToStringVar(&config.NodeLabelSelector, "node-label-selector", nil, "key=value pairs separated by commas") rootCmd.PersistentFlags().AddGoFlagSet(device.GlobalFlagSet()) diff --git a/coverage.out b/coverage.out new file mode 100644 index 000000000..79b28a0b6 --- /dev/null +++ b/coverage.out @@ -0,0 +1 @@ +mode: atomic diff --git a/docs/metax-support.md b/docs/metax-support.md new file mode 100644 index 000000000..af5c446e5 --- /dev/null +++ b/docs/metax-support.md @@ -0,0 +1,65 @@ +## Introduction + +**We now support metax.com/gpu by implementing topo-awareness among metax GPUs**: + +When multiple GPUs are configured on a single server, the GPU cards are connected to the same PCIe Switch or MetaXLink depending on whether they are connected +, there is a near-far relationship. This forms a topology among all the cards on the server, as shown in the following figure: + +![img](../imgs/metax_topo.jpg) + +A user job requests a certain number of metax-tech.com/gpu resources, Kubernetes schedule pods to the appropriate node. gpu-device further processes the logic of allocating the remaining resources on the resource node following criterias below: +1. MetaXLink takes precedence over PCIe Switch in two way: +– A connection is considered a MetaXLink connection when there is a MetaXLink connection and a PCIe Switch connection between the two cards. +– When both the MetaXLink and the PCIe Switch can meet the job request +Equipped with MetaXLink interconnected resources. + +2. When using `node-scheduler-policy=spread` , Allocate Metax resources to be under the same Metaxlink or Paiswich as much as possible, as the following figure shows: + +![img](../imgs/metax_spread.jpg) + +3. When using `node-scheduler-policy=binpack`, Assign GPU resources, so minimize the damage to MetaxXLink topology, as the following figure shows: + +![img](../imgs/metax_binpack.jpg) + +## Important Notes + +1. Device sharing is not supported yet. + +2. These features are tested on MXC500 + +## Prerequisites + +* Metax GPU extensions >= 0.8.0 +* Kubernetes >= 1.23 + +## Enabling topo-awareness scheduling + +* Deploy Metax GPU Extensions on metax nodes (Please consult your device provider to aquire its package and document) + +* Deploy HAMi according to README.md + +## Running Metax jobs + +Mthreads GPUs can now be requested by a container +using the `metax-tech.com/gpu` resource type: + +``` +apiVersion: v1 +kind: Pod +metadata: + name: gpu-pod1 + annotations: hami.io/node-scheduler-policy: "spread" # when this parameter is set to spread, the scheduler will try to find the best topology for this task. +spec: + containers: + - name: ubuntu-container + image: cr.metax-tech.com/public-ai-release/c500/colossalai:2.24.0.5-py38-ubuntu20.04-amd64 + imagePullPolicy: IfNotPresent + command: ["sleep","infinity"] + resources: + limits: + metax-tech.com/gpu: 1 # requesting 1 vGPUs +``` + +> **NOTICE2:** *You can find more examples in [examples/metax folder](../examples/metax/)* + + \ No newline at end of file diff --git a/docs/metax-support_cn.md b/docs/metax-support_cn.md new file mode 100644 index 000000000..bff62b7ba --- /dev/null +++ b/docs/metax-support_cn.md @@ -0,0 +1,66 @@ +## 简介 + +**我们支持基于拓扑结构,对沐曦设备进行优化调度**: + +在单台服务器上配置多张 GPU 时,GPU 卡间根据双方是否连接在相同的 PCIe Switch 或 MetaXLink +下,存在近远(带宽高低)关系。服务器上所有卡间据此形成一张拓扑,如下图所示。 + +![img](../imgs/metax_topo.jpg) + +用户作业请求一定数量的 metax-tech.com/gpu 资源,Kubernetes 选择剩余资源数量满足要求的 +节点,并将 Pod 调度到相应节点。gpu‑device 进一步处理资源节点上剩余资源的分配逻辑,并按照以 +下优先级逻辑为作业容器分配 GPU 设备: +1. MetaXLink 优先级高于 PCIe Switch,包含两层含义: +– 两卡之间同时存在 MetaXLink 连接以及 PCIe Switch 连接时,认定为 MetaXLink 连接。 +– 服务器剩余 GPU 资源中 MetaXLink 互联资源与 PCIe Switch 互联资源均能满足作业请求时,分 +配 MetaXLink 互联资源。 + +2. 当任务使用 `node-scheduler-policy=spread` ,分配GPU资源尽可能位于相同 MetaXLink或PCIe Switch下,如下图所示: + +![img](../imgs/metax_spread.jpg) + +3. 当使用 `node-scheduler-policy=binpack`,分配GPU资源后,剩余资源尽可能完整,如下图所示: + +![img](../imgs/metax_binpack.jpg) + +## 注意: + +1. 暂时不支持沐曦设备的切片,只能申请整卡 + +2. 本功能基于MXC500进行测试 + +## 需求 + +* Metax GPU extensions >= 0.8.0 +* Kubernetes >= 1.23 + +## 开启针对沐曦设备的拓扑调度优化 + +* 部署Metax GPU extensions (请联系您的设备提供方获取) + +* 根据readme.md部署HAMi + +## 运行沐曦任务 + +一个典型的沐曦任务如下所示: + +``` +apiVersion: v1 +kind: Pod +metadata: + name: gpu-pod1 + annotations: hami.io/node-scheduler-policy: "spread" # when this parameter is set to spread, the scheduler will try to find the best topology for this task. +spec: + containers: + - name: ubuntu-container + image: cr.metax-tech.com/public-ai-release/c500/colossalai:2.24.0.5-py38-ubuntu20.04-amd64 + imagePullPolicy: IfNotPresent + command: ["sleep","infinity"] + resources: + limits: + metax-tech.com/gpu: 1 # requesting 1 vGPUs +``` + +> **NOTICE2:** *你可以在这里找到更多样例 [examples/metax folder](../examples/metax/)* + + \ No newline at end of file diff --git a/examples/metax/binpack.yaml b/examples/metax/binpack.yaml new file mode 100644 index 000000000..eb9fd4a75 --- /dev/null +++ b/examples/metax/binpack.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: gpu-pod1 + annotations: + hami.io/node-scheduler-policy: "binpack" # when this parameter is set to binpack, the scheduler will try to minimize the topology loss. +spec: + containers: + - name: ubuntu-container + image: cr.metax-tech.com/public-ai-release/c500/colossalai:2.24.0.5-py38-ubuntu20.04-amd64 + imagePullPolicy: IfNotPresent + command: ["sleep","infinity"] + resources: + limits: + metax-tech.com/gpu: 1 # requesting 1 vGPUs \ No newline at end of file diff --git a/examples/metax/default_use.yaml b/examples/metax/default_use.yaml new file mode 100644 index 000000000..e31c72840 --- /dev/null +++ b/examples/metax/default_use.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Pod +metadata: + name: gpu-pod1 +spec: + containers: + - name: ubuntu-container + image: cr.metax-tech.com/public-ai-release/c500/colossalai:2.24.0.5-py38-ubuntu20.04-amd64 + imagePullPolicy: IfNotPresent + command: ["sleep","infinity"] + resources: + limits: + metax-tech.com/gpu: 1 # requesting 1 vGPUs \ No newline at end of file diff --git a/examples/metax/spread.yaml b/examples/metax/spread.yaml new file mode 100644 index 000000000..93d1404ef --- /dev/null +++ b/examples/metax/spread.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: gpu-pod1 + annotations: + hami.io/node-scheduler-policy: "spread" # when this parameter is set to spread, the scheduler will try to find the best topology for this task. +spec: + containers: + - name: ubuntu-container + image: cr.metax-tech.com/public-ai-release/c500/colossalai:2.24.0.5-py38-ubuntu20.04-amd64 + imagePullPolicy: IfNotPresent + command: ["sleep","infinity"] + resources: + limits: + metax-tech.com/gpu: 1 # requesting 1 vGPUs \ No newline at end of file diff --git a/imgs/metax_binpack.jpg b/imgs/metax_binpack.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05953b7cde0a0a482182039e4aef3a84f9a1845f GIT binary patch literal 71888 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 W(6=9iLND3h1;+lBG6eHu@c#ki2CT~f literal 0 HcmV?d00001 diff --git a/imgs/metax_spread.jpg b/imgs/metax_spread.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79e78c377219e04ae6b39313e9a1f0fd5c415aa5 GIT binary patch literal 65915 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�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 l.NodeList[j].Score } // default policy is Binpack return l.NodeList[i].Score < l.NodeList[j].Score } -func (ns *NodeScore) ComputeScore(devices DeviceUsageList) { +func (ns *NodeScore) OverrideScore(devices DeviceUsageList, policy string) { // current user having request resource + devscore := float32(0) + for idx, val := range ns.Devices { + devscore += device.GetDevices()[idx].ScoreNode(ns.Node, val, policy) + } + if devscore > 0 { + ns.Score = devscore + klog.V(2).Infof("node %s computer overrided score is %f", ns.NodeID, ns.Score) + } +} + +func (ns *NodeScore) ComputeDefaultScore(devices DeviceUsageList) { used, usedCore, usedMem := int32(0), int32(0), int32(0) for _, device := range devices.DeviceLists { used += device.Device.Used @@ -70,5 +84,5 @@ func (ns *NodeScore) ComputeScore(devices DeviceUsageList) { coreScore := float32(usedCore) / float32(totalCore) memScore := float32(usedMem) / float32(totalMem) ns.Score = float32(Weight) * (useScore + coreScore + memScore) - klog.V(2).Infof("node %s computer score is %f", ns.NodeID, ns.Score) + klog.V(2).Infof("node %s computer default score is %f", ns.NodeID, ns.Score) } diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 09e15f815..14c2f6806 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -163,7 +163,7 @@ func (s *Scheduler) RegisterFromNodeAnnotations() { return } labelSelector := labels.Everything() - if config.NodeLabelSelector != nil && len(config.NodeLabelSelector) > 0 { + if len(config.NodeLabelSelector) > 0 { labelSelector = (labels.Set)(config.NodeLabelSelector).AsSelector() } rawNodes, err := s.nodeLister.List(labelSelector) @@ -213,6 +213,7 @@ func (s *Scheduler) RegisterFromNodeAnnotations() { } nodeInfo := &util.NodeInfo{} nodeInfo.ID = val.Name + nodeInfo.Node = val nodeInfo.Devices = make([]util.DeviceInfo, 0) for _, deviceinfo := range nodedevices { found := false @@ -243,7 +244,7 @@ func (s *Scheduler) RegisterFromNodeAnnotations() { } s.addNode(val.Name, nodeInfo) if s.nodes[val.Name] != nil && len(nodeInfo.Devices) > 0 { - klog.Infof("node %v device %s come node info=%v total=%v", val.Name, devhandsk, nodeInfo, s.nodes[val.Name].Devices) + klog.Infof("node %v device %s come node info=%s,%v total=%v", val.Name, devhandsk, nodeInfo.ID, nodeInfo.Devices, s.nodes[val.Name].Devices) } } } @@ -279,6 +280,7 @@ func (s *Scheduler) getNodesUsage(nodes *[]string, task *corev1.Pod) (*map[strin userGPUPolicy = value } } + nodeInfo.Node = node.Node nodeInfo.Devices = policy.DeviceUsageList{ Policy: userGPUPolicy, DeviceLists: make([]*policy.DeviceListsScore, 0), @@ -401,16 +403,6 @@ func (s *Scheduler) Bind(args extenderv1.ExtenderBindingArgs) (*extenderv1.Exten goto ReleaseNodeLocks } } - /* - err = nodelock.LockNode(args.Node) - if err != nil { - klog.ErrorS(err, "Failed to lock node", "node", args.Node) - res = &extenderv1.ExtenderBindingResult{ - Error: err.Error(), - } - return res, nil - }*/ - //defer util.ReleaseNodeLock(args.Node) tmppatch[util.DeviceBindPhase] = "allocating" tmppatch[util.BindTimeAnnotations] = strconv.FormatInt(time.Now().Unix(), 10) diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index 3e6583e08..7efb8b2cd 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -327,8 +327,8 @@ func Test_Filter(t *testing.T) { Name: "test1", UID: "test1-uid1", Annotations: map[string]string{ - policy.GPUSchedulerPolicyAnnotationKey: policy.GPUSchedulerPolicyBinpack.String(), - policy.NodeSchedulerPolicyAnnotationKey: policy.NodeSchedulerPolicyBinpack.String(), + policy.GPUSchedulerPolicyAnnotationKey: util.GPUSchedulerPolicyBinpack.String(), + policy.NodeSchedulerPolicyAnnotationKey: util.NodeSchedulerPolicyBinpack.String(), }, }, Spec: corev1.PodSpec{ @@ -364,8 +364,8 @@ func Test_Filter(t *testing.T) { Name: "test2", UID: "test2-uid2", Annotations: map[string]string{ - policy.GPUSchedulerPolicyAnnotationKey: policy.GPUSchedulerPolicySpread.String(), - policy.NodeSchedulerPolicyAnnotationKey: policy.NodeSchedulerPolicyBinpack.String(), + policy.GPUSchedulerPolicyAnnotationKey: util.GPUSchedulerPolicySpread.String(), + policy.NodeSchedulerPolicyAnnotationKey: util.NodeSchedulerPolicyBinpack.String(), }, }, Spec: corev1.PodSpec{ @@ -401,8 +401,8 @@ func Test_Filter(t *testing.T) { Name: "test3", UID: "test3-uid3", Annotations: map[string]string{ - policy.GPUSchedulerPolicyAnnotationKey: policy.GPUSchedulerPolicyBinpack.String(), - policy.NodeSchedulerPolicyAnnotationKey: policy.NodeSchedulerPolicySpread.String(), + policy.GPUSchedulerPolicyAnnotationKey: util.GPUSchedulerPolicyBinpack.String(), + policy.NodeSchedulerPolicyAnnotationKey: util.NodeSchedulerPolicySpread.String(), }, }, Spec: corev1.PodSpec{ @@ -438,8 +438,8 @@ func Test_Filter(t *testing.T) { Name: "test4", UID: "test4-uid4", Annotations: map[string]string{ - policy.GPUSchedulerPolicyAnnotationKey: policy.GPUSchedulerPolicySpread.String(), - policy.NodeSchedulerPolicyAnnotationKey: policy.NodeSchedulerPolicySpread.String(), + policy.GPUSchedulerPolicyAnnotationKey: util.GPUSchedulerPolicySpread.String(), + policy.NodeSchedulerPolicyAnnotationKey: util.NodeSchedulerPolicySpread.String(), }, }, Spec: corev1.PodSpec{ diff --git a/pkg/scheduler/score.go b/pkg/scheduler/score.go index 82f035711..f8c736ec3 100644 --- a/pkg/scheduler/score.go +++ b/pkg/scheduler/score.go @@ -200,8 +200,8 @@ func (s *Scheduler) calcScore(nodes *map[string]*NodeUsage, nums util.PodDeviceR // res := make(NodeScoreList, 0, len(*nodes)) for nodeID, node := range *nodes { viewStatus(*node) - score := policy.NodeScore{NodeID: nodeID, Devices: make(util.PodDevices), Score: 0} - score.ComputeScore(node.Devices) + score := policy.NodeScore{NodeID: nodeID, Node: node.Node, Devices: make(util.PodDevices), Score: 0} + score.ComputeDefaultScore(node.Devices) //This loop is for different container request ctrfit := false @@ -231,6 +231,7 @@ func (s *Scheduler) calcScore(nodes *map[string]*NodeUsage, nums util.PodDeviceR if ctrfit { res.NodeList = append(res.NodeList, &score) + score.OverrideScore(node.Devices, userNodePolicy) } } return &res, nil diff --git a/pkg/scheduler/score_test.go b/pkg/scheduler/score_test.go index 1b3ff802a..26647975a 100644 --- a/pkg/scheduler/score_test.go +++ b/pkg/scheduler/score_test.go @@ -51,7 +51,7 @@ func Test_calcScore(t *testing.T) { If you're running `make test`, keep this commented out, as there's another test (pkg/k8sutil/pod_test.go) that may cause a DATA RACE when calling device.InitDevices(). */ - // device.InitDevices() + //device.InitDevices() tests := []struct { name string @@ -77,7 +77,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -137,7 +137,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -172,7 +172,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -232,7 +232,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -267,7 +267,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -343,7 +343,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -378,7 +378,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -454,7 +454,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -489,7 +489,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -565,7 +565,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -607,7 +607,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -683,7 +683,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -725,7 +725,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -748,7 +748,7 @@ func Test_calcScore(t *testing.T) { }, "node2": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -808,7 +808,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -860,7 +860,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -883,7 +883,7 @@ func Test_calcScore(t *testing.T) { }, "node2": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -943,7 +943,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -995,7 +995,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -1062,7 +1062,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", @@ -1106,7 +1106,7 @@ func Test_calcScore(t *testing.T) { nodes: &map[string]*NodeUsage{ "node1": { Devices: policy.DeviceUsageList{ - Policy: policy.GPUSchedulerPolicySpread.String(), + Policy: util.GPUSchedulerPolicySpread.String(), DeviceLists: []*policy.DeviceListsScore{ { Device: &util.DeviceUsage{ @@ -1181,7 +1181,7 @@ func Test_calcScore(t *testing.T) { err error }{ want: &policy.NodeScoreList{ - Policy: policy.NodeSchedulerPolicyBinpack.String(), + Policy: util.NodeSchedulerPolicyBinpack.String(), NodeList: []*policy.NodeScore{ { NodeID: "node1", diff --git a/pkg/util/types.go b/pkg/util/types.go index 6361ddfc4..c13b9f08f 100644 --- a/pkg/util/types.go +++ b/pkg/util/types.go @@ -18,6 +18,7 @@ package util import ( spec "github.com/NVIDIA/k8s-device-plugin/api/config/v1" + corev1 "k8s.io/api/core/v1" ) const ( @@ -148,5 +149,23 @@ type DeviceInfo struct { type NodeInfo struct { ID string + Node *corev1.Node Devices []DeviceInfo } + +type SchedulerPolicyName string + +const ( + // NodeSchedulerPolicyBinpack is node use binpack scheduler policy. + NodeSchedulerPolicyBinpack SchedulerPolicyName = "binpack" + // NodeSchedulerPolicySpread is node use spread scheduler policy. + NodeSchedulerPolicySpread SchedulerPolicyName = "spread" + // GPUSchedulerPolicyBinpack is GPU use binpack scheduler. + GPUSchedulerPolicyBinpack SchedulerPolicyName = "binpack" + // GPUSchedulerPolicySpread is GPU use spread scheduler. + GPUSchedulerPolicySpread SchedulerPolicyName = "spread" +) + +func (s SchedulerPolicyName) String() string { + return string(s) +}