
# AI负载调度
本文主要介绍Volcano调度器在AI负载调度方面的关键功能，包括弹性调度、任务调度、异构资源调度和任务队列调度。Volcano调度器提供高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力，旨在提升AI负载的调度效率和运行性能。
#### 弹性调度
Volcano为应用的扩缩容提供优先级调度能力。
表1弹性调度 
| 功能                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|
| [应用扩缩容优先级策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0746.html) | 通过应用扩缩容优先级策略，您可以精确控制Pod在不同类型节点上的扩容与缩容顺序，从而实现资源管理的最优化。应用扩缩容优先级策略共包括两个方面： - 扩容：对某工作负载进行扩容时，Volcano调度器将根据节点优先级对调度新建的Pod。  - 缩容：对某工作负载进行缩容时，Volcano调度器根据节点优先级对该工作负载中的Pod进行打分，并根据分值决定Pod删除顺序。   例如，默认情况下，包周期节点的优先级高于按需计费的节点。在扩容时，Pod将被优先调度到包周期的节点，其次被调度到按需计费的节点。在缩容过程中，系统将优先删除按需计费节点上满足条件的Pod，其次删除包周期节点上满足条件的Pod。 |
   
#### 任务调度
Volcano调度器为批量计算的任务提供了公平调度（DRF）和组调度（Gang）的能力。
表2任务调度 
| 功能                                                                           | 描述                                                                                                                                                                                                                                          |
|:---|:---|
| [公平调度（DRF）](https://support.huaweicloud.com/usermanual-cce/cce_10_0777.html) | Volcano调度器支持公平调度（DRF），该功能基于最大最小化公平分配算法（max-min fairness share），旨在确保多用户环境下资源的公平分配。DRF通过为每个用户计算其主导资源（如CPU、内存、存储等）和资源占用比例，从而在调度时尽量保证每个用户根据其需求获得公平的资源份额。 该能力常应用于大批量提交AI训练和大数据作业的场景，可增强集群业务的吞吐量，整体缩短业务执行时间，提高训练性能。 |
| [组调度（Gang）](https://support.huaweicloud.com/usermanual-cce/cce_10_0778.html) | Volcano调度器支持组调度（Gang），满足调度过程中"All or nothing"的调度需求，从而避免Pod的任意调度导致集群资源的浪费。其核心思想为检查Job下的Pod已调度数量是否满足了最小运行数量，当Job的最小运行数量得到满足时，为Job下的所有Pod执行调度动作，否则不执行。 该能力启用后，可以优先解决分布式训练任务之间的资源忙等待和死锁等痛点问题，大幅度提升整体训练性能。         |
   
#### 异构资源调度
Volcano调度器为CPU、GPU、NPU等异构资源提供了GPU共享调度、NUMA拓扑感知调度、NPU拓扑调度等能力。
表3异构资源调度 
| 功能                                                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|
| [GPU虚拟化调度](https://support.huaweicloud.com/usermanual-cce/cce_10_0645.html#cce_10_0645__section3120194116189) | Volcano调度器支持在GPU节点上实现GPU虚拟化调度和隔离能力，并提供两种调度策略用于GPU虚拟化负载的管理： - **Spread**：在GPU节点配置相同的情况下，优先选择运行容器数量最少的节点，从而实现GPU虚拟化负载的均匀分配。  - **Binpack**：尽可能将GPU虚拟化负载调度到同一节点，以减少节点使用数量，避免资源碎片化。   |
| [NUMA亲和性调度](https://support.huaweicloud.com/usermanual-cce/cce_10_0425.html)                                  | Volcano调度器支持NUMA亲和性调度能力，该功能优先将Pod调度至跨NUMA节点访问最少的工作节点，从而有减少数据传输开销，优化资源利用率，并提升系统整体性能。                                                                                                                                                                                                                                                                                   |
| [节点内NPU拓扑亲和调度](https://support.huaweicloud.com/usermanual-cce/cce_10_0980.html)                               | Volcano调度器支持节点内NPU拓扑感知调度，该功能是一种基于昇腾AI处理器硬件拓扑特性的智能资源管理技术，通过优化资源分配和网络路径选择，有效减少计算资源碎片和网络拥塞，最大化提升NPU算力利用率。该技术可显著提升AI训练和推理任务的执行效率，实现昇腾计算资源的高效调度与管理。                                                                                                                                                                                                                        |
| [超节点拓扑亲和调度](https://support.huaweicloud.com/usermanual-cce/cce_10_0982.html)                                  | Volcano调度器支持使用超节点拓扑亲和调度能力。超节点由48个节点组成，其内部NPU采用特定网络连接方式形成一种超平面网络，可以提供更快的网络传输速率。超节点拓扑亲和调度可以将关联度高的Pod调度至同一超节点内，从而有效减少跨节点通信，降低网络延迟，并提高数据传输速度。                                                                                                                                                                                                                             |
   
#### 任务队列调度
Volcano调度器为AI任务和批量计算任务提供任务队列调度能力。
表4任务队列调度 
| 功能                                                                                    | 描述                                                                                                                                                      |
|:---|:---|
| [队列资源管理调度（Capacity）](https://support.huaweicloud.com/usermanual-cce/cce_10_0991.html) | 队列是Volcano的核心概念之一，用于支持多租户场景下的资源分配与任务调度。通过队列，用户可以实现多租户资源分配、任务优先级控制、资源抢占与回收等功能，显著提升集群的资源利用率和任务调度效率。                                                       |
| [层级队列](https://support.huaweicloud.com/usermanual-cce/cce_10_0992.html)               | 在实际应用中，不同队列往往隶属于不同部门，部门之间存在层级关系，传统平级队列的资源管理无法满足实际需要。为此，Volcano调度器引入层级队列，通过将队列按层级结构组织，实现不同层级间的资源分配、共享与抢占。通过这一功能，用户可以在层级队列的基础上实现更细粒度的资源配额管理，构建更高效的统一调度平台。 |
   
