阮利,秦廣軍,肖利民,祝明發(fā)
(1. 北京航空航天大學(xué) 軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室,北京 100191;2. 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)
高性能計(jì)算機(jī)是當(dāng)前云計(jì)算數(shù)據(jù)中心[1]、大數(shù)據(jù)計(jì)算的核心裝備。高性能計(jì)算機(jī)的研制水平、生產(chǎn)能力及應(yīng)用程度是國家綜合國力、信息化建設(shè)、數(shù)據(jù)和計(jì)算安全保障能力的重要體現(xiàn),是世界各國特別是發(fā)達(dá)國家爭奪的戰(zhàn)略制高點(diǎn)[2]。美國國防部的“高效能計(jì)算系統(tǒng)”(HPCS, high productivity computing system)[3]研究計(jì)劃首次提出了以“高效能”作為新一代高性能計(jì)算機(jī)研制的目標(biāo)。自此,美國的 HPCS以及我國的“863”計(jì)劃“高效能計(jì)算機(jī)系統(tǒng)研制與關(guān)鍵技術(shù)研究”重大專項(xiàng)等項(xiàng)目均已相繼開展了針對HPCS的研究。
目前,科學(xué)計(jì)算、云計(jì)算和大數(shù)據(jù)計(jì)算等新應(yīng)用對計(jì)算性能無止境的需求推動(dòng)了高性能計(jì)算機(jī)系統(tǒng)峰值性能的迅速提高。然而,在高效能計(jì)算機(jī)峰值性能和系統(tǒng)規(guī)模不斷擴(kuò)大的同時(shí),如何有效解決國外處理器帶來的可靠性和安全性,由于應(yīng)用多樣性、系統(tǒng)規(guī)模顯著增大、復(fù)雜的體系結(jié)構(gòu)等帶來的性能功耗比、性能體積比和可擴(kuò)展性等高效能瓶頸問題,是高效能計(jì)算機(jī)研究領(lǐng)域近期和未來亟待解決的熱點(diǎn)和難點(diǎn)問題之一。首先,高性能計(jì)算機(jī)對高密度緊耦合計(jì)算資源的需求變得極為迫切。例如,在2013年11月公布的Top 500排名中,排名第一的Tianhe-2的Linpack能達(dá)到33 862.7 Tflop/s,擁有3 120 000個(gè)處理核,1 024 000 GB內(nèi)存[4]。此外,因?yàn)楦咝阅苡?jì)算機(jī)在系統(tǒng)功耗方面也面臨嚴(yán)峻的挑戰(zhàn)。例如,據(jù)英特爾統(tǒng)計(jì),數(shù)據(jù)中心25%的成本是耗電。Top 500排名第二的Titan功耗為8 209 kW,而Tianhe-2更高達(dá)17 808 kW。另一個(gè)是高性能計(jì)算機(jī)體積問題。從數(shù)據(jù)中心的占地面積來看,Google在美國俄勒岡州哥倫比亞河畔建設(shè)的數(shù)據(jù)中心占地面積達(dá)到10×104平方公尺,總共擁有8 180個(gè)機(jī)柜[5,6]。
處理器作為高效能云計(jì)算節(jié)點(diǎn)的核心處理單元,是達(dá)成安全性、高性能、低功耗等高效能指標(biāo)的關(guān)鍵。龍芯3A處理器[7,8]是中國科學(xué)院計(jì)算技術(shù)研究所自主研制的一款面向高性能計(jì)算的片上多處理器,采用65 nm生產(chǎn)工藝,在1 GHz主頻下可實(shí)現(xiàn)16 Gflop的運(yùn)算能力,功耗約10 W,性能功耗比為1.6。研究表明,相對于主流的 Intel和AMD處理器,新興的以龍芯 3A和 3B為代表的龍芯 3系列處理器在性能功耗比等高效能指標(biāo)和自主創(chuàng)新等上有較明顯的綜合優(yōu)勢。此外,從自主創(chuàng)新和安全可控的角度來看,使用國產(chǎn)處理器作為高效能云計(jì)算節(jié)點(diǎn)的核心部件可扭轉(zhuǎn)高效能計(jì)算機(jī)長期以來依賴從國外進(jìn)口處理器的被動(dòng)局面,對提高我國高性能計(jì)算機(jī)的自主研發(fā)水平、維護(hù)國家安全等都具有重要意義。另一方面,計(jì)算節(jié)點(diǎn)是高性能計(jì)算機(jī)體系結(jié)構(gòu)中除加速節(jié)點(diǎn)、主機(jī)單元、通信網(wǎng)絡(luò)等外的核心部件之一,計(jì)算機(jī)節(jié)點(diǎn)的高效能已成為整機(jī)“高效能”目標(biāo)能否達(dá)成的關(guān)鍵。目前在研和投入使用的一批大規(guī)模高性能計(jì)算機(jī)均十分注重計(jì)算節(jié)點(diǎn)高效能問題的突破,代表性的系統(tǒng)主要包括:Gary Titan[4],日本富士通 K 計(jì)算機(jī)[9]、Tianhe-1A、Jaguar[10]、Cray 的 Cascade 和 Baker,IBM 的 Roadrunner等[11~18]。可見,研究一種具有高性能功耗比、高密度和較強(qiáng)可擴(kuò)展性的、基于國產(chǎn)龍芯多核處理器的高效能云計(jì)算節(jié)點(diǎn)具有非常重要而深遠(yuǎn)的研究意義和工業(yè)實(shí)踐價(jià)值。
本文關(guān)注于云計(jì)算節(jié)點(diǎn)的高效能軟硬件設(shè)計(jì)和實(shí)現(xiàn)問題,提出了一種基于龍芯3A多核處理器的云計(jì)算節(jié)點(diǎn)機(jī)的軟硬件設(shè)計(jì)和實(shí)現(xiàn)方法。
基于龍芯3A多核處理器的高效能云計(jì)算節(jié)點(diǎn)的基本設(shè)計(jì)思路為:作為高性能計(jì)算機(jī)體系結(jié)構(gòu)中除加速節(jié)點(diǎn)、主機(jī)單元、通信網(wǎng)絡(luò)等外的核心部件之一,高效能云計(jì)算節(jié)點(diǎn)主要承載大規(guī)?;虺笠?guī)模的計(jì)算密集型應(yīng)用任務(wù),是超級計(jì)算能力的主要實(shí)現(xiàn)者,主要應(yīng)對高效能目標(biāo)中的高性能、低功耗、高密度、低成本和高安全等挑戰(zhàn)。在拓?fù)浣Y(jié)構(gòu)上,計(jì)算節(jié)點(diǎn)總體由4個(gè)SMP構(gòu)成。從處理器角度來看,節(jié)點(diǎn)在1U高度的Rack機(jī)箱中集成16顆龍芯3四核處理器,構(gòu)成一個(gè)cc-NUMA結(jié)構(gòu)的系統(tǒng),系統(tǒng)實(shí)現(xiàn)高性能功耗比、高性能體積比和高集成度等目標(biāo)。
處理器是高效能云計(jì)算節(jié)點(diǎn)的核心運(yùn)算單元,處理器的選擇和互連方法是本文計(jì)算節(jié)點(diǎn)設(shè)計(jì)中的關(guān)鍵。在處理器的選擇上,本文選取的龍芯 3A處理器總體具有如下特征:每個(gè)龍芯3A片內(nèi)集成4個(gè)64 bit的四發(fā)射超標(biāo)量主頻1 GHz的GS464高性能處理器核。處理器預(yù)留的互連端口決定了高效能云計(jì)算節(jié)點(diǎn)互連技術(shù)的設(shè)計(jì)。對于龍芯3A多核處理器來說,每個(gè)處理器有2個(gè)16 bit HT端口,而每個(gè)端口可以拆分成 2個(gè) 8 bit端口使用(HT0和HT1),因此共有4個(gè)可用的8 bit HT端口(HT00和H01分別表示HT0的低8 bit和高8 bit,HT10和HT11分別表示HT1的低8 bit和高8 bit)。基于龍芯3A的HT互連端口的配置,計(jì)算節(jié)點(diǎn)通過每4顆處理器互連即可自動(dòng)構(gòu)成一個(gè) cc-NUMA結(jié)構(gòu)的SMP。
為便于對本文計(jì)算節(jié)點(diǎn)設(shè)計(jì)和實(shí)現(xiàn)技術(shù)做進(jìn)一步詳細(xì)介紹,首先給出如下定義。
定義 1 基于龍芯3A多核處理器的高效能云計(jì)算節(jié)點(diǎn)Γ(n, r, m)可定義為一個(gè)二元組Γ(n, r, m)=< Sn,r, Cm>。其中, Sn,r是SMP集合,n表示計(jì)算節(jié)點(diǎn)中所含的SMP的個(gè)數(shù),即 Sn,r集合中的元素個(gè)數(shù);r表示每個(gè)基本SMP單元包含的處理器個(gè)數(shù),即 Sn,r集合中每個(gè)元素包含的處理器個(gè)數(shù)。Cm是處理器間直連端口集合;m表示每個(gè)處理器可用的直連端口數(shù)目。
具體地,Γ(n, r, m)表示該計(jì)算節(jié)點(diǎn)是由n個(gè)包含r個(gè)處理器,且每個(gè)處理器的可用直連端口數(shù)為m的SMP組成的計(jì)算節(jié)點(diǎn)。例如, Γ(4,4,4)=<S4,4,C4>,就表示計(jì)算節(jié)點(diǎn) Γ ( 4,4,4)在體系結(jié)構(gòu)上由4個(gè)SMP組成,每個(gè)SMP包含4個(gè)處理器,每個(gè)處理器有4個(gè)互連端口。也即表示了一個(gè)16路4SMP的計(jì)算節(jié)點(diǎn)。對 Sn,r和 Cm更詳細(xì)的定義如定義 2~定義 4所示。
定義2 計(jì)算節(jié)點(diǎn)的SMP集合定義為 Sn,r={si},n - 1 ≥ i≥ 0 。其中, si表示第i個(gè)SMP單元。
定義3 給定 Sn,r,第i個(gè)SMP單元定義為 si={ pi,j},r - 1 ≥ j ≥ 0 。其中, pi,j表示 si中的第j個(gè)處理器。r表示每個(gè)基本SMP單元 si包含r個(gè)處理器。
定義 4 給定 Sn,r的處理器間直連端口集定義為Cm= { ci,j,k},m - 1 ≥ k ≥ 0 ,其中,ci,j,k表示 Sn,r中的SMP單元 si的第j個(gè)處理器 pi,j的第k個(gè)直連端口。n和r如定義2和定義3所示,m表示每個(gè)處理器可用的直連端口數(shù)目,端口從正南方向開始順時(shí)針編號。在定義4中,處理器互連的具體拓?fù)浣Y(jié)構(gòu)與 Cm的值密切相關(guān),m值不同,互連規(guī)則不同,得到的拓?fù)浣Y(jié)構(gòu)也將不同。
基于定義 1~定義 4,本文研制的基于龍芯 3A多核處理器的云計(jì)算節(jié)點(diǎn)表示為 Γ ( 4,4,4),其邏輯結(jié)構(gòu)布局如圖1所示。具體地,該計(jì)算節(jié)點(diǎn)由4個(gè)SMP組成,每個(gè)SMP包含4個(gè)處理器,每個(gè)處理器有4個(gè)互連端口,也可看作一個(gè)由16個(gè)處理器組成的二維四元的mesh結(jié)構(gòu)。圖1中, pi,j表示龍芯 3A 處理器。“chipset”表示芯片組,用于連接USB、IDE、Ethernet等外部接口;“InfiniBand”表示InfiniBand互連設(shè)備,用于連接InfiniBand網(wǎng)絡(luò)。其中,SMP內(nèi)部通過HT0互連,SMP間通過HT1互連。 Γ ( 4,4,4)總體相當(dāng)于一個(gè)基于 HT總線的4SMP板上機(jī)群。
本文所研制的高效能云計(jì)算節(jié)點(diǎn)單節(jié)點(diǎn)上具有16個(gè)處理器,如何將這16個(gè)處理器進(jìn)行互連并形成一個(gè)統(tǒng)一的計(jì)算平臺(tái),這是系統(tǒng)設(shè)計(jì)首要解決的關(guān)鍵技術(shù)問題。2.1節(jié)重點(diǎn)介紹了計(jì)算節(jié)點(diǎn)的核心組成部件和邏輯結(jié)構(gòu)。本節(jié)將重點(diǎn)介紹本文所研制的Γ ( 4,4,4) (16路4 SMP)的互連方法,并討論其性質(zhì)。
HyperTransport(HT)是一種為主板上的集成電路互連而設(shè)計(jì)的端到端總線,可用于處理器的互連和處理器的I/O。龍芯3A處理器集成了HT接口,在總線寬度為32 bit時(shí)HT總線帶寬為6.4 Gbit/s。因此,HT 可作為主板級CPU 之間及CPU與芯片組的互連總線。
由龍芯 3A組成的 2D mesh結(jié)構(gòu)的計(jì)算節(jié)點(diǎn)Γ ( n,4,4),其處理器間互連總體包括 SMP組內(nèi)與SMP組間2種。下面將詳細(xì)介紹互連規(guī)則。
定義5 對計(jì)算節(jié)點(diǎn)Γ(n,4,4),其中,n=xy,x≥1,y ≥1,如x表示橫向(或x軸方向)的SMP個(gè)數(shù),y表示縱向(或 y軸方向)的 SMP個(gè)數(shù)。其2D mesh構(gòu)圖規(guī)則如下所示。
規(guī)則1 SMP內(nèi)部處理器互連。在 si內(nèi), pi,j與pi,k若滿足( j + 1 )mod4= k ,則 pi,j與 pi,k直接互連,且互連端口分別為 ci,j,h和1
規(guī)則2 SMP間處理器互連。在 sk與 sj間,pk,i與 pj,i,滿足 j + 1 = k (在x軸方向),或 j+ x = k (在y軸方向),則 pj,i與 pk,i直接互連,且互連端口分別為cj,i,h1和
規(guī)則1定義了SMP內(nèi)部的處理器間互連方式。規(guī)則2定義了SMP間的互連方式, sk的編碼是從左到右,從上到下,按規(guī)則2遞增, sk和 sj的互連端口號差2個(gè)。
按照規(guī)則1和規(guī)則2,圖2(c)表示了本文高效能節(jié)點(diǎn)的互連方式。圖2(a)和圖2(b)示例了由龍芯3A組成的 2D mesh結(jié)構(gòu)的高效能云計(jì)算節(jié)點(diǎn)Γ ( n,4,4)的互連擴(kuò)展過程。
性質(zhì)1 按定義5,Γ(n,4,4)是以Γ (1 ,4,4)為基元的mesh結(jié)構(gòu)。
證明 定義5的規(guī)則2橫向節(jié)點(diǎn)編號按1遞增,縱向節(jié)點(diǎn)編號按x遞增,構(gòu)成典型的2D mesh結(jié)構(gòu)。Γ(n,4,4)的每個(gè)節(jié)點(diǎn)都是4路SMP,因此,Γ(n,4,4)是以 Γ (1 ,4,4)為基元的mesh結(jié)構(gòu)。
證畢。
性質(zhì)2 定義5中,Γ(n,4,4)的處理器個(gè)數(shù)為4n。
證明 按照定義1,Γ(n, r, m)中的n為SMP個(gè)數(shù),按照定義5,Γ(n,4,4)中每個(gè)SMP都是4路,所以Γ(n,4,4)的總處理器個(gè)數(shù)為4n。證畢。
性質(zhì)3 定義5中,Γ(n,4,4)的處理器規(guī)模按4的倍數(shù)遞增。
證明 按定義5和性質(zhì)1,Γ(n,4,4)無論在橫向還是縱向,或者雙向擴(kuò)展,都將至少增加一個(gè)Γ (1 ,4,4),而 Γ (1 ,4,4)是一個(gè)4路的SMP,因此,Γ( n,4,4)的規(guī)模按4的倍數(shù)遞增。
證畢。
定理1 Γ(n,4,4)中任意處理器間最長通信距離為 x + y- 2 。
證明 按性質(zhì)1,Γ(n,4,4)是mesh結(jié)構(gòu),mesh結(jié)構(gòu)的任意兩點(diǎn)間最長距離等于 x + y- 2 。又因?yàn)棣?( n,4,4)的每個(gè)節(jié)點(diǎn)都是 4路 SMP,SMP內(nèi)的 4路處理器通過內(nèi)存共享進(jìn)行通信,通信距離通常定義為0。因此,Γ(n,4,4)中任意處理器間最長距離為 x + y- 2 。
證畢。
綜上可見,本文所研制的高效能云計(jì)算節(jié)點(diǎn)總體具有如下性質(zhì):龍芯3A處理器間通過HT總線互連,在定義5的規(guī)則2下,(,4,4)nΓ的SMP間互連形成2D mesh結(jié)構(gòu),因此理論上具有mesh結(jié)構(gòu)的所有特性,適用 mesh結(jié)構(gòu)的路由策略。在實(shí)際工程中,需根據(jù)具體需求和工藝制造特性確定節(jié)點(diǎn)的處理器規(guī)模。
基于第2節(jié)的邏輯結(jié)構(gòu)和第3節(jié)的互連結(jié)構(gòu),本文研制的高效能云計(jì)算節(jié)點(diǎn)總體包含3套網(wǎng)絡(luò),分別是板上HT總線網(wǎng)絡(luò)、節(jié)點(diǎn)間的InfiniBand網(wǎng)絡(luò)和吉比特以太網(wǎng)。本節(jié)將根據(jù)龍芯處理器HT總線特性重點(diǎn)介紹基于HT總線的通信機(jī)制。
如圖1和定義5所示,高效能云計(jì)算節(jié)點(diǎn)的四組is都是cc-NUMA結(jié)構(gòu)的SMP,因此,路由分SMP內(nèi)和SMP間兩層。如圖2(a)所示,在SMP內(nèi),各處理器通過HT總線互連,4個(gè)處理器具有共同的內(nèi)存空間,因此,SMP內(nèi)的處理器間通過共享內(nèi)存通信,故通??烧J(rèn)為 SMP內(nèi)的處理器間通信距離為0。SMP間可通過HT總線傳遞數(shù)據(jù),通信規(guī)則基于2D mesh結(jié)構(gòu)進(jìn)行。
龍芯處理器的4個(gè)SMP間通過地址映射實(shí)現(xiàn)隱式通信,具體的通信過程為:處理器識別訪存地址,如果地址在本地SMP的內(nèi)存空間,則通過共享內(nèi)存通信;如果地址在地址映射的范圍內(nèi),則由處理器負(fù)責(zé)路由到相應(yīng)的其他SMP內(nèi)存空間去。具體地,通過地址映射將圖1配成了內(nèi)外2個(gè)閉環(huán)通路,外環(huán)按:
順序形成順時(shí)針環(huán)路,內(nèi)環(huán)按:
順序形成逆時(shí)針環(huán)路,如圖3所示。
在上述通信系統(tǒng)下,假定處理器 pj,i要訪問pk,h,并用 o1表示外環(huán), o2表示內(nèi)環(huán),則路由算法偽碼如圖4所示。
圖4 路由算法偽代碼
圖4算法的基本原理為:如果源處理器與目標(biāo)處理器在同一個(gè) SMP內(nèi),則通過共享內(nèi)存通信;否則優(yōu)先通過內(nèi)環(huán)通信,因?yàn)閮?nèi)環(huán)相比外環(huán)和 IB具有更短的通信路徑。當(dāng)內(nèi)環(huán)路忙時(shí),則選擇通過外環(huán)通信;否則,繞道InfiniBand網(wǎng)絡(luò)進(jìn)行通信。
在主板設(shè)計(jì)上,高效能云計(jì)算節(jié)點(diǎn)系統(tǒng)具有16個(gè)處理器,組成4個(gè)SMP,考慮到電路板制造和可調(diào)性等工藝問題,不能將系統(tǒng)設(shè)計(jì)成單塊 16路的大主板。因此,計(jì)算節(jié)點(diǎn)被設(shè)計(jì)成對稱的兩塊主板,每板包含8路2SMP,兩板通過對插組成一個(gè)1 U的計(jì)算節(jié)點(diǎn)。 8路主板邏輯圖如圖5所示。
在部件組成上,高效能云計(jì)算節(jié)點(diǎn)系統(tǒng)總體基于16個(gè)龍芯3A處理器,每個(gè)處理器支持4條內(nèi)存條。16個(gè)處理器放在1 U的標(biāo)準(zhǔn)高度和寬度的計(jì)算節(jié)點(diǎn)內(nèi)。系統(tǒng)還支持4個(gè)QDR Infiniband高速網(wǎng),4個(gè)吉比特以太網(wǎng),另外支持VGA、串口和USB等。
在布局上,單板上有8個(gè)龍芯3A處理器,32條內(nèi)存條,2個(gè)IO芯片,2個(gè)吉比特以太網(wǎng)接口以及VGA、USB和串口。每顆龍芯處理器支持4個(gè)內(nèi)存條。IO芯片對外擴(kuò)展Infiniband、以太網(wǎng)、VGA、USB和串口。
單主板的電子元器件多,但是主要的部件是處理器和內(nèi)存,在布局上需重點(diǎn)考慮把這兩類部件的布局和電子線路規(guī)劃好。考慮到處理器之間的互連結(jié)構(gòu)和各自連接內(nèi)存條,因此,在布局上采用了規(guī)則的方陣式布局,即處理器放在中間,內(nèi)存條放置在兩側(cè)。這樣的布局能夠使得處理器之間的高速信號連接線路最短,同時(shí)處理器與內(nèi)存的連接線路也最短,電路信號上保證主板運(yùn)行的可靠性。
在層數(shù)設(shè)計(jì)上,電路板采用12~20層的設(shè)計(jì),以解決高速、低速數(shù)字信號和電源等模擬信號之間的干擾,從PCB印制板上首先保證信號的完整性。
在散熱上,考慮到內(nèi)存條和處理器的散熱需求,因此采取如下布局方式:將處理器放在中間,較高的內(nèi)存條放在兩側(cè),所有的內(nèi)存排列采取前后走向。其余的芯片如IO放置在不影響通道的位置。
本節(jié)介紹其他關(guān)鍵子系統(tǒng)的設(shè)計(jì)方法。
高帶寬 I/O子系統(tǒng):在系統(tǒng)架構(gòu)和主板設(shè)計(jì)中充分考慮了較高的帶寬性能和較高的擴(kuò)展能力。高帶寬I/O子系統(tǒng)包括集成在主板上的高速Infiniband、吉比特以太網(wǎng)和I/O板卡槽。每個(gè)計(jì)算節(jié)點(diǎn)集成了4個(gè)QDR的高速Infiniband口,4個(gè)吉比特以太網(wǎng),還有4個(gè)PCIE×8的I/O卡槽,可用于安裝I/O板卡。這些對外的系統(tǒng)接口保證了對外高I/O帶寬,主板集成4個(gè)QDR Infiniband接口,綜合傳輸帶寬達(dá)到160 Gbit/s。總體具有對外高帶寬的網(wǎng)絡(luò),并可以通過外部的交換機(jī)連接成一個(gè)更大的系統(tǒng),可見,高效能云計(jì)算節(jié)點(diǎn)具有很好的擴(kuò)展性。
互連子系統(tǒng):為滿足系統(tǒng)的互連功能和良好的擴(kuò)展性,每個(gè)計(jì)算節(jié)點(diǎn)設(shè)計(jì)了 4個(gè) QDR的高速Infiniband口,4個(gè)吉比特以太網(wǎng),還有4個(gè)PCIE×8的I/O卡槽,可用于安裝I/O板卡對外網(wǎng)絡(luò)連接。Infiniband網(wǎng)絡(luò)接口可以連接到 Infiniband交換機(jī)上,組成高速的計(jì)算網(wǎng)絡(luò)。吉比特以太網(wǎng)接口可以連接到以太網(wǎng)交換機(jī)上組成管理網(wǎng)絡(luò),同時(shí)也可以作為計(jì)算網(wǎng)絡(luò)的后備使用。主板上的I/O板卡可以連接存儲(chǔ)網(wǎng)絡(luò)。
存儲(chǔ)子系統(tǒng):存儲(chǔ)子系統(tǒng)設(shè)計(jì)包含本地存儲(chǔ)和遠(yuǎn)程存儲(chǔ),其中,遠(yuǎn)程存儲(chǔ)是通過 I/O卡對外連接實(shí)現(xiàn)的,本地存儲(chǔ)是與主板直接連接的硬盤,用于安裝操作系統(tǒng)和保存本地的數(shù)據(jù)。同時(shí),主板上的每個(gè)處理器支持4個(gè)內(nèi)存條,作為板級的存儲(chǔ),用于計(jì)算數(shù)據(jù)的保存。這3部分組成了每個(gè)計(jì)算節(jié)點(diǎn)的存儲(chǔ)系統(tǒng)。在由多個(gè)計(jì)算節(jié)點(diǎn)組成的系統(tǒng)中,I/O系統(tǒng)和存儲(chǔ)可合為一體,直接連接到高速Inifiniband網(wǎng)絡(luò)上,提高I/O的帶寬和訪問存儲(chǔ)的速度。
電源子系統(tǒng):電源系統(tǒng)包括主電源模塊、電源分配板和主板上的 DC-DC模塊。系統(tǒng)采用寬電壓設(shè)計(jì),支持110~240 V、50~60 Hz寬電壓輸入。
高效能系統(tǒng)軟件:高效能系統(tǒng)軟件是高性能計(jì)算節(jié)點(diǎn)發(fā)揮其效能的關(guān)鍵??傮w采用自下而上分 3層來考慮系統(tǒng)軟件:節(jié)點(diǎn)層系統(tǒng)軟件、整機(jī)系統(tǒng)軟件層、應(yīng)用支撐軟件層。
具體地,如圖6所示,各層功能劃分和詳細(xì)設(shè)計(jì)如下所示。
圖6 高效能系統(tǒng)軟件層次結(jié)構(gòu)
節(jié)點(diǎn)系統(tǒng)軟件層:單節(jié)點(diǎn)上承載的系統(tǒng)軟件,主要包括基于龍芯3A的節(jié)點(diǎn)操作系統(tǒng)及其核心擴(kuò)展以及節(jié)點(diǎn)提供的用戶編程工具、環(huán)境和庫。
整機(jī)系統(tǒng)軟件層:整機(jī)(多節(jié)點(diǎn))層次所需的系統(tǒng)軟件。
應(yīng)用支撐軟件層:支撐應(yīng)用編程的環(huán)境和工具軟件。
筆者實(shí)現(xiàn)了基于龍芯3A多核處理器的高效能云計(jì)算節(jié)點(diǎn),其整機(jī)與機(jī)箱實(shí)物圖如圖7所示。主板為對稱的上下2個(gè)PCB板,由四對板間連接器互連,電源位于主板右側(cè),風(fēng)扇位于主板后端,后面板提供2個(gè)IB接口,前面板提供網(wǎng)卡接口、USB接口以及一塊含電源開關(guān)。系統(tǒng)為每個(gè)龍芯3A處理器的每個(gè)DDR2通道各提供一個(gè)DDR2 DIMM內(nèi)存,位于芯片同側(cè),因此板上每2個(gè)內(nèi)存條為一個(gè)處理器提供服務(wù)?;谏鲜龇治?,所實(shí)現(xiàn)的高效能云計(jì)算節(jié)點(diǎn)的關(guān)鍵技術(shù)特征概括如下。
板上機(jī)群:單計(jì)算節(jié)點(diǎn)包含兩塊完全相同的PCB,每個(gè)PCB可分為左右近似對稱的兩部分,其中每部分運(yùn)行一個(gè)操作系統(tǒng)。由于PCB間采用了高速接插件,因此從整個(gè)節(jié)點(diǎn)上看,對插的兩塊PCB可作為擁有4個(gè)操作系統(tǒng)的板上機(jī)群系統(tǒng)。
高密度高安全可控計(jì)算節(jié)點(diǎn):每個(gè)節(jié)點(diǎn)包含國產(chǎn)龍芯16路處理器,處理器之間可通過Hyper Transport互連。單節(jié)點(diǎn)共包含16路處理器,雖然單節(jié)點(diǎn)上的 4個(gè)操作系統(tǒng)每個(gè)都只包含其中的4路處理器,但龍芯 3A處理器的可擴(kuò)展性允許節(jié)點(diǎn)內(nèi)部16路處理器互連,構(gòu)成4×4的二維mesh結(jié)構(gòu),并可利用 BIOS指定處理器間訪問的路由配置。
多種互連方式:主板選用 InfiniBand公司MT25408芯片實(shí)現(xiàn)系統(tǒng)間高速互連,選用RTL8211B芯片結(jié)合nVidia南橋芯片的Mac層實(shí)現(xiàn)吉比特以太網(wǎng)互連,并且處理器的HT1總線可用于單節(jié)點(diǎn)內(nèi)跨系統(tǒng)多處理器間互連,實(shí)現(xiàn)了多種互連方式。
為了測試基于龍芯3A多核處理器的高效能云計(jì)算節(jié)點(diǎn)的性能,如表1測試方法所示,其中“★”表示該行所對應(yīng)的測試用例對該指標(biāo)進(jìn)行了測試,“—”表示該行所對應(yīng)的測試用例對該指標(biāo)未進(jìn)行測試。本文對所實(shí)現(xiàn)的系統(tǒng)采用了3個(gè)測試用例,從功耗體積、通信性能和Linpack性能3個(gè)目標(biāo)進(jìn)行了實(shí)驗(yàn)。在測試用例和度量指標(biāo)選取上,對測試用例1,選取常用的功耗和體積2個(gè)常用指標(biāo)。對測試用例2,分別從點(diǎn)對點(diǎn)通信和MPI全局通信2個(gè)角度選取帶寬和延遲進(jìn)行了測試。對測試用例 3分別從Linpack性能和可擴(kuò)展性進(jìn)行測試分析。本實(shí)驗(yàn)章節(jié)的部分?jǐn)?shù)據(jù)是對論文成果[8]的數(shù)據(jù)擴(kuò)展。
為表述方便,對后續(xù)的章節(jié)將用到的數(shù)學(xué)符號的含義說明如表2所示。
實(shí)驗(yàn)1 計(jì)算節(jié)點(diǎn)效能
單節(jié)點(diǎn)機(jī)的測試結(jié)果如表3所示。表3主要從單節(jié)點(diǎn)的 CPU數(shù)目、功耗、性能、體積角度反映了基于龍芯3A的高效能云計(jì)算節(jié)點(diǎn)的效能。
表1 測試方法概覽
表2 簡寫數(shù)學(xué)符號含義
表3 單節(jié)點(diǎn)的效能
表4 基于不同處理器構(gòu)建1PF高效能計(jì)算機(jī)系統(tǒng)的比較
基于龍芯3A的節(jié)點(diǎn)機(jī)的情況如表4所示,表4估算了分別用Intel 8核、AMD 6核、龍芯3A和龍芯3B構(gòu)建1 Pflops計(jì)算單元的功耗和體積。從表4中可以看出,如采用龍芯3B處理器構(gòu)建1 Pflops計(jì)算單元,計(jì)算單元總功耗約為 477 KW,體積約占13個(gè)42U工業(yè)機(jī)柜??梢?,相對于同期主流的x86處理器,用龍芯3A(尤其是龍芯3B)處理器構(gòu)建計(jì)算單元在功耗和體積方面有明顯優(yōu)勢,能較好地應(yīng)對高效能目標(biāo)中的低功耗和高密度挑戰(zhàn)。
實(shí)驗(yàn)2 通信性能
為了便于對基于HT互連的通信模塊的時(shí)延性能進(jìn)行對比分析,本文還在相同條件下使用NetPIPE軟件測試了IB的通信時(shí)延和帶寬。針對IB高速網(wǎng)卡的通信時(shí)延測試主要分為兩部分:一部分是測試系統(tǒng)的CPU直接與IB網(wǎng)卡相連,一部分是測試系統(tǒng)的CPU與IB網(wǎng)卡間接相連;針對IB高速網(wǎng)卡的通信帶寬測試主要分為兩部分:分別是通信系統(tǒng)的CPU均直接與IB網(wǎng)卡相連以及通信系統(tǒng)的CPU均與IB網(wǎng)卡間接相連。
使用NetPIPE 測試軟件,在度量指標(biāo)上測試不同計(jì)算單元間的點(diǎn)到點(diǎn)通信延遲與帶寬。在測試互連場景上,對3種互連通信場景進(jìn)行測試,具體包括同一虛擬子網(wǎng)內(nèi)2個(gè)計(jì)算節(jié)點(diǎn),同一IB子網(wǎng)內(nèi)2個(gè)計(jì)算節(jié)點(diǎn)和相鄰虛擬子網(wǎng)內(nèi)2個(gè)計(jì)算節(jié)點(diǎn)間。測試結(jié)果如表5所示。
表5 點(diǎn)到點(diǎn)通信延遲和帶寬
使用IMB 2.2測試軟件,對節(jié)點(diǎn)機(jī)不同規(guī)模的計(jì)算節(jié)點(diǎn)通過16 384 byte的SendRecv、Allreduce、Reduce、Allgather、Allgatherv、Alltoall、Bcast測試,得到相應(yīng)規(guī)模的帶寬或延遲,通過Barrier測試,得到同步延遲、MPI全局性能測試結(jié)果如表6所示。
表6 MPI全局通信帶寬和延遲
實(shí)驗(yàn)3 系統(tǒng)Linpack性能
16個(gè)CPU(64 核)規(guī)模的系統(tǒng)和矩陣階數(shù)從10 000增加到48 000時(shí),Linpack浮點(diǎn)運(yùn)算性能如圖8所示,在64核時(shí),性能達(dá)到44.5 Gflop。
對原型系統(tǒng)的實(shí)驗(yàn)和測試表明,基于龍芯3多核處理器的高效能節(jié)點(diǎn)機(jī)單節(jié)點(diǎn)具有每秒0.256萬億次浮點(diǎn)運(yùn)算能力(Tflops),單一機(jī)柜可容納42個(gè)1 U節(jié)點(diǎn)機(jī)箱,672顆CPU,2 688個(gè)CPU核(672×4),總體具有高密度、高性能功耗比,基于自主知識產(chǎn)權(quán)處理器和安全可控性等優(yōu)點(diǎn)。
云計(jì)算節(jié)點(diǎn)是高性能計(jì)算機(jī)體系結(jié)構(gòu)中除加速節(jié)點(diǎn)、主機(jī)單元、通信網(wǎng)絡(luò)等外的核心部件之一,計(jì)算機(jī)節(jié)點(diǎn)的高效能已成為了整機(jī)“高效能”目標(biāo)能否達(dá)成的關(guān)鍵。首先,目前在研和投入使用的一批大規(guī)模高性能計(jì)算機(jī)均十分注重計(jì)算節(jié)點(diǎn)高效能問題的突破,代表性的系統(tǒng)主要包括:Cray Titan[4]、日本富士通K計(jì)算機(jī)[9]、Tianhe-1A、Jaguar[10]、Cray的Cascade和 Baker、IBM 的Roadrunner等[11~18]。其次,從處理器角度來看節(jié)點(diǎn)機(jī),近年來隨著多核處理器的興起,目前主流的高效能計(jì)算機(jī)節(jié)點(diǎn)普遍呈現(xiàn)采用多路多核技術(shù)的趨勢。但現(xiàn)有技術(shù)在路數(shù)上,尤以4路和8路居多,8路以上高密度的比較缺乏。再次,在處理器選型上,現(xiàn)有高效能云計(jì)算節(jié)點(diǎn)機(jī)仍然主要采用國外處理器居多,在基于國產(chǎn)(如龍芯3A多核)處理器的高密度的計(jì)算節(jié)點(diǎn)的實(shí)踐上相對較為稀少甚至缺乏。文獻(xiàn)[8]中概要介紹了計(jì)算節(jié)點(diǎn)在設(shè)計(jì)和研制中的一些關(guān)鍵問題及其硬件方面的設(shè)計(jì)(包括系統(tǒng)總體結(jié)構(gòu)以及處理器互連、時(shí)鐘、上電與復(fù)位、內(nèi)存、主板和結(jié)構(gòu)等子系統(tǒng))方法,但文獻(xiàn)[8]更多是從高性能計(jì)算角度,并沒有從云計(jì)算角度考察,尤其是并沒有對云計(jì)算節(jié)點(diǎn)機(jī)的邏輯結(jié)構(gòu)、互連規(guī)則、通信方法和軟件系統(tǒng)等給出更為細(xì)致的理論建模和詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)等的介紹,本文工作是對文獻(xiàn)[8]的進(jìn)一步擴(kuò)展和系統(tǒng)化。基于現(xiàn)有研究存在的問題,本文介紹了一種基于龍芯 3A的高效能云計(jì)算節(jié)點(diǎn)機(jī)軟硬件設(shè)計(jì)和實(shí)現(xiàn)方法。所實(shí)現(xiàn)的基于龍芯 3A處理器的節(jié)點(diǎn)機(jī)是一款16路1 U機(jī)架式計(jì)算節(jié)點(diǎn),占地0.46 m2,峰值性能256 GFlops,峰值功耗不超過300 W/U,計(jì)算/功耗比約0.853 GFlops/W,如表7所示,與IBM等一些主流高性能計(jì)算節(jié)點(diǎn)相比,其具有高密度、低占地的顯著特點(diǎn),在處理器3A升級為 3B和軟件進(jìn)一步優(yōu)化后,龍芯節(jié)點(diǎn)機(jī)的高性能、低功耗特點(diǎn)在實(shí)際運(yùn)行中將體現(xiàn)得更為明顯。
表7 相關(guān)云計(jì)算節(jié)點(diǎn)機(jī)的比較
本節(jié)將重點(diǎn)對基于龍芯多核處理器的高效能云計(jì)算節(jié)點(diǎn)機(jī)在軟硬件設(shè)計(jì)與實(shí)現(xiàn)方面的經(jīng)驗(yàn)和教訓(xùn),以及與現(xiàn)有系統(tǒng)的優(yōu)勢與差距方面的具體原因進(jìn)行一些討論與分析。
系統(tǒng)架構(gòu)方面:相對于現(xiàn)有系統(tǒng),由于本系統(tǒng)采用mesh結(jié)構(gòu)互連的16路處理器,由每4路處理器構(gòu)成一個(gè)CC-NUMA單元,該架構(gòu)的優(yōu)勢是能夠充分利用并行性,但受系統(tǒng)總線帶寬以及龍芯處理器開放接口數(shù)的限制,所能支持的處理器數(shù)目會(huì)受到限制,再加上軟硬件設(shè)計(jì)工藝復(fù)雜,對于商用化目標(biāo)來說,相對造價(jià)成本會(huì)較高,目前筆者正在進(jìn)一步優(yōu)化該架構(gòu),正在研究一種“多胞胎”架構(gòu)的節(jié)點(diǎn)機(jī)。
處理器的性能和穩(wěn)定性方面:由于龍芯處理器是核心,處理器的性能和穩(wěn)定性直接關(guān)系到系統(tǒng)的性能、設(shè)計(jì)和實(shí)現(xiàn)的難度和效果。
器件布局、高速型號處理和散熱方面:由于單主板的電子元器件數(shù)量和種類都比較多,需要處理的核心部件是處理器和內(nèi)存,在布局上尤其需重點(diǎn)考慮把這兩類部件的布局、高速型號處理、電子線路和散熱規(guī)劃好。基于對處理器之間的互連結(jié)構(gòu),及其各自連接內(nèi)存條以及工藝難度等方面的綜合考慮,因此,在布局上需要綜合考慮好處理器和內(nèi)存條互連,尤其要處理好高速信號的連接問題,筆者最終采用了規(guī)則的方陣式布局,即處理器放在中間,內(nèi)存條放置在兩側(cè)。這種規(guī)則布局的方式能夠使得處理器之間的高速信號連接線路最短,同時(shí)處理器與內(nèi)存的連接線路也最短,電路信號上保證主板運(yùn)行的可靠性。在滿足內(nèi)存條和處理器的散熱需求時(shí),需要綜合考慮分冷效果,筆者采取將處理器放在中間,較高的內(nèi)存條放在兩側(cè),所有的內(nèi)存排列采取前后走向,這樣有利于冷風(fēng)從主板的前端向后端流動(dòng)制冷,其余的芯片如I/O放置在不影響通道的位置。
互連方式方面:多種方式的支持目標(biāo)要求重點(diǎn)考慮如何支持系統(tǒng)間的高速互連、吉比特以太網(wǎng)互連以及單節(jié)點(diǎn)內(nèi)跨系統(tǒng)處理器互連。筆者的主板選用InfiniBand公司MT25408芯片實(shí)現(xiàn)系統(tǒng)間高速互連,選用 RTL8211B芯片結(jié)合 nVidia南橋芯片的Mac層實(shí)現(xiàn)吉比特以太網(wǎng)互連,并且處理器的HT1總線可用于單節(jié)點(diǎn)內(nèi)跨系統(tǒng)多處理器間互連,這樣就實(shí)現(xiàn)了多種互連方式。
軟硬件配合方面:軟硬件總體采用分層的設(shè)計(jì)思路,但底層軟件(如操作系統(tǒng)等)對龍芯處理器的指令集等的依賴性還是比較大,在軟件實(shí)現(xiàn)方面也需要針對性地定制和優(yōu)化,以取得較好的性能效果。
在商用化及云計(jì)算節(jié)點(diǎn)經(jīng)濟(jì)性能方面:當(dāng)前系統(tǒng)總體處于原型系統(tǒng)研制階段,尚沒有價(jià)格方面的數(shù)據(jù)。筆者基于材料成本進(jìn)行了初步估算,除龍芯CPU外,系統(tǒng)的其他材料都是市場通用的材料。一顆龍芯3A CPU約1 500元,而目前性能和龍芯3A最接近的x86服務(wù)器CPU的成本約為500元??傮w看來,云計(jì)算節(jié)點(diǎn)的經(jīng)濟(jì)性能和國外同類產(chǎn)品相比而言仍然存在比較大的差距,而這方面差距的核心是由國產(chǎn) CPU的性能和成本等核心元器件決定的。隨著國產(chǎn)處理器生態(tài)環(huán)境的逐步改善,基于國產(chǎn)處理器的高效能云計(jì)算節(jié)點(diǎn)機(jī)預(yù)期或能取得更大的商業(yè)應(yīng)用上的突破。
適于云計(jì)算的高效能計(jì)算系統(tǒng)是新一代高性能計(jì)算機(jī)重要研制目標(biāo)。高效能云計(jì)算節(jié)點(diǎn)是
HPCS的核心部件,是實(shí)現(xiàn)高效能目標(biāo)的關(guān)鍵。性能功耗比、高集成度等高效能目標(biāo)的實(shí)現(xiàn)是當(dāng)前高效能計(jì)算節(jié)點(diǎn)面臨的關(guān)鍵挑戰(zhàn)?;趪a(chǎn)處理器的高效能云計(jì)算節(jié)點(diǎn)突破更是我國自主知識產(chǎn)權(quán)和安全可控高效能計(jì)算機(jī)戰(zhàn)略的關(guān)鍵。本文關(guān)注于現(xiàn)有研究中基于龍芯處理器的高效能節(jié)點(diǎn)機(jī)實(shí)際系統(tǒng)相對缺乏等問題,提出了一種基于龍芯3A多核處理器的高效能云計(jì)算節(jié)點(diǎn)的軟硬件設(shè)計(jì)和實(shí)現(xiàn)方法,并研制成功了相關(guān)的原型系統(tǒng)。測試數(shù)據(jù)、已實(shí)現(xiàn)的原型系統(tǒng)以及同現(xiàn)有系統(tǒng)的對比,驗(yàn)證了本文所研制的系統(tǒng)在基于國產(chǎn)龍芯處理器、性能功耗比可集成度和自主知識產(chǎn)權(quán)等方面具有優(yōu)勢,是基于國產(chǎn)處理器的一個(gè)重要嘗試。本文的工作更是下一代基于龍芯3B高效能云計(jì)算節(jié)點(diǎn),以及基于龍芯處理器的高效能計(jì)算機(jī)設(shè)計(jì)與研制的重要基礎(chǔ)。
基于本文工作成果,目前正在開展基于龍芯3B國產(chǎn)處理器的高效能云計(jì)算節(jié)點(diǎn),以及適于云計(jì)算的基于龍芯處理器的高端服務(wù)器的軟硬件設(shè)計(jì)與研制等工作。
[1] SOTOMAYOR B, MONTERO RUBEN S, LIORENTE I M, et al.Virtual infrastructure management in private and hybrid clouds[J].IEEE Internet Computing, 2000, 13(5):14-22.
[2] ZHANG W, SONG Y, RUAN L, et al. Resource management in internet-oriented data centers[J]. Journal of Software,
[3] 2H0p1c2s,-2h3ig(2h) :1p7r9o-d1u9c9t.ivity computer systems[EB/OL]. http://www.highproductivity.org/.Top500 Supercomputer 2012 Rank List.
[4] http://www.top500.org/lists/2013/11/.
[5] CUI Y F, OLSEN KIM B, JORDAN T H. Scalable earthquake simulation on petascale supercomputers[A]. Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing,Networking, Storage and Analysis[C]. Washington DC, USA, 2010.1-20.
[6] RUAN L, XIAO L M, ZHU M F. Content addressable storage optimization for desktop virtualization based disaster backup storage system[J]. China Communications, 2012,9(7):1-13.
[7] LIU Y H, ZHU M F, XIAO L M, et al. Design and implementation of loongson 3A CPU based high productivity computing nodes[J]. High Performance Computing Technology, 2010, 6:46-53.
[8] KUROKAWA M. The K computer: 10 Peta-FLOPS supercomputer[A].The 10th International Conference on Optical Internet(COIN)[C].Yokohama, Japan, 2012.29-31.
[9] XIE M, LU Y T L, LIU L, et al. Implementation and evaluation of network interface and message passing services for tianHe-1A[A]. 19th Annual Symposium on High Performance Interconnects (HOTI)[C].Santa Clara, CA, 2011.78-86.
[10] NCCS[EB/OL]. http://www.nccs.gov/jaguar, 2010.
[11] MCCURDY C W, STEVENS R. Creating Science-Driven Computer Architecture: a New Path to Scientific Leadership[R]. NERSC Technical Report, 2002.
[12] VECCHIOLA C, PANDEY S, BUYYA R. High-performance cloud computing: a view of scientific applications[A]. The 10th International Symposium on Pervasive Systems, Algorithms, and Networks[C].2009.4-16.
[13] HABATA S, YOKOKAWA M, KITAWAKI S. The earth simulator system,the earth simulator system[J]. NEC Res & Develop, 2003, 44(1):21-26.
[14] LAUDON J, LENOSKI D. The SGI origin: a ccNUMA highly scalable server[A]. International Symposium on Computer Architecture[C]. Colorado, USA, 1997.241-251
[15] ABTS D. The cray XT4 and seastar 3-D torus Interconnect[M]. David Padua,ed: Encyclopedia of Parallel Computing, 2011.470-477.
[16] SCOTT S. Thinking ahead: future architectures from cray[EB/OL].http://nccs.gov/news/workshops/cray/pdf/Cray_Tech_Workshop_sscot t_2_26_07.pdf, 2007.
[17] FELDMAN M. ORNL gears up for new leadership computing systems[EB/OL]. http://www.hpcwire.com/ hpc/1356225.html,2007.
[18] TURNER JOHN A. Roadrunner: Heterogeneous Petascale Computing for Predictive Simulation[R]. Los Almos Unclassified Report LA-UR-07-1037, 2007.