ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

057、InfiniBand网络拓扑:Fat-Tree与Dragonfly

057、InfiniBand网络拓扑:Fat-Tree与Dragonfly

057、InfiniBand网络拓扑:Fat-Tree与Dragonfly

一、从一次集群“断连”事故说起

去年夏天,我们团队在部署一套128节点IB网络时,遇到了一个诡异的丢包问题。所有节点都能ping通,但MPI Allreduce操作在特定通信模式下会随机超时。折腾了两天,最后发现是Fat-Tree拓扑中某个leaf交换机的上行链路配置错误——一个端口被意外设置成了静态速率,导致跨pod通信时流量在某个中间交换机上发生了拥塞。

这个教训让我意识到:IB网络拓扑不是画个图就完事的,它直接决定了你的应用能跑到什么程度。今天我们就来聊聊InfiniBand最主流的两种拓扑结构:Fat-Tree和Dragonfly,以及它们在实际工程中的坑。

二、Fat-Tree:教科书里的“完美”拓扑

2.1 为什么叫“胖树”?

传统树形拓扑有个致命问题:越往上走,带宽越窄。比如叶子层每个节点有100Gbps,到了根节点可能只剩10Gbps。Fat-Tree反其道而行之——越往上,链路越“胖”。每个上行链路的带宽等于所有下行链路的总和,这样任何两个节点之间都能获得全带宽通信。

实际部署中,我们通常用“k-ary n-tree”来建模。k是每个交换机的端口数,n是树的层数。一个典型的3层Fat-Tree(k=36)可以连接36^3/4=11664个节点。注意这个公式:总节点数 =

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进