龔道永 宋長明 劉沙 漆鋒濱



摘 要:針對超級計算機系統中網絡引導時間開銷大的問題,提出網絡引導分布算法是影響網絡引導性能的主要因素之一,是優化網絡引導性能的主要方向的觀點。首先,分析了影響大規模網絡引導性能的主要因素;其次,結合一種典型超級計算機系統,分析了超節點循環分布算法(SCDA)和插件循環分布算法(BCDA)的網絡引導數據流拓撲結構;最后,量化分析了這兩種算法對各個網絡路徑段的壓力和可獲得的網絡性能,發現BCDA性能是SCDA性能的1~20倍。通過理論分析和模型推導發現,在計算節點和引導服務器之間使用更細粒度的映射算法可以在引導部分資源時使用盡量多的引導服務器,減少對局部網絡資源的過早競爭,提升網絡引導性能。
關鍵詞:超級計算機;插件板;超節點;網絡引導開銷;全路徑最小帶寬;網絡引導分布算法
中圖分類號: TP338.6并行計算機
文獻標志碼:A
Abstract: Since the network booting time overhead is high in supercomputer system, the idea that the network boot distribution algorithm is one of the main factors affecting the network boot performance and the main direction of optimizing network boot performance was proposed. Firstly, the main factors affecting large-scale network boot performance were analyzed. Secondly, combined with a typical supercomputer system, the network boot data flow topologies of Supernode Cyclic Distribution Algorithm (SCDA) and Board Cyclic Distribution Algorithm (BCDA) were analyzed. Finally, the pressure of above two algorithms on each network path branch and the available network performance were quantitatively analyzed. It can be seen that the bandwidth performance of BCDA is 1—20 times of that of SCDA. Theoretical analysis and model deduction show that the finer-grained mapping algorithm between compute nodes and boot servers can make as many boot servers as possible be used while boot some resources, reducing the premature competition for partial network resources and improving network boot performance.
Key words: supercomputer; board; supernode; network boot overhead; full path minimum bandwidth; network boot distribution algorithm
0 引言
當前,超級計算機的應用日趨廣泛,在國民經濟中發揮著越來越重要的作用[1]。超級計算機系統在使用前需要將操作系統、系統服務、配置參數等軟件環境加載到CPU上啟動運行后才能使用,主要部署方法有硬盤加載、光驅加載、USB加載、網絡加載等。超級計算機的主機基本都是無盤環境,配置了具有較高性能的內部網絡,因此網絡引導正成為大規模系統必不可少的一種管理技術[2]。在網絡引導方法中,Red Hat開發的KickStart技術[3]可以實現全自動化的無人值守安裝部署,預啟動執行環境(Preboot eXecution Environment, PXE)技術[4]可以實現網絡啟動,再加上普通文件傳輸協議(Trivial File Transfer Protocol, TFTP)[5]、動態配置協議(Dynamic Host Configuration Protocol, DHCP)[6]、網絡文件系統(Network File System, NFS)[7]等軟件技術,就可以實現快捷的大規模部署。人們日益關注網絡引導協議與開銷的研究[8-10],研究還發現,網絡引導開銷隨系統規模的增大而增加[11],對相同的系統來說,不同網絡引導算法的開銷可能相差數十倍,網絡引導分布算法在大規模系統網絡引導中扮演著日益重要的地位[12]。
超算系統中引導服務器的數量(N)遠小于需網絡引導的計算節點個數(M,即N 1 引導網絡拓撲結構 1.1 網絡加載均衡性分析 超級計算機計算節點網絡引導過程中,每個計算節點都根據網絡分布算法,通過網絡從對應引導服務器上遠程加載操作系統及其軟件環境(若干個文件)。批量計算資源網絡引導加載時,不同計算節點的網絡引導路徑是不同的,此時引導最慢的計算節點就是該次批量引導的性能瓶頸。為均衡系統中各個部分的引導性能,通常會為一定拓撲的計算系統配置相同個數的引導服務器,結合常用的引導模式,來盡量均衡并優化網絡引導的性能,從而實現各個計算單元引導能力的均衡化,避免產生短板效應。 1.2 影響網絡加載性能的主要因素 系統網絡引導的開銷主要取決于以下5個主要因素:1)網絡引導所使用網絡路徑的物理帶寬。批量資源引導時,不同網絡路徑段可能有不同的資源來競爭和分配網絡帶寬,經過算法分配后,在各個網絡路徑段的最小均分帶寬才是批量引導的帶寬。2)批量引導的資源數量。批量引導資源越多,越容易產生網絡擁堵和帶寬競爭現象,單點分配的帶寬也就越低。3)批量引導資源的拓撲關系。大規模系統往往采用層次化網絡結構,資源的網絡連接存在一定的拓撲結構,引導同一網絡拓撲內的批量資源,其必然產生該網絡拓撲內的帶寬競爭。4)批量引導的網絡分布算法。通過網絡引導的分布式算法可以控制網絡引導批量計算資源時在各個網絡路徑上的競爭與分配關系,均衡不同網絡路徑上的平均帶寬分配,減小木桶效應中長板與短板的剪刀差,優化批量資源引導的開銷。5)網絡引導的文件大小。在帶寬固定的情況下,引導時間與文件大小成正比關系。當系統設計組裝完成后,前3個因素就已經全部確定,最后只能通過優化文件大小和調整網絡引導的軟件分布算法優化性能。本文主要研究前4個因素。 1.3 某國產超算系統的網絡引導結構 某國產超算系統網絡引導物理連接關系拓撲結構如圖1所示。 系統由若干個計算機倉組成,每個機倉包含4個超節點,每個超節點由32個插件和1個超節點交換機(SwitchSuperNode)組成,每個插件包含8個CPU(縮寫為C)和1個插件內交換機(SwitchBoard)。假設系統中引導服務器個數為NBootServ,插件板(Board,下文縮寫為bd)個數為NBoard,超節點個數為NSuperNode。每臺外圍級聯以太交換機連接多個兼職的引導服務器,每個級聯交換機連接20臺引導服務器,級聯交換機上的剩余端口用于其他網絡服務,如此,每個引導服務器在級聯交換機的上行端口上可分配的理論帶寬與下行網絡的帶寬完全匹配。 CPU的網絡引導過程,從計算節點到引導服務器上,要經歷5個不同的網絡,其帶寬和功能如下:N1(千兆網),計算節點到插件內交換芯片的千兆網絡;N2(千兆網),插件內Switch到超節點以太交換機的千兆網絡;N3(雙萬兆網),超節點以太交換機到系統核心交換機的雙萬兆聚合網絡;N4(雙萬兆網),系統核心交換機到外圍級聯交換機的雙萬兆聚合網絡;N5(千兆網),引導服務器到外圍級聯交換機的千兆網絡。 系統中每個超節點對應1臺引導服務器。系統超節點個數與引導服務器的個數相同,即平均每個超節點1臺。每20臺引導服務器通過1臺外圍級聯交換機聚合連接到核心交換機,共8臺級聯交換機。每個外圍級聯交換機的下行端口帶寬為1000(本文所述帶寬單位均為Mb/s,下同),上行端口聚合后帶寬為20×1000。同一個超節點內同時引導的計算節點越多,其每個插件(CPU)在上行端口上分配到的理論帶寬就越低。 同時引導連續的批量資源時,任何一種算法下每個CPU的引導都要經過從N1到N5的所有路徑,因此每個CPU的實際理論帶寬是各段路徑上理論帶寬的最小值,比較最小帶寬才有意義。因此每個CPU實際能分配到的理論帶寬為BW全路徑最小帶寬=min(BWN1,BWN2,BWN3,BWN4,BWN5) 。本文最大推導了系統擴展到160個超節點時的情況。 2 兩種網絡引導分布算法 基于所分析目標系統的結構化特征,本文重點分析超節點循環分布算法(Supernode Cyclic Distribution Algorithm, SCDA)和插件循環分布算法(Board Cyclic Distribution Algorithm, BCDA),它們都是塊分布算法,其區別在于塊大小分別是超節點和插件。 2.1 超節點循環分布算法 超節點循環分布算法,是指計算系統以超節點為單位循環分布對應各引導服務器。SCDA計算節點與引導服務器邏輯映射關系如圖2所示。超節點與引導服務器的對應關系為:SuperNode0→BootServ0,SuperNode1→BootServ1,…,SuperNoden-1→BootServn-1。 此時計算系統以超節點為單位循環對應1臺引導服務器,一個超節點內的所有計算資源都對應一臺引導服務器。當NSuperNode≤NBootServ時,每個超節點可確保使用一臺獨立的引導服務器;當NSuperNode>NBootServ時,則存在1臺引導服務器服務多個超節點的情況。在大批量資源網絡引導時,引導最慢的資源成為瓶頸,為均衡系統中各個部分的引導性能,通常為每個超節點配置相同數量的引導服務器。超節點循環分布就相當于塊大小為32的插件塊循環分布模式。 超節點循環分布算法下,每個CPU獨占一條N1路徑,每個插件的資源競爭一條N2路徑,每個超節點內的資源競爭一條N3路徑,每20個連續的超節點競爭一條N4路徑,每個超節點內的資源競爭一條N5路徑。同時引導不同規模的連續計算資源時,每個CPU在對應各網絡路徑上所能分配到的理論帶寬及全路徑最小理論帶寬如表1所示。 引導單個CPU時不存在競爭關系,全路徑最小理論帶寬為BW=1000;引導一個超節點內的N(N≥1)個插件時,單CPU獲得的全路徑最小理論帶寬為BW=1000/(8×N),此時對N1、N2的競爭已經達到最大化;引導一個完整超節點時,本次引導對本超節點對應的N1、N2、N3的競爭已經達到最大化,對應N5的競爭也達到了最大化,每個CPU獲得的全路徑最小理論帶寬為BW=1000/256;引導超過一個完整超節點的連續計算資源,不同超節點的引導服務器不同,一個完整超節點對應一組N1、N2、N3、N5路徑,已經達到最大化競爭且與其他超節點無關。多超節點引導時,超節點之間不存在對同一組N1、N2、N3、N5的競爭,只存在對公共N4路徑的競爭,因此多超節點批量引導獲得的全路徑最小理論帶寬等同于引導一個完整超節點的帶寬,即BW全路徑最小帶寬=1000/256。 2.2 插件循環分布算法 插件循環分布模式下,計算系統以插件為單位循環對應1臺引導服務器,BCDA計算節點與引導服務器邏輯映射關系如圖3所示。 當Nboard≤NBootServ時,每個插件可確保獨占一臺引導服務器;當Nboard>NBootServ時,存在1臺引導服務器為多個插件提供引導服務的情況。考慮到系統中插件板個數很多,為每個插件配備獨立的引導服務器,代價過高,所以普遍情況是多個插件對應1個引導服務器。 插件循環分布算法下,每個CPU獨占一條N1路徑,每個插件競爭一條N2路徑,每個超節點內的所有插件競爭一條N3路徑,但均分到32個引導服務器上(即32條N4路徑),每5個連續超節點均分到所有的160臺引導服務器(即平均競爭8條N4路徑);對應同一臺引導服務器的來源于不同超節點的32個插件則競爭一個N5路徑。 使用插件循環分布算法時,同時引導不同規模的連續計算資源,每個CPU在對應各網絡路徑上所能分配到的理論帶寬及全路徑最小理論帶寬如表2所示。 引導單個CPU時,不存在競爭關系,CPU獲得的全路徑最小理論帶寬為BW=1000;引導一個超節點內連續的N(N≤20)個插件時,每個CPU獲得的全路徑最小帶寬為BW=1000/8,此時N2、N5路徑成為瓶頸;引導超節點內連續的N個計算插件(20 3 網絡引導開銷分析 3.1 兩種算法下的網絡引導開銷 超級計算機的映像文件通常都有定制化特征,占用空間較小。以某國產超算系統為例,經過定制優化和壓縮后,待網絡引導的文件大小約為50MB(文中計算引導開銷都是這個大小為基礎進行計算),針對最大擴展到160個超節點,使用160臺引導服務器的情況,可計算出兩種不同引導算法下幾種典型連續批量資源的引導開銷,如表3所示。超節點循環分布算法時,引導一個超節點內的部分資源時,引導開銷與資源規模成正比,完整超節點時引導開銷已經最大化,從滿超節點到整機規模,引導加載開銷一直維持在最大開銷。插件循環分布算法時,1~20個插件時,加載開銷相同,21個插件~1.25個機倉時,開銷微幅增加,大于1.25個機倉時,開銷與批量引導的資源規模成正比關系。 3.2 兩種算法下的網絡引導帶寬 根據表1~2,進一步研究兩種循環分布算法下網絡引導的理論帶寬,可以推導出在不同批量引導規模下,兩種算法在N1、N2、N3、N4、N5等各個網絡路徑段的理論帶寬、各自全路徑的最小理論帶寬以及最小帶寬對比數據。 在超節點循環分布算法下,N1路徑的帶寬始終為1000,N2路徑上帶寬始終為125,N3路徑的帶寬隨插件個數的增加而降低,從1個到32個插件時,帶寬從2500逐步降低到78.13,大于32個插件時維持在78.13;N4路徑的帶寬規律與N3類似,從1個插件到5個機倉時,帶寬從2500逐步降低到3.91,大于5機倉時維持在3.91,在1~32個插件時與N3的帶寬相同;N5路徑在1~32個插件時的帶寬是相同規模下N3帶寬的1/20,即1~32插件時帶寬為125~3.91,大于5個機倉時,帶寬維持在3.91。可見N5始終是網絡引導加載的性能瓶頸。規模大于5個連續滿機倉時,N4性能與N5性能相同,網絡競爭都達到最大化,成為性能瓶頸。該算法下,提升N4、N5尤其是N5的帶寬(即引導服務器的上網帶寬)是降低開銷、提升帶寬的有效方法,具體可通過多網卡捆綁、升級萬兆網卡等手段實現。 插件循環分布算法下,N1路徑的帶寬始終為1000,N2路徑上帶寬始終為125,N3路徑的帶寬隨插件個數的增加而降低,從1個到32個插件時,帶寬從2500逐步降低到78.13,大于32個插件時維持在78.13;N4路徑的帶寬在1~20個插件時與N3相同,從2500逐步降低到125,從21個插件到1.25個機倉時,帶寬均為125,從2.5個機倉到整機,帶寬從62.5逐步降低到3.91;N5路徑在1個插件到1.25個機倉,帶寬均為125,從2.5機倉到整機,帶寬和相同規模下N4的帶寬相同,即從62.5逐步降低到3.91。可見:1~20個插件時,N2、N5同時成為性能瓶頸;21插件~1.25機倉時,N3成為瓶頸,且與其他路徑的差異并不大;大于2.5機倉時,N4、N5同時成為瓶頸,且引導帶寬隨批量引導資源規模的增大而降低,至整機規模時帶寬最低。該算法下,系統將批量引導產生的網絡數據流量均衡到了各個網絡路徑段上,減少了不同資源同時引導產生的網絡競爭沖突。 4 網絡引導加載的性能優化方法 大規模系統映像網絡引導性能是影響系統軟環境部署性能的關鍵一環,快速引導對用戶環境構建十分重要。研究影響網絡引導開銷的主要因素可以發現,在網絡引導映像文件大小固定的前提下,網絡物理帶寬、各段網絡帶寬的均衡性、網絡引導分布式算法等是決定批量資源網絡引導性能的關鍵因素。 1)網絡物理帶寬。網絡引導所用網絡路徑的物理帶寬是影響網絡開銷的決定性因素,提高物理帶寬的主要方法有:①配置高帶寬交換機,以提高網絡通路的物理帶寬;②增加網絡引導服務器的數量、配置高帶寬網卡等,以提升引導服務的上網帶寬。該方法需要較高的成本。 2)各段網絡帶寬的均衡性。引導批量資源所經過的各網絡路徑段的性能匹配十分關鍵,因為實際有效帶寬是全路徑各網絡段的最小帶寬,因此必須高度重視各段網絡性能的匹配性設計,避免產生網絡性能瓶頸,提升容易產生性能瓶頸的網絡段最低帶寬,降低全路徑帶寬設計中的木桶效應,才能最大化系統投入的產出。該方法成本較低。 3)批量資源網絡引導的分布算法。在多層次網絡中,可通過網絡引導分布式算法控制批量資源引導時網絡數據包在各網絡路徑段的數據流量,優化對各段網絡的使用,均衡在各個網絡路徑段的流量負載和帶寬分配,減少局部網絡競爭,減小木桶效應中長板與短板的剪刀差,從而降低批量資源引導的開銷。該方法不增加系統的成本,只通過改變對網絡資源的使用方法來實現。 總體來說,網絡引導服務器的數量十分有限,而所有計算資源的網絡引導最終都要通過引導服務器的網卡來提供服務,雖然可以通過算法將局部引導的網絡流量分布到盡可能多的引導服務器上,但在批量引導大規模資源時,引導服務器的負載仍然成為焦點,成為制約網絡引導性能的最大瓶頸,對某國產超算系統在上述兩種算法的分析也說明了這一點。這也正說明了全路徑網絡性能均衡設計的重要性,否則,再高的網絡局部性能也難以發揮應有的作用。 5 結語 本文詳細分析了一種確定網絡結構大規模系統的網絡引導算法,研究了影響網絡引導性能的主要因素,對兩種算法進行了量化對比分析,并對優化網絡引導性能的主要方法進行了總結。在設計引導分布算法時,在計算節點和引導服務器之間使用更細粒度的映射算法,可以在引導部分資源時使用盡量多的引導服務器,減少對局部網絡資源的過早競爭,提升網絡引導性能。雖然不同網絡結構下的批量網絡引導性能可能會呈現出不同的規律,但都可以進行相應的量化分析研究。對于確定網絡結構的系統來說,可以通過合理的網絡算法設計、全路徑網絡帶寬均衡配置等方法來優化網絡引導性能,以實現經濟與性能的綜合平衡。事實上,對可變網絡結構的系統,也可通過類似方法,分析推算出對應網絡結構下的理論帶寬和網絡競爭情況,這無論對系統網絡設計還是網絡應用優化都具有一定的指導意義。本文并未對可變網絡拓撲結構的系統進行深入研究,也沒有對其他引導網絡架構的系統進行深入分析,這也是下一步的研究方向。 參考文獻 (References) [1] 劉沙,龔道永.超級計算機低功耗技術研究[J].高性能計算技術,2014,227(2):60-67.(LIU S, GONG D Y. Research of lowpower techniques for HPC [J]. Journal of High Performance Computing Technology, 2014, 227(3): 60-67.) [2] 毛樟根,雷鳴.一種MPP系統開工的設計與實現[J].高性能計算技術,2011,210(3):30-34.(MAO Z G, LEI M. A kind of design and practice of MPP system management [J]. Journal of High Performance Computing Technology, 2011, 210(3): 30-34.) [3] Red Hat Company. The Red Hat kickstart installation method [EB/OL]. [2018-10-20]. http://fedoraproject.org/wiki/Anaconda/Kickstart. [4] Intel Corporation. Preboot Execution Environment (PXE) specification version 2.1 [EB/OL]. [2018-10-20]. http://www.pix.net/software/pxeboot/archive/pxespec.pdf. [5] RFC 1350. The TFTP protocol (revision 2) [S/OL]. [2018-10-20]. http://www.rfc-editor.org/info/rfc1350. [6] RFC 2131. Dynamic host configuration protocol [S/OL]. [2018-10-20]. http://www.rfc-editor.org/info/rfc2131. [7] RFC 3530. Network File System (NFS) version 4 protocol [S/OL].[2018-10-20]. http://www.rfc-editor.org/info/rfc3530. [8] 劉青昆,陰元友,鄭曉薇,等.基于KickStart 的Linux 網絡安裝新模型[J].計算機工程,2008,34( 21):103-105.(LIU Q K, YIN Y Y, ZHENG X W, et al. New model to Linux network installation based on Kickstart [J]. Computer Engineering, 2008, 34(21): 103-105.) [9] 顧夢非,徐煒民.一個基于Linux 的集群部署方案[J].計算機應用與軟件,2008,25(1):102-104.(GU M F, XU W M. A deployment system for clusters based on Linux [J]. Computer Applications and Software, 2008, 25(1): 102-104.) [10] 李懷剛,邱建新.網絡安裝Linux 的技術原理分析及實現[J].計算機應用與軟件,2006,23(9):109-111.(LI H G, QIU J X. The realization and principle of Linuxs install through network [J]. Computer Applications and Software, 2006, 23(9): 109-111.) [11] 王春耕,付金輝,朱建濤.大規模集群系統中基于Image的系統安裝[J].高性能計算技術,2007,187(4):44-48.(WANG C G, FU J H, ZHU J T. Installation of operating system based on image in large scale cluster system [J]. Journal of High Performance Computing Technology, 2007, 187(4): 44-48.) [12] 周虎廷,羅茂盛,周達民.集群計算機系統部署分析與研究[J].高性能計算技術,2013,223(4):56-59.(ZHOU H T, LUO M S, ZHOU D M. Analysis and research of the deployment of cluster computer system [J]. Journal of High Performance Computing Technology, 2013, 223(4): 56-59.) [13] HENDRIKS E A, MINNICH R G, CHOI S, et al. Pink: a 1024-node single-system image Linux cluster [C]// Proceedings of the 2004 International Conference on High Performance Computing and Grid in Asia Pacific Region. Piscataway, NJ: IEEE, 2004: 454-461. [14] NGUYEN T L, LEBRE A. Virtual machine boot time model [C]// Proceedings of the 25th Euromicro International Conference on Parallel, Distributed and Network-based Processing. Piscataway, NJ: IEEE, 2017: 430-437. [15] 董小社,孫發龍,李紀云,等.基于映像的集群部署系統設計與實現[J].計算機工程,2005,31(24):132-134.(DONG X S, SUN F L, LI J Y, et al. Design and implementation of image based cluster deployment system [J]. Computer Engineering, 2005, 31(24): 132-134.)