? ? ? 高性能計(jì)算場(chǎng)景的流量關(guān)注靜態(tài)時(shí)延的同時(shí)需要支持超大規(guī)模組網(wǎng)。然而傳統(tǒng)的?CLOS?架構(gòu)作為主流網(wǎng)絡(luò)架構(gòu),主要關(guān)注通用性,犧牲了時(shí)延和性價(jià)比。業(yè)界針對(duì)該問(wèn)題開(kāi)展了多樣的架構(gòu)研究和新拓?fù)涞脑O(shè)計(jì),F(xiàn)at-Tree、Dragonfly、Torus是幾種常見(jiàn)的網(wǎng)絡(luò)拓?fù)洌現(xiàn)at-Tree架構(gòu)實(shí)現(xiàn)無(wú)阻塞轉(zhuǎn)發(fā),Dragonfly架構(gòu)網(wǎng)絡(luò)直徑小,Torus?具有較高的擴(kuò)展性和性價(jià)比。
Fat-Tree胖樹(shù)架構(gòu)
傳統(tǒng)的樹(shù)形網(wǎng)絡(luò)拓?fù)渲?,帶寬是逐層收斂的,?shù)根處的網(wǎng)絡(luò)帶寬要遠(yuǎn)小于各個(gè)葉子處所有帶寬的總和。而Fat-Tree則更像是真實(shí)的樹(shù),越到樹(shù)根,枝干越粗,即:從葉子到樹(shù)根,網(wǎng)絡(luò)帶寬不收斂,這是Fat-Tree能夠支撐無(wú)阻塞網(wǎng)絡(luò)的基礎(chǔ)。Fat-Tree是使用最廣泛的拓?fù)渲?,它是各種應(yīng)用程序的一個(gè)很好的選擇,因?yàn)樗峁┑脱舆t并支持各種吞吐量選項(xiàng)——從非阻塞連接到超額訂閱,這種拓?fù)漕愋妥畲笙薅鹊靥岣吡烁鞣N流量模式的數(shù)據(jù)吞吐量。
Fat-Tree架構(gòu)采用1:1無(wú)收斂設(shè)計(jì),F(xiàn)at-Tree架構(gòu)中交換機(jī)上聯(lián)端口與下聯(lián)端口帶寬、數(shù)量保持一致,同時(shí)交換機(jī)要采用無(wú)阻塞轉(zhuǎn)發(fā)的數(shù)據(jù)中心級(jí)交換機(jī)。Fat-Tree架構(gòu)可以通過(guò)擴(kuò)展網(wǎng)絡(luò)層次提升接入的GPU節(jié)點(diǎn)數(shù)量。
Fat-Tree架構(gòu)的本質(zhì)是無(wú)帶寬收斂,因此,云數(shù)據(jù)中心的Spine-leaf組網(wǎng)在無(wú)收斂的情況下,也可以認(rèn)為是遵從了Fat-Tree架構(gòu)理念。
如果交換機(jī)的端口數(shù)量為n,則:兩層Fat-Tree架構(gòu)能夠接入n2/2張GPU卡,以40端口的InfiniBand交換機(jī)為例,能夠接入的GPU數(shù)量最多可達(dá)800個(gè)。三層Fat-Tree架構(gòu)能夠接入n(n/2)*(n/2)張GPU卡,以40端口的InfiniBand交換機(jī)為例,能夠接入的GPU數(shù)量最多可達(dá)16000個(gè)。
但是,F(xiàn)at-Tree架構(gòu)也存在明顯的缺陷:
網(wǎng)絡(luò)中交換機(jī)與服務(wù)器的比值較大,需要大量的交換機(jī)和鏈路,因此,在大規(guī)模情況下成本相對(duì)較高。構(gòu)建Fat-Tree需要的交換機(jī)數(shù)量為5M/n(其中,M是服務(wù)器的數(shù)量,n是交換機(jī)的端口數(shù)量),當(dāng)交換機(jī)的端口數(shù)量n較小時(shí),連接Fat-Tree需要的交換機(jī)數(shù)量龐大,從而增加了布線和配置的復(fù)雜性;
拓?fù)浣Y(jié)構(gòu)的特點(diǎn)決定了網(wǎng)絡(luò)不能很好的支持One-to-All及All-to-All網(wǎng)絡(luò)通信模式,不利于部署?MapReduce、Dryad等高性能分布式應(yīng)用;
擴(kuò)展規(guī)模在理論上受限于核心層交換機(jī)的端口數(shù)目。
Fat-Tree架構(gòu)的本質(zhì)是CLOS架構(gòu)網(wǎng)絡(luò),主要關(guān)注通用性和無(wú)收斂,犧牲了時(shí)延和性價(jià)比。在構(gòu)建大規(guī)模集群網(wǎng)絡(luò)時(shí)需要增加網(wǎng)絡(luò)層數(shù),需要更多的互聯(lián)光纖和交換機(jī),帶來(lái)成本的增加,同時(shí)隨著集群規(guī)模增大,網(wǎng)絡(luò)跳數(shù)增加,導(dǎo)致通信時(shí)延增加,也可能會(huì)無(wú)法滿足業(yè)務(wù)低時(shí)延需求。
Dragonfly架構(gòu)
Dragonfly是當(dāng)前應(yīng)用最廣泛的直連拓?fù)渚W(wǎng)絡(luò)架構(gòu),它由John Kim等人在2008年的論文Technology-Driven, Highly-Scalable Dragonfly Topology中提出,它的特點(diǎn)是網(wǎng)絡(luò)直徑小、成本較低,已經(jīng)在高性能計(jì)算網(wǎng)絡(luò)中被廣泛應(yīng)用,也適用于多元化算力的數(shù)據(jù)中心網(wǎng)絡(luò)。
Dragonfly網(wǎng)絡(luò)如下圖所示:
Dragonfly的拓?fù)浣Y(jié)構(gòu)分為三層:Switch層、Group層、System層。
Switch層:包括一個(gè)交換機(jī)及其相連的P個(gè)計(jì)算節(jié)點(diǎn);
Group層:包含a個(gè)Switch層,這a個(gè)Switch層的a個(gè)交換機(jī)是全連接(All-to-all)的,換言之,每個(gè)交換機(jī)都有a-1條鏈路連接分別連接到其他的a-1臺(tái)交換機(jī);
System層:包含g個(gè)Group層,這g個(gè)Group層也是全連接的。
對(duì)于單個(gè)Switch交換機(jī),它有p個(gè)端口連接到了計(jì)算節(jié)點(diǎn),a-1個(gè)端口連接到Group內(nèi)其他交換機(jī),h個(gè)端口連接到其他Group的交換機(jī)。因此,我們可以計(jì)算得到網(wǎng)絡(luò)中的如下屬性:
每個(gè)交換機(jī)的端口數(shù)為k=p+(a-1)+h
Group的數(shù)量為g=ah+1
網(wǎng)絡(luò)中一共有N=ap(ah+1)?個(gè)計(jì)算節(jié)點(diǎn)
如果我們把一個(gè)Group內(nèi)的交換機(jī)都合成一個(gè),將它們視為一個(gè)交換機(jī),那么這個(gè)交換機(jī)的端口數(shù)為k‘=a(p+h)。
不難發(fā)現(xiàn),在確定了?p、a、h、g四個(gè)參數(shù)之后,我們就可以確定一個(gè)Dragonfly的拓?fù)?,因此,一個(gè)Dragonfly的拓?fù)淇梢杂胐fly(p,a,h,g)?來(lái)表示,一種推薦的較為平衡的配置是方法是:a=2p=2h。
Dragonfly的路由算法主要有以下幾種:
最小路由算法(Minimal Routing):由于拓?fù)涞男再|(zhì),Minimal Routing中最多只會(huì)有1條Global Link和2條Local Link,也就是說(shuō)最多3跳即可到達(dá)。在任由兩個(gè)Group之間只有一條直連連接時(shí)(即g=ah+1時(shí)),最短路徑只有一條。
非最短路徑的路由算法(Non-Minimal Routing):有的地方叫Valiant algorithm,簡(jiǎn)寫為VAL,還有的地方叫Valiant Load-balanced routing,簡(jiǎn)寫為VLB。隨機(jī)選擇一個(gè)Group,先發(fā)到這個(gè)Group然后再發(fā)到目的地。由于拓?fù)涞男再|(zhì),VAL最多會(huì)經(jīng)過(guò)2條Global Link和3條Local Link,最多5跳即可到達(dá)。
自適應(yīng)路由(Adaptive Routing):當(dāng)一個(gè)數(shù)據(jù)包到達(dá)交換機(jī)時(shí),交換機(jī)根據(jù)網(wǎng)絡(luò)負(fù)載信息在最短路徑路由和非最短路徑路由路徑之間進(jìn)行動(dòng)態(tài)選路,優(yōu)先采用最短路徑轉(zhuǎn)發(fā),當(dāng)最短路徑擁塞時(shí),通過(guò)非最短路徑轉(zhuǎn)發(fā)。因?yàn)橐@取到全局網(wǎng)絡(luò)狀態(tài)信息比較困難,除了UGAL(全局自適應(yīng)負(fù)載均衡路由),還提出了一系列變種自適應(yīng)路由算法,如UGAL-L,UGAL-G等。
上述幾種路由,由于自適應(yīng)路由能夠根據(jù)網(wǎng)絡(luò)鏈路狀態(tài)動(dòng)態(tài)調(diào)整流量轉(zhuǎn)發(fā)路徑,因此會(huì)有更好的性能表現(xiàn)。
Dragonfly為各種應(yīng)用程序(或通信模式)提供了良好的性能,與其他拓?fù)湎啾?,它通過(guò)直連模式,縮短網(wǎng)絡(luò)路徑,減少中間節(jié)點(diǎn)數(shù)量。64端口交換機(jī)支持組網(wǎng)規(guī)模27萬(wàn)節(jié)點(diǎn),端到端交換機(jī)轉(zhuǎn)發(fā)跳數(shù)減至3跳。
Dragonfly拓?fù)湓谛阅芎托詢r(jià)比方面有顯著的優(yōu)勢(shì)。然而,這種優(yōu)勢(shì)的實(shí)現(xiàn)需要依賴于有效的擁塞控制和自適應(yīng)路由策略。Dragonfly網(wǎng)絡(luò)在擴(kuò)展性方面存在問(wèn)題,每次需要增加網(wǎng)絡(luò)容量時(shí),都必須對(duì)Dragonfly網(wǎng)絡(luò)進(jìn)行重新布線,這增加了網(wǎng)絡(luò)的復(fù)雜性和管理難度。
Torus架構(gòu)
隨著模型參數(shù)的增加和訓(xùn)練數(shù)據(jù)的增加,單臺(tái)機(jī)器算力無(wú)法滿足,存儲(chǔ)無(wú)法滿足,所以要分布式機(jī)器學(xué)習(xí),集合通信則是分布式機(jī)器學(xué)習(xí)的底層支撐,集合通信的難點(diǎn)在于需要在一定的網(wǎng)絡(luò)互聯(lián)結(jié)構(gòu)的約束下進(jìn)行高效的通信,需要在效率與成本、帶寬與時(shí)延、客戶要求與質(zhì)量、創(chuàng)新與產(chǎn)品化等之間進(jìn)行合理取舍。
Torus網(wǎng)絡(luò)架構(gòu)是一種完全對(duì)稱的拓?fù)浣Y(jié)構(gòu),具有很多優(yōu)良特性,如網(wǎng)絡(luò)直徑小、結(jié)構(gòu)簡(jiǎn)單、路徑多以及可擴(kuò)展性好等特點(diǎn),非常適合集合通信使用。索尼公司提出2D-Torus算法,其主要思想就是組內(nèi)satter-reduce->組間all-reduce->組內(nèi)all-gather。?IBM提出了3D-Torus算法。
我們用k-ary n-cube來(lái)表示。k是排列的邊的長(zhǎng)度,n是排列的維度。
3-ary 3-cube拓?fù)淙缦拢?/p>
以2D-Torus拓?fù)錇槔?,可以將網(wǎng)絡(luò)結(jié)構(gòu)表達(dá)成如下的Torus結(jié)構(gòu)。
橫向:每臺(tái)服務(wù)器X個(gè)GPU節(jié)點(diǎn),每GPU節(jié)點(diǎn)通過(guò)私有協(xié)議網(wǎng)絡(luò)互聯(lián)(如NVLINK);
縱向:每臺(tái)服務(wù)器通過(guò)至少2張RDMA網(wǎng)卡NIC 0 /NIC 1通過(guò)交換機(jī)互聯(lián)。
第1步,橫向,先進(jìn)行主機(jī)內(nèi)Ring Scatter Reduce,將主機(jī)內(nèi)8張卡上的梯度進(jìn)行拆分與規(guī)約,這樣經(jīng)過(guò)迭代,到最后每個(gè)GPU將有一個(gè)完整的同維梯度,該塊梯度包含所有GPU中該塊所對(duì)應(yīng)的所有梯度的總和;
第2步,縱向,進(jìn)行主機(jī)間X個(gè)縱向的?Ring All Reduce,將每臺(tái)服務(wù)器的X個(gè)GPU上的數(shù)據(jù)進(jìn)行集群內(nèi)縱向全局規(guī)約;
第3步,橫向,進(jìn)行主機(jī)內(nèi)All Gather,將GPUi[i=0~(X-1)]上的梯度復(fù)制到服務(wù)器內(nèi)的其他GPU上;
Torus網(wǎng)絡(luò)架構(gòu)具有如下優(yōu)勢(shì):
更低的延遲:環(huán)面拓?fù)淇梢蕴峁└偷难舆t,因?yàn)樗谙噜徆?jié)點(diǎn)之間有短而直接的鏈接;
更好的局部性:在環(huán)面網(wǎng)絡(luò)中,物理上彼此靠近的節(jié)點(diǎn)在邏輯上也很接近,這可以帶來(lái)更好的數(shù)據(jù)局部性并減少通信開(kāi)銷,從而降低時(shí)延和功耗。
較低的網(wǎng)絡(luò)直徑:對(duì)于相同數(shù)量的節(jié)點(diǎn),環(huán)面拓?fù)涞木W(wǎng)絡(luò)直徑低于CLOS網(wǎng)絡(luò),需要更少的交換機(jī),從而節(jié)省大量成本。
Torus網(wǎng)絡(luò)架構(gòu)也存在一些不足:
可預(yù)測(cè)方面,環(huán)面網(wǎng)絡(luò)中是無(wú)法保證的;
易擴(kuò)展方面:縮放環(huán)面網(wǎng)絡(luò)可能涉及重新配置整個(gè)拓?fù)?,可能更加?fù)雜和耗時(shí);
負(fù)載平衡方面:環(huán)面網(wǎng)絡(luò)提供多條路徑,但相對(duì)Fat-tree備選路徑數(shù)量要少;
故障排查:對(duì)于突發(fā)故障的排查復(fù)雜性略高,不過(guò)動(dòng)態(tài)可重配路由的靈活性可以大幅避免事故。
Torus網(wǎng)絡(luò)拓?fù)涑?D/3D結(jié)構(gòu)外,也在向更高維度發(fā)展,Torus高維度網(wǎng)絡(luò)中的一個(gè)單元稱之為硅元,一個(gè)硅元內(nèi)部采用3D-Torus拓?fù)浣Y(jié)構(gòu),多個(gè)硅元可以構(gòu)建更高維的4D/5D/6D-Torus直接網(wǎng)絡(luò)。
審核編輯:黃飛
?
評(píng)論
查看更多