超算网络常见组网拓扑
高性能计算场景的流量关注静态时延的同时需要支持超大规模组网。然而传统的 CLOS 架构作为主流网络架构,主要关注通用性,牺牲了时延和性价比。业界针对该问题开展了多样的架构研究和新拓扑的设计,Fat-Tree、Dragonfly、Torus是几种常见的网络拓扑,Fat-Tree架构实现无阻塞转发,Dragonfly架构网络直径小,Torus 具有较高的扩展性和性价比。Fat-Tree胖树架构传统的树形网络拓扑中,带宽是逐层收敛的,树根处的网络带宽要远小于各个叶子处所有带宽的总和。而Fat-Tree则更像是真实的树,越到树根,枝干越粗,即:从叶子到树根,网络带宽不收敛,这是Fat-Tree能够支撑无阻塞网络的基础。Fat-Tree是使用最广泛的拓扑之一,它是各种应用程序的一个很好的选择,因为它提供低延迟并支持各种吞吐量选项——从非阻塞连接到超额订阅,这种拓扑类型最大限度地提高了各种流量模式的数据吞吐量。
Fat-Tree架构采用1:1无收敛设计,Fat-Tree架构中交换机上联端口与下联端口带宽、数量保持一致,同时交换机要采用无阻塞转发的数据中心级交换机。Fat-Tree架构可以通过扩展网络层次提升接入的GPU节点数量。Fat-Tree架构的本质是无带宽收敛,因此,云数据中心的Spine-leaf组网在无收敛的情况下,也可以认为是遵从了Fat-Tree架构理念。如果交换机的端口数量为n,则:两层Fat-Tree架构能够接入n²/2张GPU卡,以40端口的InfiniBand交换机为例,能够接入的GPU数量最多可达800个。三层Fat-Tree架构能够接入n(n/2)*(n/2)张GPU卡,以40端口的InfiniBand交换机为例,能够接入的GPU数量最多可达16000个。但是,Fat-Tree架构也存在明显的缺陷:
- 在网络环境中,交换机与服务器的规模对比显著,这导致了对大量交换机和链路的需求。因此,大规模部署在成本层面上有所挑战。Fat-Tree架构需要至少5M/n(其中M为服务器数量,n为交换机端口数)的交换机,然而,当交换机端口数量较少时,构建Fat-Tree所需的交换机数量将大幅增加,进一步增加了布线和配置的复杂性。
- 拓扑结构的限制导致网络无法高效支持 One-to-All 和 All-to-All 通信模式,从而影响了 MapReduce、Dryad 等高性能分布式应用的部署。
- 扩展规模在理论上受限于核心层交换机的端口数目。
Fat-Tree架构的本质是CLOS架构网络,主要关注通用性和无收敛,牺牲了时延和性价比。在构建大规模集群网络时需要增加网络层数,需要更多的互联光纤和交换机,带来成本的增加,同时随着集群规模增大,网络跳数增加,导致通信时延增加,也可能会无法满足业务低时延需求。
Dragonfly架构
Dragonfly是当前应用最广泛的直连拓扑网络架构,它由John Kim等人在2008年的论文Technology-Driven, Highly-Scalable Dragonfly Topology中提出,它的特点是网络直径小、成本较低,已经在高性能计算网络中被广泛应用,也适用于多元化算力的数据中心网络。Dragonfly网络如下图所示:Dragonfly的拓扑结构分为三层:Switch层、Group层、System层。
- Switch层:包括一个交换机及其相连的P个计算节点;
- 在Group层中,存在a个Switch层,每个Switch层包含a个全连接(All-to-all)交换机。换句话说,每台交换机都通过a-1条链路与其他a-1台交换机相连。
- System层:包含g个Group层,这g个Group层也是全连接的。
单个Switch交换机,p个端口直连计算节点,a-1个端口连接Group内其他设备,h个端口连接其他Group的交换机。由此揭示的网络特性令人着迷,探索其深层次的网络行为和交互模式,对于理解和优化数据通信有着重要的意义。
- 每个交换机的端口数为k=p+(a-1)+h
- Group的数量为g=ah+1
- 网络中一共有N=ap(ah+1) 个计算节点
Dragonfly是一种网络拓扑结构,由John Kim等人于2008年提出,被广泛地应用在高性能计算网结构上。在确定了p、a、h、g四个参数之后,我们就可以确定一个Dragonfly的拓扑,因此一个Dragonfly的拓扑可以用dfly(p,a,h,g)来表示。其中,a=2p=2h是推荐的较为平衡的配置方法 。
Dragonfly的路由算法主要有以下几种:
- 基于链路状态的路由算法
- 基于邻居信息的路由算法
- 基于全局信息的路由算法
- 最小路由算法(Minimal Routing)是一种基于拓扑结构的高效路由方法。在这类算法中,最多只会有1条Global Link和2条Local Link,实现3跳即可到达目的地。当两个Group之间仅有一条直接连接时(即g=ah+1),最短路径仅需1跳。这种简洁的路由策略提高了网络传输效率,降低了延迟。
- 非最短路径路由算法(Non-Minimal Routing,简称VAL或VLB)是一种高效的路由方法。该算法首先随机选择一个组(Group),将数据包从该组发送到目的地。由于拓扑结构的特性,VAL在最多5跳内最多会经过2条全局链路(Global Link)和3条本地链路(Local Link)。这种方法能够提高数据传输速度,降低延迟,从而优化网络性能。
- 自适应路由算法是一种动态路由算法,它会在网络拓扑或流量负载发生变化时改变路由选择,因此也被称为动态路由。该路由方式会依赖当前拓扑、网络负载、延迟等动态信息来调整路由。优化参数包含距离、跳数、预计传输时间和计数。
除了UGAL(全局自适应负载均衡路由),还提出了一系列变种自适应路由算法,如UGAL-L,UGAL-G等。
上述几种路由,由于自适应路由能够根据网络链路状态动态调整流量转发路径,因此会有更好的性能表现。
Dragonfly为各种应用程序(或通信模式)提供了良好的性能,与其他拓扑相比,它通过直连模式,缩短网络路径,减少中间节点数量。
64端口交换机支持组网规模27万节点,端到端交换机转发跳数减至3跳。
Dragonfly拓扑在性能和性价比方面有显著的优势。然而,这种优势的实现需要依赖于有效的拥塞控制和自适应路由策略。Dragonfly网络在扩展性方面存在问题,每次需要增加网络容量时,都必须对Dragonfly网络进行重新布线,这增加了网络的复杂性和管理难度。
Torus架构
随着模型参数的增加和训练数据的增加,单台机器算力无法满足,存储无法满足,所以要分布式机器学习,集合通信则是分布式机器学习的底层支撑,集合通信的难点在于需要在一定的网络互联结构的约束下进行高效的通信,需要在效率与成本、带宽与时延、客户要求与质量、创新与产品化等之间进行合理取舍。Torus网络架构是一种完全对称的拓扑结构,具有很多优良特性,如网络直径小、结构简单、路径多以及可扩展性好等特点,非常适合集合通信使用。
索尼公司提出2D-Torus算法,其主要思想就是组内satter-reduce->组间all-reduce->组内all-gather。 IBM提出了3D-Torus算法。我们用k-ary n-cube来表示。k是排列的边的长度,n是排列的维度。3-ary 3-cube拓扑如下:以2D-Torus拓扑为例,可以将网络结构表达成如下的Torus结构。
- 每台服务器拥有X个GPU节点,这些节点通过私有协议网络(如NVLINK)相互连接。
- 纵向:每台服务器通过至少2张RDMA网卡NIC 0 /NIC 1通过交换机互联。
第1步,横向,先进行主机内Ring Scatter Reduce,将主机内8张卡上的梯度进行拆分与规约,这样经过迭代,到最后每个GPU将有一个完整的同维梯度,该块梯度包含所有GPU中该块所对应的所有梯度的总和;第2步,纵向,进行主机间X个纵向的 Ring All Reduce,将每台服务器的X个GPU上的数据进行集群内纵向全局规约;第3步,横向,进行主机内All Gather,将GPUi[i=0~(X-1)]上的梯度复制到服务器内的其他GPU上;Torus网络架构具有如下优势:
- 更低的延迟:环面拓扑可以提供更低的延迟,因为它在相邻节点之间有短而直接的链接;
- 环面网络的优势在于,物理邻近的节点在逻辑上也相近,实现更佳的数据局部性,减少通信开销,降低时延和功耗。
Torus网络架构也存在一些不足:
- 可预测方面,环面网络中是无法保证的;
- 易扩展方面:缩放环面网络可能涉及重新配置整个拓扑,可能更加复杂和耗时;
- 负载平衡方面:环面网络提供多条路径,但相对Fat-tree备选路径数量要少;
Torus网络拓扑是一种高速网络拓扑结构,它可以在不同的维度上构建网络。在2D/3D结构之外,Torus网络拓扑也在向更高维度发展。Torus高维度网络中的一个单元称之为硅元,一个硅元内部采用3D-Torus拓扑结构,多个硅元可以构建更高维的4D/5D/6D-Torus直接网络 。
-对此,您有什么看法见解?-
-欢迎在评论区留言探讨和分享。-
标签:架构,拓扑,Tree,网络,Fat,交换机,超算,路由,组网 From: https://blog.csdn.net/njbaige/article/details/143814428