# ModelArts基于最新Atlas 950 SuperPoD的调度方式
#### 专属资源池的能力说明
**调度策略说明**
ModelArts调度器支持四种作业排队调度策略，适用于不同的资源管理和业务场景。策略在资源池级别配置，影响该资源池内所有作业的调度顺序和行为。
**1 FIFO（先入先出）**
策略说明：作业按优先级和创建时间排序，从队首开始依次调度，当前申请资源被锁时，作业无法成功调度。当某个作业因资源不足调度失败时，**对当前作业申请资源进行加锁**，继续尝试下一个作业。
适用场景：
- 资源紧张、优先级严格的场景，确保高优先级作业优先获得资源，低优先级作业不会"插队"占用本应属于前方作业的资源。
- 独占型资源池：资源池容量有限，希望作业严格按顺序排队。
图1FIFO调度策略   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002719910045.png "点击放大")
**2 遍历调度**
策略说明：作业按优先级和创建时间排序，依次调度。当某个作业因资源不足调度失败时，**跳过该作业，继续尝试调度后续作业**，直到遍历完整个队列。
适用场景：
- **资源碎片化场景**：队列中作业资源需求差异较大，前方大作业失败不应阻塞后方小作业。
- **资源利用率优先**：希望尽可能多地调度作业，最大化资源利用率。
图2遍历调度策略   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002719910115.png "点击放大")
**3 阶梯轮询调度**
策略说明：在FIFO基础上引入超时机制：作业调度失败后，在超时时间内对资源加锁，阻塞后续作业（行为同FIFO）；**超时后不再对资源加锁，自动放行后续作业**，扩大可调度范围，避免前方作业长期占用队列导致资源闲置。
适用场景：
- 兼顾顺序和利用率：既希望保持一定的排队顺序，又不想因前方作业长期等待导致资源浪费。
- 资源弹性释放场景：前方作业等待的资源可能在短时间内释放（如其他作业完成），超时前保持等待；超时后允许后方作业先使用。
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002719910701.png "点击放大")
**4 分级调度**
策略说明：按作业优先级划分为两个层级，每个层级独立调度，优先级为1和2的作业使用遍历调度策略，优先级为3的作业使用阶梯轮询调度策略。**优先级为3的作业全部调度完成后，才会调度优先级1和2的作业**。
适用场景：
- 多租户/多业务场景：不同业务线有不同优先级，需确保高优先级业务优先获得资源。
- 混合调度需求：不同优先级层级需要不同的调度行为（如高优先级严格排队、低优先级允许插队）。
 
#### ModelArts训练调度方式
资源池中的volcano调度器根据节点的物理网络拓扑关系，构建了一张集群网络拓扑，并用新的CRD-HyperNode用于统一描述集群网络拓扑。
图3集群网络拓扑   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002632801546.png)
每个HyperNode代表一个网络性能域，节点间的通信效率取决于它们之间的HyperNode层级跨度。
- **node0** 和**node1**属于HyperNode0（tier 1），通信效率最高。
- **node0** 和**node2**属于HyperNode4（tier 2），通信效率较低。
- **node0** 和**node4**属于HyperNode6（tier 3），通信效率最差。
A5网络整体可分为参数面、L2超平面、L1超平面三种网络。
- L1超平面对应tier 1层级的HyperNode，该层级内的节点都在同一机柜中（Slice）且节点之间可通过L1超平面通信。
- L2超平面对应tier 2层级的HyperNode，该层级内的节点在同一超平面网络中（HyperinstanceGroup）。
- 参数面对应tier 3层级的HyperNode，该层级内的节点在同一参数面网络中（Cluster）。
A5的节点网络拓扑如下所示：
图4A5节点拓扑结构   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002632961444.png "点击放大")
在A5场景，ModelArts训练作业会将Job划分为多个Group，并在调度之前设置Job的网络层级约束和Group的网络层级约束。网络层级约束的含义是Job和Group内部的所有实例必须部署在同一个HyperNode内（所有节点的最小公共祖先HyperNode），且该HyperNode的层级不超过指定层级。例如Job的网络层级约束设置为tier 2，group的网络层级约束设置为tier 1，这表示Job的所有节点必须在同一个HyperinstanceGroup中，Group的所有节点必须在同一Slice中。
图5A5 Job层级   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002663120641.png "点击放大")
预期调度结果如[图6]所示。
图6预期调度结果   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002632961442.png "点击放大")
不可能发生的调度结果如[图7]所示。
图7不可能发生的调度   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002663200691.png "点击放大")
#### ModelArts推理调度方式
推理任务调度的核心逻辑由KubeInfer完成，KubeInfer是由ModelArts推理平台自研的Operator。其采用两层CRD结构，底层CRD兼容LeaderWorkerSet（LWS）开源规范：
```
Kube-Infer (顶层 CRD) 
├── Instance 0 (实例副本) 
│   ├── Role 0 (角色) → LWS 
│   │   ├Group 0 (角色副本)
│   │   ├── Pod (Rank 0) 
│   │   └── Pod (Rank 1) 
│   └── Role 1 (角色) 
│        ├Group 1 (角色副本)
│        ├── Pod (Rank 0) 
│        └── Pod (Rank 1) 
├── Instance 1 (实例副本) 
└── Instance 2 (实例副本)
```
**核心概念**：
| 概念          | 描述                                    |
|:---|:---|
| **Instance** | 实例副本，一个服务对应一个KubeInfer，可包含多个完全相同的实例副本。 |
| **Role**    | 角色，实例内存在的完全独立的角色，每个角色允许存在多个副本。         |
| **Group**     | 角色副本，用于标识同一角色内的不同推理副本。                 |
| **Rank**   | 推理rank，用于标识同一副本内的不同Pod。             |
   
整体结构如下图所示：
图8调度架构   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002633288756.png "点击放大")
其核心调度目标包括：
1、面向A5集群的拓扑感知调度：实现角色副本的拓扑感知调度，确保同组Pod调度到同一A5物理超节点内。
2、Gang调度：将分布式推理任务（包含多个Role）作为原子单元进行Gang Scheduling。
调度规则：
1. Instance作为基本的调度单位，为每个Instance创建一个PodGroup，支持PodGroup级的网络拓扑亲和配置，调度时可保证Instance内所有的pod亲和到指定的网络性能域。
2. Instance内的单元支持分组调度，PodGroup通过SubGroupPolicy可分成多个subGroup，每个subgroup配置独立亲和性调度策略。
   - 单元内按Group分组，如decode-1，decode-2，...，支持按Group配置网络拓扑亲和配置，调度时可保证Group内所有的pod亲和到指定的网络性能域。
   
   - 支持SubGroup级的组调度（Gang）原则，即当一个分组内所有Pod均满足调度条件时，本分组才允许被调度，支持最小调度配置。
    
图9调度拓扑   
![](https://support.huaweicloud.com/resmgmt-modelarts/figure/zh-cn_image_0000002663450407.png "点击放大")
![](https://support.huaweicloud.com/resmgmt-modelarts/public_sys-resources/note_3.0-zh-cn.png)
1. 由于部署形态的多样性，role和每个role下的最少启动副本数均有要求，subgroup遵循的Gang调度原则按照角色副本数的最小启动数配置。
2. 由于A5集群中存在柜、超节点等多个层级的性能域，在典型的推理P、D分离部署形态下，如果每个P、D所需的节点数大于1个时，建议每个P、D实例的多个Pod应尽可能调度在最优的性能域内，在资源充足时尽量调度到一个柜内，以避免跨柜部署引入的带宽和时延损耗，提升推理性能。
 
