调度器的调度流程主要包括任务校验、节点预选、节点优选、昇腾AI处理器选择、提交分配结果。Volcano的亲和性调度代码实现请参考ascend-for-volcano开源代码仓,用户可参考代码在其调度器中集成亲和性调度策略。下文以Atlas 训练系列产品的昇腾AI处理器为例,介绍Volcano的调度流程。
图1 Volcano调度流程
流程说明
- 任务校验:校验单机、分布式任务请求的昇腾AI处理器数目。
- 节点预选:判断节点NPU数量是否满足任务。
- 节点优选:根据亲和性策略对预选后的节点进行打分。
- 昇腾AI处理器选择:在最优的节点选取昇腾AI处理器。
- 提交分配结果:Volcano框架将分配结果提交给Kubernetes。