网络拓扑感知调度概述
概述
随着各种AI大模型的快速兴起和广泛应用,分布式AI训练/推理作业(包括数据并行、张量并行、流水线并行、专家并行、PD分离等多种模式)逐渐成为算力基础设施的核心工作负载。通常,这些作业的子任务会在多个算力节点上运行,而整个计算过程高度依赖于各子任务间的数据交换,如梯度汇聚和模型分发。此时,节点间的网络传输性能往往成为瓶颈,显著影响整体计算效率。这一问题的核心原因在于数据中心网络拓扑的复杂性(通常由多层交换机构成的层级架构)和多样性(包括IB、RoCE、NVSwitch等)。跨层级交换机的通信路径越长,延迟越高,吞吐量越低;反之,通信性能越好。因此,将通信关联性强的计算任务(如模型并行的各分片、数据并行的副本组)调度至同一高性能域(即通信链路最短、带宽最优的网络区域),可以有效降低通信成本,加快数据交换,从而显著提升分布式AI训练/推理作业的整体计算效率。
为此,Volcano提出了网络拓扑感知调度(Network Topology Aware Scheduling)能力,即通过在调度时感知集群的网络拓扑结构,将通信关系紧密的一组实例调度至同一网络性能域,有效解决了数据中心中分布式AI训练/推理作业的网络通信性能问题。
多级网络拓扑
为了统一描述集群的多层级网络拓扑结构,屏蔽网络类型差异,并为调度器等上层组件提供标准化的API接口,Volcano引入了一种新的CRD,即HyperNode。如图所示,每个HyperNode代表一个网络拓扑性能域,通常可以映射到一个交换机或Top-of-Rack(Tor);多个HyperNode可以通过层级连接,形成多级树状结构,从而精确表达真实数据中心的复杂网络拓扑结构。

此外,Volcano还提供了HyperNode自动发现机制。通过该机制,Volcano能够自动感知集群内的网络拓扑结构,并根据感知结果自动创建、更新或删除HyperNode,从而确保HyperNode与实际网络状态的实时一致性,同时有效减轻网络拓扑信息的管理负担。
多维作业分组
在大规模AI训练/推理场景中,一个作业可能包含多个分片,每个分片又包含多个计算任务。与分片之间的通信相比,每个分片内部的网络通信性能要求更高,例如在Prefill Role和Decode Role中,角色内部的任务通信需求比角色间任务更为频繁。因此,仅在作业级别进行网络拓扑亲和调度是不够的,这不能确保分片的任务被部署在相同的网络性能域内,可能导致分片跨网络性能域部署,从而影响通信效率。
为此,Volcano在Volcano Job中引入了partitionPolicy字段,包括totalPartitions、partitionSize等配置项,用于描述和感知作业的多维分组情况。Volcano调度器将基于这些配置进行作业级和分组级的亲和调度,以尽可能将通信紧密的任务调度到同一高网络性能域,提高通信效率。
多级网络拓扑调度
感知集群的多级网络拓扑结构,将通信性能要求高的工作负载统一调度至同一HyperNode,以解决网络通信性能问题。详情请参见多级网络拓扑调度。
多维多级网络拓扑调度
在多级网络拓扑调度能力之上,引入多维分组机制,可进一步将工作负载划分为多个组,每个组可独立调度至同一HyperNode,实现细粒度的拓扑亲和性调度。该能力显著提升调度灵活性,详情请参见多维多级网络拓扑调度。
多级网络拓扑装箱调度
在感知各HyperNode网络拓扑性能域的基础上,优先将工作负载调度至资源分配率高的HyperNode上,以解决HyperNode级资源碎片化问题。详情请参见多级网络拓扑装箱调度。
多维组(Gang)调度
提供Pod级、分组级和分组Pod级的三维Gang调度,以避免资源竞争导致的死锁和资源浪费。详情请参见多维组调度(Gang)。
分组Pod故障迁移
当节点宕机或网络分区等故障发生时,系统支持整组Pod的迁移,以持续满足分组的网络拓扑亲和性要求,迅速恢复作业运行。详情请参见分组Pod故障迁移。
超节点网络拓扑感知调度
在大规模AI训练和推理场景中,CCE服务支持接入超节点算力作为容器节点,以加速AI计算任务的运行。您可以使用Volcano Job方式,对相关任务进行统一调度和管理,详情请参见超节点拓扑亲和调度。
