方案介绍
为了解决Spine+Leaf网络架构下,Spine交换机下行流量冲突问题,MindX DL为用户提供了两个版本的交换机亲和性调度。基于节点的交换机亲和性,即一个Leaf交换机下有多个节点,系统会根据配置的交换机亲和性规则,选择最合适的节点分配给训练任务。
- 交换机亲和性调度 1.0
- 交换机亲和性调度 2.0
采用Volcano+iMaster NCE-Fabric的方案,通过iMaster NCE-Fabric来动态计算训练任务通信时的网络通路,不再使用调度器来解决Spine交换机下行流量冲突。同时支持一个交换机下的节点可以被多个跨交换机的任务使用,提高集群的资源利用率。
交换机亲和性调度1.0流程图
交换机亲和性调度1.0的调度逻辑请参见图1。
步骤说明如下:
- Volcano读取basic-tor-node-cm文件获取集群的拓扑信息,为调度任务做准备。
- 用户从深度学习平台或命令行下发训练任务。
- Volcano根据从basic-tor-node-cm中获取的信息,将任务Pod调度到合适的计算节点上;并在任务Pod的annotation中写入该Pod调度时当前节点的交换机状态。
交换机亲和性调度2.0流程图
交换机亲和性调度2.0的调度逻辑请参见图2。
步骤说明如下:
- Volcano读取basic-tor-node-cm文件获取集群的拓扑信息;Volcano读取集群中所有任务Pod上的annotation来获取集群中每个交换机状态,为调度任务做准备。
- 用户从深度学习平台或命令行下发训练任务。
- Volcano根据从basic-tor-node-cm中获取的信息,将任务Pod调度到合适的计算节点上;并在任务Pod的annotation中写入该Pod调度时当前节点的交换机状态。
- Volcano将任务信息写到nslb2-<JobName> ConfigMap中。
- iMaster NCE-Fabric通过nslb2-<JobName> ConfigMap文件读取任务的信息,动态计算训练任务通信时的网络通路。
任务说明
交换机亲和性调度针对不同的任务类型,选择不同的调度策略。任务类型是下发训练任务yaml中的tor-affinity字段取值,不同任务类型对任务的副本数要求不同。具体说明如下:
任务类型 |
任务标签 |
任务副本数 |
|---|---|---|
普通任务 |
normal-schema |
不限 |
大模型任务 |
large-model-schema |
大于或等于4 |
填充任务 |
large-model-schema |
小于4 |
父主题: 基于节点的亲和性

