4. Infiniband网络拓扑:常见拓扑结构(Fat-Tree、Torus等)及其优缺点
4.1 核心原理:拓扑如何决定集群的“交通规则”
在Infiniband网络中,拓扑结构决定了计算节点(服务器)、交换机(Switch)和存储系统之间的物理连接方式,进而影响数据流动的路径、带宽利用率、延迟特性以及故障隔离能力。与以太网常见的“无脑”树形或网状结构不同,Infiniband最初为高性能计算(HPC)和AI训练集群设计,其拓扑必须满足两个核心诉求:高双向带宽和低拥塞延迟。
理解拓扑的关键在于三个概念:度(Degree)——每个交换机端口数;对分带宽(Bisection Bandwidth)——将网络切成两半时,跨切面链路的总带宽;路径多样性——任意两点间可用的等价路径数量。Fat-Tree和Torus正是围绕这三个指标做出的不同设计取舍。
核心指标速查
- 对分带宽:衡量网络最坏情况下的吞吐能力,Fat-Tree通常可做到无阻塞(1:1),Torus则随维度增加而提升。
- 路径多样性:Fat-Tree有多条等价路径(ECMP),Torus有环形路径但非等价。
- 扩展成本:Fat-Tree交换机数量随端口数平方增长,Torus交换机数量线性增长。
4.2 方法流程:如何选择与设计拓扑
实际部署中,拓扑选择并非“越贵越好”,而是根据应用通信模式、集群规模和预算综合决策。以下为典型的设计流程:
- 分析通信特征:检查应用是否属于“全对全”(All-to-All)通信(如深度学习数据并行),还是“邻近通信”(如网格计算)。全对全需要高对分带宽,邻近通信则对局部带宽更敏感。
- 确定规模与端口数:假设有N个计算节点,每个节点1个HCA端口。若选用Fat-Tree,需要确定交换机端口数P,则层数L = logP/2(N),总交换机数 ≈ N × L。若选用Torus,维度D决定每个节点需要的交换机端口数(2D需4端口,3D需6端口)。
- 计算对分带宽需求:AI训练集群通常要求对分带宽不低于聚合带宽的50%,否则会出现通信瓶颈。Fat-Tree可轻松达到100%,而2D Torus在规模较大时可能降至20%以下。
- 评估路由与容错:Fat-Tree配合自适应路由(如AR)可在链路故障时快速切换;Torus则需要更复杂的路由算法(如Dimension Order Routing)避免死锁。
- 模拟验证:使用NVIDIA UFM或开源工具(如BookSim)进行流量模拟,观察热点和延迟分布。
经验法则:对于不超过2000节点的AI训练集群,推荐使用两层或三层Fat-Tree;对于超大规模(>10000节点)且对成本敏感的HPC集群,可考虑3D Torus或Dragonfly+混合拓扑。
4.3 案例/场景:真实集群的拓扑选择
案例1:NVIDIA DGX SuperPOD(AI训练)
DGX SuperPOD采用两层Fat-Tree(叶脊架构),每个DGX A100/H100节点配备8个HCA端口,分别连接到不同的Leaf交换机。脊层交换机数量与叶层相同,确保任意两个节点间的通信最多经过3跳,且对分带宽达到1:1。这种设计使得大规模Transformer模型训练时的All-Reduce通信延迟稳定在微秒级。
案例2:Frontier超算(科学计算)
Frontier(目前TOP500排名前列)采用HPE Slingshot互连,其拓扑为Dragonfly(蜻蜓)的变体,而非传统Torus。但在早期Cray XT系列(如Jaguar)中,3D Torus是主流选择。Torus的优势在于:每个交换机仅需6个端口(3D),成本极低,且对于网格类科学计算(如分子动力学)的邻近通信效率极高。
案例3:中小型GPU集群(8~64节点)
对于单机8卡、4~8台服务器的场景,通常直接使用单层Fat-Tree(即一个核心交换机连接所有节点),无需脊层。此时拓扑退化为星型,但通过Infiniband的拥塞控制机制仍能保证良好性能。
| 拓扑类型 | 典型规模 | 对分带宽 | 成本指数 | 适用场景 |
|---|---|---|---|---|
| 单层Fat-Tree(星型) | ≤64节点 | 100% | 低 | 小规模GPU集群 |
| 两层Fat-Tree | 64~2000节点 | 100% | 中高 | AI训练、HPC |
| 3D Torus | 1000~10000+ | 30%~60% | 低 | 大规模科学计算 |
| Dragonfly+ | 10000+ | 50%~80% | 中 | 超大规模HPC |
4.4 误区/复盘:常见设计陷阱
误区1:盲目追求“无阻塞”
很多工程师认为Fat-Tree必须做到1:1无阻塞才算合格。实际上,对于某些通信模式(如参数服务器架构),少量阻塞(如2:1收敛比)对整体性能影响不足5%,却能节省近40%的交换机成本。建议先做应用画像,再决定收敛比。
误区2:忽略Torus的“边缘效应”
在Torus中,虽然逻辑上存在环绕链路,但物理线缆长度差异会导致延迟不均。例如,跨越机柜的环绕链路可能比相邻链路多出数十米光纤,引入额外延迟。设计时应尽量将频繁通信的节点放置在物理相邻位置,并利用子网管理器(Subnet Manager)的路径计算功能优化路由。
误区3:混淆“端口数”与“节点数”
规划Fat-Tree时,必须区分交换机端口总数和可用端口数。例如,一台36端口的EDR交换机,若用于两层Fat-Tree的脊层,则每个脊交换机需要连接所有叶交换机,实际可用端口数会减少。常见错误是直接按“节点数/交换机端口数”估算交换机数量,导致端口不足。
复盘建议:在部署前使用NVIDIA UFM或ibdiagnet工具进行拓扑验证,检查是否存在非对称链路或过度订阅。同时,务必在子网管理器(OpenSM)中启用自适应路由(AR)和基于延迟的路径选择,以充分发挥Fat-Tree的多路径优势。对于Torus,则需确认路由算法是否支持容错(如启用LASH或DFSSSP),避免单点故障导致整个环断开。