蔣句平,董德尊,唐 虹,齊星云,???,龐征斌
(國防科技大學(xué)計算機學(xué)院,湖南 長沙 410073)
隨著各行各業(yè)對高性能計算需求的持續(xù)增長,高性能計算機的性能不斷提升。根據(jù)TOP500發(fā)布數(shù)據(jù),1993~2012年,高性能計算機的性能以每10年1 000倍的速率提高。從2013年起,性能上升速率變緩,如果沒有重大突破,將降為每10年只提高100倍左右?;ミB網(wǎng)絡(luò)是連接處理器、存儲器、I/O設(shè)備的重要組成部分,通常用于實現(xiàn)不同處理節(jié)點間的同步和通信,是HPC系統(tǒng)全局設(shè)計的基礎(chǔ)設(shè)施,已經(jīng)成為HPC可擴展性和性能提高的關(guān)鍵要素。當(dāng)前高性能計算機正邁向E (Exascale) 級計算時代,系統(tǒng)規(guī)模不斷擴大,應(yīng)用領(lǐng)域不斷擴展,包括微處理器、加速器等的廣泛采用對互連網(wǎng)絡(luò)拓撲結(jié)構(gòu)提出了許多新的要求[1]。目前高性能互連網(wǎng)絡(luò)主要面臨著如下挑戰(zhàn):(1)規(guī)模。隨著E級計算時代的到來,網(wǎng)絡(luò)規(guī)模需擴展至十萬量級以上,這對網(wǎng)絡(luò)拓撲結(jié)構(gòu)設(shè)計和網(wǎng)絡(luò)可靠性提出了更高的要求。(2)性能。HPC計算性能不斷攀升,互連網(wǎng)絡(luò)需要提供與計算性能相匹配的高互連帶寬。(3)網(wǎng)絡(luò)直徑。規(guī)模的擴大需要設(shè)計更小的網(wǎng)絡(luò)直徑以降低網(wǎng)絡(luò)延遲。(4)功耗。系統(tǒng)規(guī)模的擴大使互連網(wǎng)絡(luò)的功耗提升,高功耗將嚴(yán)重制約系統(tǒng)設(shè)計和使用。高性能互連網(wǎng)絡(luò)設(shè)計中,網(wǎng)絡(luò)所采用的拓撲結(jié)構(gòu)和路由算法是影響網(wǎng)絡(luò)性能的關(guān)鍵,從根本上決定了大規(guī)模并行的效率,這使得高性能互連網(wǎng)絡(luò)的設(shè)計在HPC系統(tǒng)中愈加重要。
為了應(yīng)對高性能互連網(wǎng)絡(luò)所帶來的挑戰(zhàn),目前大部分HPC系統(tǒng)均采用高階路由器來搭建高性能互連網(wǎng)絡(luò),Kim等人[2]也在實驗中證明了在大規(guī)?;ミB網(wǎng)絡(luò)中,使用高階路由器將會減少網(wǎng)絡(luò)直徑和平均跳步數(shù),能獲得更低的傳輸延遲,使用更少的路由器和互連鏈路,網(wǎng)絡(luò)設(shè)計成本和功耗也顯著降低?;诟唠A路由器設(shè)計高性能系統(tǒng)互連網(wǎng)絡(luò)已成為互連網(wǎng)絡(luò)設(shè)計的主流趨勢。
本文針對目前主流的高性能互連網(wǎng)絡(luò)拓撲結(jié)構(gòu)進行分析,并對這些網(wǎng)絡(luò)拓撲的可擴展性進行分析,最后通過自主研發(fā)模擬器評測了Torus結(jié)構(gòu)從低維到高維的網(wǎng)絡(luò)性能,以及其它幾種大規(guī)模拓撲結(jié)構(gòu)在不同通信負載與路由策略下的性能。
隨著高性能計算機的不斷發(fā)展,國內(nèi)外許多研究小組都致力于高性能互連網(wǎng)絡(luò)的拓撲結(jié)構(gòu)研究與設(shè)計,如早期高性能計算機主流拓撲Torus、以蝶形網(wǎng)絡(luò)為代表的拓撲FT(FatTree)[3]、層次化全互連拓撲結(jié)構(gòu)DF(Dragonfly)[4]、由Dragonfly和Clos結(jié)構(gòu)變形而來的拓撲結(jié)構(gòu)MF(MegaFly)[5]、根據(jù)圖論中MMS圖設(shè)計的拓撲結(jié)構(gòu)SF(SlimFly)[6]。下文將對上述拓撲結(jié)構(gòu)進行介紹與分析。
高性能計算機系統(tǒng)發(fā)展的初期,以Torus為代表的k元n立方體一直是互連網(wǎng)絡(luò)的主流拓撲。比如,Crayd的T3D[7]、T3E[8]均采用了3D Torus結(jié)構(gòu),由于早期硬件條件不成熟,這種結(jié)構(gòu)無法擴展至高維,目前隨著硬件條件的提升,高維Torus結(jié)構(gòu)已經(jīng)被許多主流的高性能計算機系統(tǒng)使用。Fujisu公司推出的K computer[9]和PRIMEHPC FX0采用的互連網(wǎng)絡(luò)Tofu是6D Torus 結(jié)構(gòu)。Tofu網(wǎng)絡(luò)由2類3D Torus組成:ABC 3D環(huán)狀網(wǎng)和XYZ 3D環(huán)狀網(wǎng)。而Fujisu公司計劃開發(fā)的下一代超級計算機Post-K將繼續(xù)采用該結(jié)構(gòu)進行互連[10]。
構(gòu)建高維Torus最大的優(yōu)勢是可以減少每一維的路由節(jié)點數(shù)量,提高網(wǎng)絡(luò)的吞吐量,并且Torus網(wǎng)絡(luò)具有較優(yōu)臨近通信性能、擴展能力和容錯能力等優(yōu)點。但是,對于高維的Torus網(wǎng)絡(luò),其延遲也隨著增加,降低了網(wǎng)絡(luò)的性能;其次,高維Torus所帶來的死鎖問題相對比較復(fù)雜。
FT結(jié)構(gòu)是最早的大規(guī)模低直徑高性能互連網(wǎng)絡(luò)拓撲結(jié)構(gòu)[3]。我國自主研制的高性能計算機“天河一號”“天河二號”以及“太湖之光”均采用該結(jié)構(gòu)。FT是一個靈活性和擴展性都較好的拓撲結(jié)構(gòu),隨著網(wǎng)絡(luò)規(guī)模的增加,二分帶寬也隨之等規(guī)模增加。圖1是一個2元3層的FT結(jié)構(gòu),網(wǎng)絡(luò)中路由節(jié)點分為2類,1類為非葉子層的路由節(jié)點,負責(zé)鏈接上下層的路由節(jié)點,完成報文轉(zhuǎn)發(fā)傳輸;另1類為葉子層的路由節(jié)點,不僅鏈接上一層的路由節(jié)點還鏈接終端。每個路由節(jié)點的度數(shù)為2k,需要(2n-1)kn-1個路由器,可支持2kn個終端,網(wǎng)絡(luò)直徑為2(n-1)。
相比于Torus結(jié)構(gòu),F(xiàn)T網(wǎng)絡(luò)路由算法更易實現(xiàn),有更低的網(wǎng)絡(luò)直徑,網(wǎng)絡(luò)性能較優(yōu)。但是,F(xiàn)T網(wǎng)絡(luò)也存在限制因素,擴大至更高規(guī)模需要增加網(wǎng)絡(luò)層數(shù),鏈路數(shù)隨之指數(shù)增長,造成更大的資源開銷。
Figure 1 FatTree(2,3)圖1 2元3層胖樹結(jié)構(gòu)
DF是2008年在ISCA(International Symposum on Computer Architecture)會議上提出的新型高性能互連網(wǎng)絡(luò)[4],是大規(guī)模低直徑高性能互連網(wǎng)絡(luò)的典型代表。2017年11月和2018年6月 TOP500中排名第3和第6的高性能計算機Piz Daintr 互連網(wǎng)絡(luò)采用的就是DF。另外,IBM和聯(lián)想都采用了該結(jié)構(gòu)設(shè)計高性能計算機系統(tǒng)。如圖2所示,DF是層次式全互連結(jié)構(gòu)。DF(t,a,h)是一個3級的層次結(jié)構(gòu),第1級是單個路由節(jié)點,第2級是多個路由節(jié)點互連而成的超級節(jié)點,第3級是多個超級節(jié)點互連而成的網(wǎng)絡(luò)。每個路由節(jié)點有3種不同的鏈接類型:(1)每個路由器引出t條鏈路連接終端;(2)在同一個超級節(jié)點內(nèi)每個路由器引出a-1條鏈路連接其余路由器;(3)每個路由器引出h條全局鏈路連接其余超級節(jié)點內(nèi)的路由器。因此,每一個路由節(jié)點的度數(shù)為k=t+a+h-1。DF網(wǎng)絡(luò)需要a(ah+1)個路由器,最大可支持at(ah+1)個終端。DF因為任意2組之間都有1條全局鏈路,轉(zhuǎn)發(fā)1個報文最多只要經(jīng)過2條本地鏈路和1條全局鏈路,所以任意2個終端通信最多只要經(jīng)過3跳。DF結(jié)構(gòu)利用全互連的思想分層構(gòu)建,不僅網(wǎng)絡(luò)直徑小,而且相比FT拓撲結(jié)構(gòu)網(wǎng)絡(luò)擴展性更好,成本開銷更低。在滿足a=2t=2h條件下,DF可擴展至最大規(guī)模,且能達到均衡配置的要求。
Figure 2 Dragonfly network圖2 Dragonfly網(wǎng)絡(luò)
MF是2017年在HiPINEB(High-Performance Interconnection Networks in the Exascale and Big-Data Era)會議上提出的,也稱為Dragonfly+[5],其結(jié)構(gòu)如圖3所示。MF 也是一個層次結(jié)構(gòu),類似于DF,由多個由全局鏈接連接的組構(gòu)成。與DF不同的是,MF組內(nèi)是1個2層的Clos結(jié)構(gòu),葉子層的路由節(jié)點不僅鏈接上1層的路由節(jié)點,還鏈接k個終端。非葉子層路由節(jié)點不僅鏈接葉子層路由節(jié)點,還鏈接了其他k個超級節(jié)點。 因此,每一個路由節(jié)點的度數(shù)為2k。MF需要k(kk+1)個路由器,MF網(wǎng)絡(luò)可支持kk(kk+1)個終端。在使用相同端口數(shù)的情形下,MF可支持的網(wǎng)絡(luò)規(guī)模是DF結(jié)構(gòu)的近4倍。
Figure 3 MegaFly network圖3 MegaFly 網(wǎng)絡(luò)
SF是2014年在SC(Supercomputing Conference)會議上由瑞士學(xué)者提出的[6]。如圖4所示,SF是采用代數(shù)圖論的MMS圖[11]構(gòu)造的一個近似最優(yōu)拓撲結(jié)構(gòu)的高性能互連網(wǎng)絡(luò)結(jié)構(gòu),該拓撲結(jié)構(gòu)由2個子圖構(gòu)成,每個子圖內(nèi)由相同數(shù)目的子組組成。SF拓撲的構(gòu)造取決于素數(shù)冪q,q滿足q=4w+δ,其中δ∈{-1,0,1},w∈N。一個路由節(jié)點的度數(shù)k=(3q-δ)/2+(3q-δ)/4,可支持2q2*(3q-δ)/4個終端。相比其他結(jié)構(gòu),SF的端口利用率高,在直徑為2的約束下,使用盡可能少的路由器端口數(shù)可構(gòu)造更大規(guī)模的拓撲結(jié)構(gòu)。SF結(jié)構(gòu)是繼DF結(jié)構(gòu)之后又一個標(biāo)志性拓撲結(jié)構(gòu),滿足了低直徑大規(guī)模的要求。
Figure 4 SlimFly network圖4 SlimFly 網(wǎng)絡(luò)
研究大規(guī)?;ミB網(wǎng)絡(luò)一直都是很具有挑戰(zhàn)性的工作,模擬一個有數(shù)千個結(jié)點的系統(tǒng)可能需要大量的資源和時間,許多研究者也開發(fā)了相應(yīng)的模擬器,比如基于時鐘精確的互連網(wǎng)絡(luò)Booksim模擬器,但其只支持串行仿真,難以模擬大規(guī)模網(wǎng)絡(luò)。因此,設(shè)計一個可并行執(zhí)行的模擬器是非常有必要的。Mubarak 等人[12]研究并仿真了多達一百萬結(jié)點的Torus,實驗結(jié)果也表明,大規(guī)模并行仿真對于高性能計算機系統(tǒng)的研究至關(guān)重要。
本文采用自行研發(fā)的模擬器對大規(guī)模拓撲結(jié)構(gòu)進行仿真分析。該模擬器是基于離散事件平臺開發(fā)的一款支持微片級模擬仿真平臺。模擬器實現(xiàn)了對網(wǎng)絡(luò)拓撲、路由建模的性能評估。該模擬器系統(tǒng)主要分為3部分:拓撲模塊、網(wǎng)絡(luò)接口卡模塊和路由器模塊。拓撲模塊:是整個系統(tǒng)開發(fā)的設(shè)計基礎(chǔ),將路由器與其他結(jié)點連接起來構(gòu)成互連拓撲,在模擬器中可支持多種拓撲參數(shù)配置,從而形成大規(guī)?;ミB網(wǎng)絡(luò)拓撲結(jié)構(gòu)。網(wǎng)絡(luò)接口卡模塊是路由器和計算結(jié)點的接口,它負責(zé)根據(jù)負載模式生成報文,注入到網(wǎng)絡(luò)中,并負責(zé)接收從路由器轉(zhuǎn)發(fā)的報文。路由器模塊包括路由預(yù)計算模塊和標(biāo)準(zhǔn)路由器模塊,轉(zhuǎn)發(fā)到標(biāo)準(zhǔn)路由器的報文先經(jīng)過路由預(yù)計算模塊進行與拓撲相關(guān)的靜態(tài)路由計算,然后再發(fā)送到標(biāo)準(zhǔn)路由器模塊。標(biāo)準(zhǔn)路由器模塊是輸入隊列虛通道路由器模型,由輸入、路由計算、分配器和輸出調(diào)度4個模塊組成。報文頭Flit進入輸入單元后會向路由計算模塊提出路由計算請求,得到一組輸出端口和輸出虛通道(靜態(tài)路由算法在路由預(yù)計算模塊完成,動態(tài)路由算法在該模塊完成)。頭Flit完成路由計算后,多個請求進入虛通道分配器,在頭Flit獲得某條虛通道的使用權(quán)后,進入交叉開關(guān)分配器,請求輸出端口。交叉開關(guān)分配器產(chǎn)生控制信號連接交叉開關(guān)的輸入和輸出端口,將切片發(fā)送到下游路由器。輸出模塊記錄下游路由器的虛通道使用情況。
本文的并行模擬仿真實驗環(huán)境采用廣州超算中心的“天河二號”,其系統(tǒng)配置CPU為Intel Xeon E5-269212C 2.200 GHz,采用 THExpress-2 高速互連的刀片結(jié)點,每個結(jié)點有24核,64 GB內(nèi)存。
本節(jié)對FT、DF、SF、MF網(wǎng)絡(luò)的網(wǎng)絡(luò)擴展性進行理論分析,并通過自主研發(fā)模擬器對這幾種拓撲的通信模式、路由算法進行模擬仿真分析。文中的符號縮寫說明如表1所示。
Tabel 1 Symbols used in the paper表1 符號說明
在模擬中路由計算模塊、虛通道分配模塊、交叉開關(guān)模塊以及傳輸處理模塊的延遲均設(shè)為1個時鐘周期。報文的默認長度是1個Flit。采用虛通道避免死鎖,每個輸入端口有8個VC(Virtual Channel),每個VC的緩沖區(qū)容量是300個Flit。拓撲鏈接提供了2種鏈路傳輸延遲配置,路由器到計算結(jié)點之間的鏈路延遲設(shè)為5個周期,路由器與路由器之間的鏈路傳輸延遲設(shè)為50個周期。
模擬的過程分成預(yù)熱階段、穩(wěn)定階段和排空階段。其中預(yù)熱階段運行10 000個周期,穩(wěn)定階段運行5 000個周期,排空階段運行5 000個周期。網(wǎng)絡(luò)延遲數(shù)據(jù)采集的是穩(wěn)定狀態(tài)下的值。
本節(jié)主要分析不同拓撲的可擴展性,比較在相同路由器基數(shù)(Router Radix)情況下,網(wǎng)絡(luò)的可擴展性。對于Torus結(jié)構(gòu)可通過擴維方式構(gòu)建更大規(guī)模的網(wǎng)絡(luò),比如,對于6D的Torus,路由器的端口數(shù)量為13,當(dāng)每一維度有5個路由結(jié)點,網(wǎng)絡(luò)規(guī)模達到1萬量級,每一維度有7個路由節(jié)點,網(wǎng)絡(luò)規(guī)??蓴U展到10萬量級。對于Torus結(jié)構(gòu),當(dāng)維度確定時,路由器基數(shù)也隨之確定,因此在本節(jié)不考慮Torus結(jié)構(gòu)。其它幾種拓撲結(jié)構(gòu)的可擴展性如圖5所示。
Figure 5 Router/network size vs router radix圖5 路由器數(shù)量和網(wǎng)絡(luò)規(guī)模隨路由器基數(shù)變化的關(guān)系
從圖5a和圖5b中可以看出,F(xiàn)T可通過擴展層數(shù)來支持更大的網(wǎng)絡(luò)規(guī)模,但同時會需要更多的路由器,增加了報文的傳輸路徑。對比DF、SF和MF,在相同的路由基數(shù)條件下,MF可支持更大規(guī)模的網(wǎng)絡(luò)。SF采用更高階的路由器,可使用最少的路由器來支持更大的網(wǎng)絡(luò)規(guī)模。當(dāng)網(wǎng)絡(luò)規(guī)模擴展到10萬量級時,SF需要90個路由端口,3千左右路由器時,DF需要50個左右的路由端口,路由器數(shù)量比SF多26%,MF只需要36個路由端口,路由器數(shù)量比SF多33%。
本節(jié)討論相同規(guī)模的Tours從低維擴展到高維網(wǎng)絡(luò)的性能。仿真參數(shù)如表2所示。
Tabel 2 Parameters in different dimensions表2 不同維度參數(shù)
Torus采用維序路由算法Dor(Dimensional order routing)。實驗結(jié)果如圖6所示。從表2中得出,當(dāng)網(wǎng)絡(luò)規(guī)模相同時,隨著維度的增加Torus網(wǎng)絡(luò)直徑減小。從圖6也可以看出,對比低維結(jié)構(gòu),高維Torus結(jié)構(gòu)性能有較大的提高。隨著硬件條件的提升,高性能互連網(wǎng)絡(luò)可以采用高維Torus結(jié)構(gòu)搭建互連網(wǎng)絡(luò)。
Figure 6 Performance comparison of different dimensions圖6 Torus不同維度性能對比
本節(jié)主要在模擬器中針對不同通信負載模式進行仿真,其中,Torus采用Dor路由算法,F(xiàn)T采用最近公共祖先路由算法NCA(Nearest Common Ancestor routing)、其它3種拓撲均采用最短路徑路由算法MIN(MINimum path routing)。具體拓撲參數(shù)配置如表3所示。
表3中,uniform:隨機負載,每個源結(jié)點的流量等概率地發(fā)送到任意目的結(jié)點,是網(wǎng)絡(luò)測評中最常使用的負載模式;asymmetric:非均衡負載,把終端分為2組,組內(nèi)的終端不相互發(fā)送數(shù)據(jù),2組之間相互發(fā)送數(shù)據(jù);randperm:隨機置換負載,隨機選擇一個目的結(jié)點,每個源結(jié)點將其所有的流量都發(fā)送給同一個目的結(jié)點,置換負載可以測試拓撲或路由算法的承壓能力。實驗結(jié)果如圖7所示。
Table 3 Traffic pattern configuration表3 通信模式參數(shù)配置
Figure 7 Lantency of different routing algorithm with different traffic patterns圖7 不同通信模式下不同路由算法的網(wǎng)絡(luò)延遲
如圖7所示,隨著注入率的增加,網(wǎng)絡(luò)延遲也會增加,由于Torus的網(wǎng)絡(luò)直徑最大,對應(yīng)的零延遲也最大,SF網(wǎng)絡(luò)直徑最小,對應(yīng)的零延遲也最小。對于uniform和asymmetric負載模式,隨著注入率的增加,Torus網(wǎng)絡(luò)飽和速度最緩,主要原因是Torus采用高維結(jié)構(gòu)。對于其他高階網(wǎng)絡(luò)拓撲,如圖7a所示,在uniform模式下,負載均衡,DF、MF和SF網(wǎng)絡(luò)拓撲直徑較小,性能都優(yōu)于FT的。如圖7b所示,在asymmetric模式下,SF網(wǎng)絡(luò)表現(xiàn)出更優(yōu)的網(wǎng)絡(luò)性能,主要原因在于網(wǎng)絡(luò)平均劃分為2部分的終端互發(fā)消息,使得網(wǎng)絡(luò)中鏈路兩等分之間的全局鏈路集中擁塞影響了網(wǎng)絡(luò)的性能,而DF和MF任意2個超級節(jié)點之間都只有1條全局鏈路,性能較差。SF采用對稱的2個子圖,有更為豐富的全局鏈路,而對于FT有更多的路徑選擇,所以性能表現(xiàn)更優(yōu)。如圖7c所示,在randperm模式下,F(xiàn)T表現(xiàn)出更優(yōu)的抗壓能力,主要原因是每一個源結(jié)點都發(fā)給特定的目的結(jié)點,DF、MF、SF采用最短路徑路由算法,負載過于集中很容易造成擁塞,而FT路由算法可選擇的路徑優(yōu)于其他拓撲結(jié)構(gòu),使得網(wǎng)絡(luò)中流量相對比較分散,不容易阻塞,從而表現(xiàn)出更優(yōu)的性能。
本節(jié)使用DF(4,8,4)拓撲,網(wǎng)絡(luò)規(guī)模約0.1萬,比較在混合通信模式下采用MIN路由算法和自適應(yīng)路由算法UGAL(Universal Globally Adaptive Load-balance routing)的性能。混合通信模式由均勻隨機負載和熱點模式組成。其結(jié)果如圖8所示,其中圖8a表示2%的結(jié)點作為熱點區(qū)域,圖8b 表示選取10%結(jié)點作為熱點區(qū)域。左上角圖例X-Y-Z,其中X表示采用的路由算法,Y表示在生成負載時產(chǎn)生熱點的概率,Z表示選取結(jié)點作為熱點區(qū)域的比例。比如,MIN-10%-2%表示選取2%結(jié)點作為熱點區(qū)域,混合負載由10%的熱點通信模式和90%的均勻隨機負載通信模式組成。
Figure 8 Lantency of different routing algorithm with mixed traffic pattern圖8 混合通信模式下不同路由算法的網(wǎng)絡(luò)延遲
在圖8a中,當(dāng)熱點區(qū)域所占的比例較小時,MIN和UGAL路由算法的性能沒有太大差異。在圖8b中,隨著熱點區(qū)域的增多和通信負載注入速率的增加,UGAL路由算法憑借更優(yōu)的鏈路選擇表現(xiàn)出了更優(yōu)的性能。
高性能計算機系統(tǒng)規(guī)模不斷擴大,速度不斷攀升,給高性能互連網(wǎng)絡(luò)帶來了新的挑戰(zhàn)。本文對主流的高性能互連拓撲進行了介紹,如高維Torus結(jié)構(gòu)、典型的FatTree和Dragonfly結(jié)構(gòu)、由Dragonfly和Clos結(jié)構(gòu)變形的MegaFly結(jié)構(gòu)以及根據(jù)圖論設(shè)計的SlimFly結(jié)構(gòu)。對各拓撲結(jié)構(gòu)的可擴展性進行了分析,通過分析得出,SlimFly可以使用更少的路由器來支持更大規(guī)模的網(wǎng)絡(luò)規(guī)模,MegaFly可以使用更少的端口數(shù)來支持更大的網(wǎng)絡(luò)規(guī)模。最后,通過自主設(shè)計的模擬器測試平臺對不同規(guī)模不同維度Torus性能、拓撲在不同通信負載模式下延遲走勢、Dragonfly混合模式下路由算法的性能進行了大規(guī)模仿真分析。仿真結(jié)果表明,Torus網(wǎng)絡(luò)可以通過擴維來提高網(wǎng)絡(luò)性能;SlimFly能獲得更低的網(wǎng)絡(luò)延遲;在混合通信模式下,Dragonfly的自適應(yīng)路由算法能獲得較好的網(wǎng)絡(luò)性能。