前段時間,新一期全球超級計算機500強(TOP500)榜單在美國鹽湖城公布,中國神威太湖之光蟬聯(lián)冠軍,中國天河二號屈居次席。除神威太湖之光和天河二號外,中國也在TOP500上榜總數(shù)上與美國持平。
正如天河2號獲得6連冠后卻因為使用了Intel公司的至強Phi計算卡而被一些別有用心之徒百般詆毀,在神威太湖之光實現(xiàn)了包括處理器在內(nèi)的所有核心部件全部國產(chǎn)化后,網(wǎng)絡(luò)上又傳來了不和諧的音符——有媒體認為,神威太湖之光的“可用性能與理論性能相去甚遠”,并以“HPL效率是74.16%”,“HPCG測試只有0.371PFLOPS,效率則只有0.3%,這比天河2號的1.1%還要低”來質(zhì)疑神威太湖之光。
言下之意,就是神威太湖之光的可用性能與理論性能相去甚遠,只能用來跑分,根本就用不來。那么什么是Linpack和HPCG,神威太湖之光真的只能用來跑分么?
什么是Linpack?
上面媒體的一段話引用了幾個測試的結(jié)果,并以74.16%、0.3%、1.1%等實際數(shù)據(jù)來說明中國超算可用性能與理論性能相去甚遠,非常具有迷惑性。筆者簡單的就Linpack測試和HPCG測試做個簡要說明。
Linpack指的是矩陣求解,在科學計算中把實際問題抽象成方程組,然后離散成矩陣計算矩陣倍,代表的是傳統(tǒng)的以矩陣為基礎(chǔ)的數(shù)值計算方法,常用于理科和工科的數(shù)值求解和數(shù)值模擬。那么為何超算大多以Linpack測試成績論高低呢?原因就在于很多科學計算模型都包含了矩陣求解,比如解微分方程,因此在超算任務(wù)中具有不可取代性——像輻射流體力學就是求解微分方程;而核爆炸模擬其實就是輻射流體力學+蒙特卡洛預(yù)測;雷達截面的矩量法計算也有賴于解微分方程;業(yè)內(nèi)專家還告訴筆者“現(xiàn)在的深度學習算法的核心算法與Linpack的是一個”。..。..。因此,linpack測試并非是一些跑分軟件那樣:不服跑個分,而是真正具有實戰(zhàn)價值的測試。
Linpack效率指的是實際計算時的次數(shù)除以理論計算,舉例來說:
神威太湖之光的理論性能為125.4 PFlops,Linpack浮點性能93PFlops,Linpack效率為74.16%。
天河2號的理論性能54.9Pflops,Linpack雙精浮點性能33.8PFlops,Linpack效率61.5%
泰坦的理論性能27 Pflops,Linpack雙精浮點性能17.6 PFlops,Linpack效率為65.19%。
紅杉的理論性能為20.1Pflops,Linpack測試雙精浮點性能為16.3P,Linpack效率高達81%。
這里要說明一點,就是超算的規(guī)模越大,Linpack測試效率的提高就越難——規(guī)模大到如一定程度,維持一段時間的穩(wěn)定運行是非常難的,何況是太湖神威之光93PFlops的高性能。而神威太湖之光在Linpack測試性能是美國超算泰坦5倍以上的情況下,Linpack測試效率大幅領(lǐng)先于泰坦,這就非??少F了!至于紅杉的Linpack測試效率為何會高達81%,筆者會在下文做講解。
另外還要說明的的一點,天河2號Linpack效率低于美國泰坦的原因——一方面是因為天河2號的規(guī)模更大,影響了效率;另一方面是因為天河2號采用的是Intel的至強PHI計算卡,而該計算卡就以理論性能強大,但穩(wěn)定性能相對偏低著稱——同樣使用E5和至強PHI計算卡的美國超算Stampede,不僅運算能力僅為天河2號的五分之一左右(未升級前,升級后為三分之一),整機效率比天河2號更低,只有60.7%。
總而言之,以神威太湖之光的規(guī)模,取得Linpack效率達到74.16%已經(jīng)非常厲害了,在采用異構(gòu)計算的超算中屬于頂尖水平,大家千萬不要被一些無良媒體誤導了。
異構(gòu)超算在Linpack效率上天然低于同構(gòu)超算
對于筆者認為的神威太湖之光Linpack效率達到74.16%屬于頂尖水平的結(jié)論,也許某些人會提出異議,比如會列舉出TOP500排名第四的美國超算紅杉,紅杉的理論性能為20.1Pflops,Linpack測試雙精浮點性能為16.3P,Linpack效率高達81%。
那么為何紅杉的Linpack效率如此之高呢?原因就在于和神威太湖之光、天河2號、泰坦等采用異構(gòu)計算的超算不同,紅杉采用的依舊是傳統(tǒng)的同構(gòu)計算技術(shù)。
超算可以分為兩種架構(gòu)。采用同構(gòu)計算架構(gòu)的超算只需要單純使用一種處理器,在同一類型的處理器上執(zhí)行計算任務(wù)。舉例來說,中國超算神威藍光采用了申威1600,美國的米拉和紅杉采用了PowerPC-A2處理器,這些超算都沒有采用GPU或其它類型的眾核芯片等加速器。因此,紅杉、米拉、神威藍光都是采用同構(gòu)計算架構(gòu)超算的代表。
異構(gòu)計算使用CPU、GPGPU、GPDSP、ASIC、FPGA和其它類型的眾核處理器來處理不同類型的計算任務(wù)。采用異構(gòu)計算架構(gòu)的超算會使用至少2種類型的處理器,其中異構(gòu)計算架構(gòu)中通用CPU負責邏輯復(fù)雜的調(diào)度和串行任務(wù),加速器負責并行度高的任務(wù),實現(xiàn)計算加速。具體來說,采用異構(gòu)計算架構(gòu)的超算在運算中既使用處理器,又使用GPU或眾核芯片等加速器。以中國天河2號和神威太湖之光為例,天河2號有16000個計算節(jié)點,每個節(jié)點由2片Intel-E5-2692和3片Xeon-Phi組成,共使用了32000片Intel-E5-2692和48000片Xeon-Phi。神威太湖之光雖然只采用了申威26010眾核處理器,看起來像同構(gòu)超算,但由于申威26010集成了4個管理核心和256個運算核心,一片申威26010就是一個計算節(jié)點,管理核心執(zhí)行類似于天河計算節(jié)點中E5的功能,而256個運算核心則發(fā)揮了類似于Xeon-Phi的加速作用,因此也屬于異構(gòu)超算。
由于異構(gòu)編程需要提前預(yù)知模型并做特殊優(yōu)化,而且很多應(yīng)用未必適合異構(gòu)模型,使得采用異構(gòu)計算的超算對于編程和優(yōu)化的要求更高——一位業(yè)內(nèi)人士就評價,“異構(gòu)編程太勞心勞力了,高端人才的精力應(yīng)該用在關(guān)注自己的專業(yè)上來,而不是當代碼狗。..。..年紀大一點的科研人員就不愿自己編代碼了,一些年青但不愿勞思費神的科研人員也不愿意編寫異構(gòu)代碼。..。..”。因此,采用異構(gòu)計算的超算在Linpack效率上天然低于采用同構(gòu)計算的超算。
那么既然同構(gòu)超算在編程方便和效率上具有優(yōu)勢,為何全球超算都轉(zhuǎn)向異構(gòu)計算呢?原因就在于,這樣超算可以獲得更高的性能,之前抱怨異構(gòu)編程太勞心勞力的業(yè)內(nèi)朋友就表示,“超算方面眾核是近些年的趨勢,雖然編程勞心費力,但是在性能面前我們還是得忍,相同成本誰不想性能更好,科研對性能的需求可以用饑渴來形容”。
嘮嘮叨叨說這么多,主要是為了打一個補丁,防止別有用心之徒用美國同構(gòu)超算和中國異構(gòu)超算比Linpack效率,進而抹黑中國超算Linpack效率低下,何況前者的規(guī)模遠遠小于后者。
什么是HPCG
目前,評價超算的指標有不少,除了測試Linpack的TOP500,還有強調(diào)的是內(nèi)存帶寬和延遲的Graph500,Graph500對全系統(tǒng)的內(nèi)存帶寬和內(nèi)存延遲有很高的要求,而計算能力本身已經(jīng)不影響測試結(jié)果了,這種測試偏向于訪存密集型運算,在大數(shù)據(jù)分析等場景下比較有意義。
除Graph500之外,還有強調(diào)節(jié)能環(huán)保的Green500。那么,在Graph500和Green500排行榜上,神威太湖之光的表現(xiàn)如何呢?Graph500名列第二,Green500名列第三。
不過,也有工程師認為無論是TOP500,還是Graph500都過于極端——TOP500過于強調(diào)計算性能,Graph500過于強調(diào)帶寬和延遲等因素,因此采用了新的標準HPCG。
HPCG是美國正在推的一個新測試標準,目前還沒有被業(yè)界廣泛接受,HPCG代表了共軛梯度迭代法的一類應(yīng)用的計算和通信特征,僅僅代表了某一個方面的特征,并不能涵蓋超算的所以特征。HPCG比較重視計算性能和通信的平衡,如果計算性能和通信不是一個量級的,即便兩項指標分開看都很強,但也會導致HPCG偏低的結(jié)果。
另外,HPCG也存在一些缺陷,據(jù)業(yè)內(nèi)人士介紹,“由于針對具體硬件結(jié)構(gòu)修改共軛梯度算法很容易得到高得多的成績,為了避免這一點,HPCG代碼目前還在鎖定狀態(tài),不準修改算法本身。但在使用中,用戶是會修改算法的,這使得這一測試會脫離實際”。
在某媒體的報道中,“但在更具實戰(zhàn)意義的HPCG性能(高性能共軛梯度基準測試)中,太湖之光只有0.371PFLOPS,效率則只有0.3%,這比天河2號的1.1%還要低”,0.3%和1.1%的數(shù)據(jù)和該媒體的這種表述很容易讓人誤認為,天河2號和神威太湖之光的HPCG測試結(jié)果非常差,但實際上,在HPCG測試排行榜中,天河2號位列第一,而神威太湖之光為列第三,這其實是很不錯的成績。而且一位業(yè)內(nèi)人士猜測,“也許神威還沒有好好進行優(yōu)化”。
必須指出的是,神威太湖之光的HPCG低于天河2號,并非是因為計算性能或在通信上不如天河2號,恰恰相反,在計算性能上神威太湖之光大幅領(lǐng)先于天河2號,而在互聯(lián)網(wǎng)絡(luò)方面,神威太湖之光也不遜色于天河2號——雖然在帶寬上有差距,但在實際應(yīng)用中,帶寬指標比較延遲等指標而言并不太重要(延時指的是1個CPU把自己的計算結(jié)果交給其他CPU,如及時送到,其他CPU就能繼續(xù)計算,否則就要等待了,芯片、鏈路、協(xié)議等都會影響延時)。因此,神威太湖之光在HPCG上遜色于天河2號,原因就在于計算性能實在是過于強悍,以至于產(chǎn)生了計算和通信上的不平衡,并最終導致自HPCG上遜色于天河2號。
評論
查看更多