调度
英博云支持不同类型的资源调度和任务调度,可提升应用的性能和集群整体资源的利用率。
Gang调度
Gang 调度 是一种典型的 “All-or-Nothing” 式并发调度策略,被广泛应用于 AI 训练、HPC 批处理等对同步启动要求极高的任务场景。其核心原则是:要么所有任务(Pod/进程)一起调度成功,要么一个都不调度。
All-or-Nothing 调度保障:保证任务组中所有关键子任务必须同时具备运行条件,避免“部分启动、部分等待”带来的资源浪费与死锁风险。
资源利用率提升:杜绝因部分 Pod 先调度失败导致资源长期占用,避免碎片化资源浪费,提升整体集群吞吐能力。
适用于分布式并行场景:天然契合大模型训练、MPI 作业、NCCL 通信、GPU 并行计算等“必须同时启动”的任务模型。
示例Yaml如下:
apiVersion: kubeflow.org/v1
kind: MPIJob
metadata:
name: nccl-test-16
annotations:
eks.ebcloud.com/gang-min-member: "3" # 开启gang调度,gang-min-member= spec中replicas加和
优先级调度与抢占
优先级表示一个作业相对于其他作业的重要性,启用该能力后,调度器将优先保障高优先级业务调度。集群资源不足时,调度器主动驱逐低优先级业务,保障高优先级业务可以正常调度。
保障关键任务优先运行:高优先级任务可在资源紧张时抢占低优任务资源,确保核心业务、紧急作业优先执行。
提升资源利用率与整体吞吐:抢占机制使得资源可回收、可复用,避免因低优任务长期占用导致“假满”现象。
构建灵活的服务等级保障体系:不同用户/项目/任务可根据优先级策略获得差异化服务,实现资源公平与策略调控并存。
示例Yaml如下:
apiVersion: kubeflow.org/v1
kind: MPIJob
metadata:
name: nccl-16
annotations:
eks.ebcloud.com/enable-spot: "true" # 开启优先级调度,true:优先级为P2等级,可以被抢占;false:优先级为P1等级,可以抢占P2的任务