4、InfiniBand网络拓扑设计:Fat-Tree、Torus、Dragonfly等拓扑结构原理与选型
InfiniBand(IB)网络拓扑是数据中心高性能计算(HPC)与AI训练集群的“骨架”,它直接决定了通信延迟、聚合带宽、故障域范围以及布线成本。在IB网络中,拓扑结构不仅影响物理连接方式,更与路由算法、拥塞控制机制(如ECMP、自适应路由)和可扩展性紧密耦合。本章将深入剖析Fat-Tree、Torus、Dragonfly三类主流拓扑的数学原理、工程适用场景及选型决策路径,帮助读者在“性能-成本-复杂度”三角约束下做出合理设计。
上图从工程视角对比了三种拓扑的核心特征。Fat-Tree通过多级交换结构实现无阻塞通信,Torus以规则网格换取布线简洁,Dragonfly则通过分组互联大幅压缩网络直径。下面我们将逐一拆解其原理与选型要点。
4.1 Fat-Tree(Clos)拓扑:无阻塞通信的黄金标准
4.1.1 核心原理:数学上的无阻塞证明
Fat-Tree拓扑源于电话交换网络的Clos架构,其核心思想是:通过多级交换结构,使得任意两个端点之间始终存在一条不经过第三点竞争的路径。在IB网络中,典型实现为“核心-汇聚-接入”三级结构。假设使用K端口交换机,构建K元Fat-Tree(即K-ary Fat-Tree),其数学特征如下:
- 交换机数量:核心层 (K/2)² 台,汇聚层 K×K/2 台,接入层 K×K/2 台,总计约 1.25K² 台。
- 最大节点数:K³/4 个计算节点(如K=36,可支持 11,664 个节点)。
- 收敛比:若所有上行链路与下行链路数量相等,则收敛比为1:1,即全无阻塞(Full Bisection Bandwidth)。
这种结构的优势在于容错性:任何单条链路或单台交换机故障,仅需通过路由算法(如IB的LID Mask Control或自适应路由)重新选择路径,对上层应用几乎透明。但代价是线缆数量呈指数级增长——一个36端口交换机组成的Fat-Tree需要约 1,944 条线缆,其中大部分为光纤或高速铜缆。
聚合带宽 / 总节点数 ≥ 1:1,且预算允许使用40%以上端口用于上行互联。
4.1.2 案例拆解:某AI训练集群的Fat-Tree设计
背景与约束:某互联网公司需构建 1,024 张A100 GPU的AI训练集群,用于千亿参数大模型预训练。业务要求:AllReduce通信时延 < 10μs,聚合带宽 ≥ 2.0 TB/s。预算限制:网络设备成本占比不超过总硬件成本的15%。
关键输入参数:采用 NVIDIA Quantum QM8790 交换机(40端口 HDR 200Gb/s)。计算节点配置:每节点8卡,需 128 个计算节点。
分析过程:
- 计算所需端口:128节点 × 1端口/节点 = 128 个接入端口。
- 选择K值:K=16 的Fat-Tree可支持 16³/4 = 1,024 节点,满足需求。
- 验证收敛比:核心层需 (16/2)² = 64 台交换机,汇聚层 16×8=128 台,接入层 128 台。总上行带宽 = 64×16×200Gb/s = 204.8 Tb/s,总下行带宽 = 128×16×200Gb/s = 409.6 Tb/s,收敛比 1:2(非严格无阻塞)。
- 优化:将核心层交换机升级为 40端口,汇聚层每台使用 20 个上行端口,则收敛比提升至 1:1。
实施与结果:最终采用 40端口核心交换机 64 台,汇聚层 128 台(每台20上行+20下行),接入层 128 台。实测AllReduce带宽达到 1.9 TB/s,平均时延 8.5μs,满足要求。但线缆数量达 5,120 条,布线成本占总成本 12%。
4.2 Torus拓扑:规则网格的极致扩展
4.2.1 核心原理:维度与环绕
Torus拓扑将计算节点排列在N维网格中,并在每个维度末端进行环绕连接。以3D Torus为例,每个节点连接6个邻居(X±、Y±、Z±),形成环形结构。其数学特性:
- 网络直径:N维Torus的直径为 N×⌊K/2⌋(K为每维节点数),3D Torus典型直径为 3×⌊K/2⌋。
- 对分带宽:与维度数和每维节点数相关,3D Torus的对分带宽约为 2×K²×链路带宽。
- 扩展性:节点数 = K^N,理论上可无限扩展。
Torus的最大优势是布线规则——所有链路长度相等,适合机柜内/机柜间结构化布线。但缺点是跳数随规模增长:一个 16×16×16 的3D Torus(4,096节点),最远跳数达 24 跳,延迟显著高于Fat-Tree。此外,Torus对路由算法要求高,需支持维度顺序路由(Dimension-Order Routing)以避免死锁。
4.2.2 实战场景:超算中心的Torus应用
日本“富岳”(Fugaku)超算采用6D Torus拓扑(实际为Tofu Interconnect D),连接 158,976 个节点。其设计考量:
| 维度 | 每维节点数 | 链路带宽 | 网络直径 |
|---|---|---|---|
| X | 32 | 25 GB/s | 约 12 跳 |
| Y | 32 | 25 GB/s | |
| Z | 24 | 25 GB/s |
富岳选择Torus而非Fat-Tree的原因:① 超大规模下Fat-Tree线缆成本不可接受;② 应用以气象模拟、分子动力学为主,通信模式多为近邻通信,Torus的局部性优势明显;③ 定制路由芯片支持自适应路由,缓解了长跳延迟问题。
4.3 Dragonfly拓扑:低直径与高扩展的平衡
4.3.1 核心原理:分组互联与全局稀疏
Dragonfly拓扑将网络分为两层:组内全连接(Group)和组间稀疏连接(Global)。每个组包含若干交换机,组内任意两台交换机之间都有直连链路;组间则通过少量“全局链路”连接。其关键参数:
- 网络直径:固定为 3 跳(源组内 → 源组间 → 目的组间 → 目的组内),与规模无关。
- 交换机端口分配:每个端口分为本地端口(连接计算节点)、组内端口(连接组内交换机)、全局端口(连接其他组)。
- 扩展性:若每组有P台交换机,每台交换机有G个全局端口,则最大组数 = P×G+1,总节点数可达 (P×G+1)×P×端口数。
Dragonfly的核心优势是极低的网络直径——无论集群多大,任意两点间最多3跳。这使其非常适合对延迟极度敏感的全局同步应用。但代价是路由复杂度极高:需要全局路由表,且组间链路可能成为拥塞点,必须依赖自适应路由和流量调度。
4.3.2 案例拆解:百亿亿次超算的Dragonfly实践
背景:美国Aurora超算(Intel/Argonne)采用Dragonfly拓扑,连接 10,624 个计算节点。设计目标:在 60,000+ 节点规模下保持平均延迟 < 2μs。
关键参数:每组 16 台交换机(每台 64 端口),组内全连接需 15 个端口,全局端口 16 个,本地端口 32 个。最大组数 = 16×16+1 = 257 组,总节点数 = 257×16×32 = 131,584。
实施要点:
- 全局链路采用光模块(100Gb/s),组内链路使用铜缆以降低成本。
- 路由算法采用“最小路由+自适应路由”混合:优先走最短路径,若检测到拥塞则绕行。
- 针对AllReduce通信,设计了专门的集合通信调度器,避免组间链路热点。
结果对比:实测网络平均延迟 1.8μs,对分带宽达到 2.5 PB/s。但运维复杂度显著高于Fat-Tree——需要专门的网络监控系统跟踪全局链路利用率。
4.4 拓扑选型决策框架与总结
在实际项目中,拓扑选型需综合以下维度进行决策:
| 评估维度 | Fat-Tree | Torus | Dragonfly |
|---|---|---|---|
| 最大规模 | ~4K节点 | ~100K节点 | ~200K节点 |
| 网络直径 | 固定4跳 | 随规模增长 | 固定3跳 |
| 对分带宽 | 可设计为1:1 | 约50% | 约60-70% |
| 布线成本 | 高(线缆多) | 低(规则) | 中(组内密集+组间稀疏) |
| 路由复杂度 | 低(静态路由) | 中(维度顺序) | 高(全局自适应) |
| 典型应用 | AI训练、中小HPC | 超大规模科学计算 | 百亿亿次超算 |
决策流程建议:
- 第一步:明确节点规模与通信模式(All-to-All vs 近邻通信)。
- 第二步:计算所需聚合带宽,确定收敛比要求。
- 第三步:评估布线成本与运维能力——Fat-Tree最易运维,Dragonfly最难。
- 第四步:进行模拟验证(如使用NS-3或IB模拟器),对比不同拓扑在目标工作负载下的延迟与吞吐。