金能智 文洮 楊博超 安文婷
摘 ?要:高性能計算已成為國家科技創(chuàng)新核心競爭力的重要方面,其運(yùn)算能力是重要的評價指標(biāo)。HPL(High Performance Linpack)是行業(yè)內(nèi)使用最廣泛的高性能計算機(jī)浮點計算能力的基準(zhǔn)測試程序。如何做好Linpack基準(zhǔn)測試對于高性能計算有著重要的意義,本文以甘肅省計算中心一套高性能計算集群為測試對象,從HPL原理、HPL測試及結(jié)果優(yōu)化來探究Linpack基準(zhǔn)測試方法。
關(guān)鍵詞:高性能計算;Linpack;High Performance Linpack;基準(zhǔn)測試
中圖分類號:TP338;TP316.81 ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)14-0060-03
Research on Benchmarking Test of Linux High Performance Computing Cluster
Based on HPL
JIN Nengzhi,WEN Tao,YANG Bochao,AN Wenting
(Gansu Key Laboratory of Cloud Computing,Gansu Computing Center,Lanzhou ?730030,China)
Abstract:High performance computing has become an important aspect of the core competitiveness of national science and technology innovation,and its computing power is an important evaluation index.HPL(High Performance Linpack)is the most widely used benchmark test program for floating-point computing capability of high performance computers in the industry. How to do Linpack benchmark well is of great significance for high performance computing. This paper takes a high performance computing cluster of Gansu Computing Center as the test object,and explores the Linpack benchmark test method from the principle of HPL,HPL test and result optimization.
Keywords:high performance computing;Linpack;High Performance Linpack;benchmark test
0 ?引 ?言
高性能計算(High performance computing,HPC)是大規(guī)??茖W(xué)計算和工程計算的必備基礎(chǔ)設(shè)施,能夠運(yùn)用在信息服務(wù)、工業(yè)仿真、科學(xué)研究、生物信息、基因測序、石油勘探等眾多領(lǐng)域,已成為國家科技創(chuàng)新核心競爭力的重要方面,是推動國家科技創(chuàng)新發(fā)展的強(qiáng)力引擎,是各國都投入巨資爭奪的科學(xué)技術(shù)制高點之一[1-3]。高性能計算機(jī)的運(yùn)算能力是其最重要的評價指標(biāo),而Linpack基準(zhǔn)測試是業(yè)內(nèi)公認(rèn)的高性能計算運(yùn)算能力基準(zhǔn)測試方法[4-6]。如何做好Linpack基準(zhǔn)測試對于高性能計算有著重要的意義,本文就以甘肅省計算中心高性能計算集群為測試對象,以高性能計算集群普遍常用的Linpack基準(zhǔn)測試軟件HPL(High Performance Linpack)為例,探討高性能計算集群浮點計算能力的基準(zhǔn)測試。
1 ?Linpack簡介
浮點計算峰值是衡量計算機(jī)計算能力的一個重要指標(biāo),它是指計算機(jī)每秒鐘能完成的浮點計算最大次數(shù)[7,8]。它包括理論浮點峰值和實測浮點峰值。理論浮點峰值主要由CPU的核數(shù)和主頻決定[7]。實測浮點峰值一般可用浮點計算峰值基準(zhǔn)測試軟件測得。Linpack是行業(yè)內(nèi)著名的計算機(jī)浮點計算峰值的基準(zhǔn)測試軟件[6],結(jié)果按每秒浮點運(yùn)算次數(shù)(flops)表示[7-9]。Linpack測試包括三類:Linpack100、Linpack1000和HPL[9,10]。其中,Linpack100和Linpack 1000分別求解規(guī)模為100階和1000階的線性代數(shù)方程組。由于計算機(jī)行業(yè)的快速發(fā)展,Linpack100和Linpack1000已經(jīng)不適合現(xiàn)代高性能計算集群的測試。此時,A.Petitett、R.C.Whaley、J.Dongarra等人開發(fā)出了高度并行計算基準(zhǔn)測試程序HPL[9-12]。
在運(yùn)行HPL程序時,除基本算法不可改變外,可以采用其它任何優(yōu)化方法執(zhí)行該測試程序,以獲取最佳的性能測試數(shù)據(jù)[9-12]。HPL測試已經(jīng)成為國際TOP500和國內(nèi)TOP500的依據(jù),成為高性能計算機(jī)性能評價的標(biāo)準(zhǔn)[6]。
2 ?HPL原理
HPL的基本算法是以MPI的列主元分塊LU分解的方法為基礎(chǔ),求解大規(guī)模稠密線性方程組,因此,它需要MPI通信庫環(huán)境運(yùn)行正常,還需要基礎(chǔ)線性代數(shù)子程序庫(Basic Linear Algebra Subprograms,BLAS)或矢量信號圖像處理庫(Vector Signal Image Processing Library,VSIPL)的線性代數(shù)子程序包的支撐[9]。
HPL軟件的原理[9-12]為求一個N維的線性方程組Ax=b的解,通過選局部列主元的方法對N×(N+1)的[A b]系數(shù)矩陣進(jìn)行LU分解,分解形式如下:[A b]=[[L,U]y]
由于下三角矩陣L因子所作的變換在分解的過程中也逐步應(yīng)用到b上,所以,最后方程組的解x就可以轉(zhuǎn)化為求解上三角矩陣U作為系數(shù)矩陣的線性方程組Ux=y而得到。
為了保證良好的負(fù)載平衡和算法的可擴(kuò)展性,數(shù)據(jù)是以循環(huán)塊的方式分布到一個P×Q的由所有進(jìn)程組成的2維網(wǎng)格中。N×(N+1)的系數(shù)矩陣首先在邏輯上被分成一個個NB×NB大小的數(shù)據(jù)塊,然后循環(huán)的分配到P×Q進(jìn)程網(wǎng)格上去處理。這個分配的工作在矩陣的行、列兩個方向同時進(jìn)行。N為最高GFLOPS值的矩陣規(guī)模,NB為求解矩陣的分塊大小,P為處理器網(wǎng)格中水平方向處理器個數(shù)、Q為處理器網(wǎng)格中垂直方向處理器個數(shù)。
N,NB,P,Q都是可以根據(jù)集群的具體配置和用戶需要而隨時修改的,也是HPL測試中十分關(guān)鍵和重要的幾個參數(shù)。
3 ?HPL測試的軟硬件環(huán)境
3.1 ?硬件
本次測試以甘肅省計算中心的一套集群為例,有管理節(jié)點1臺,計算密集型刀片40臺,存儲服務(wù)器1臺。具體硬件參數(shù)配置如表1所示。
3.2 ?軟件環(huán)境
集群全部使用統(tǒng)一的操作系統(tǒng)CentOS Linux release 7.4.1708,安裝了Intel編譯器和MKL數(shù)學(xué)庫,并行環(huán)境采用Intelmpi,Intel MKL提供一個優(yōu)化版本的Intel Optimized LINPACK Benchmark,它是根據(jù)HPL(http://www.netlib.org/benchmark/hpl/)優(yōu)化后的程序,通過運(yùn)行這個程序,可以方便進(jìn)行CPU的基準(zhǔn)性能測試。具體參數(shù)如表2所示。
表2 ?測試集群軟件環(huán)境
4 ?測試過程及結(jié)果
4.1 ?單機(jī)測試
4.1.1 ?測試過程
(1)進(jìn)行測試之前,需要確保整個集群環(huán)境正常。所有節(jié)點正常,且無負(fù)載,調(diào)試好Infiniband網(wǎng)絡(luò),確保風(fēng)扇正常、CPU溫度無異常,確保測試相關(guān)的環(huán)境變量已導(dǎo)入,無異常進(jìn)程和服務(wù)。
(2)隨機(jī)選取任意一臺計算節(jié)點,通過不斷調(diào)整和優(yōu)化相關(guān)測試參數(shù),測得單機(jī)Linpack效率較高時的運(yùn)行參數(shù)。
(3)使用在第2步中獲取的運(yùn)行參數(shù),同時對各節(jié)點進(jìn)行單機(jī)Linpack測試。
(4)創(chuàng)建測試腳本,修改權(quán)限:
(5)利用clusconf并行命令方式在測試的各個節(jié)點上運(yùn)行Linpack測試:
4.1.2 ?測試結(jié)果
單機(jī)Linpack測試結(jié)果如表3所示。當(dāng)矩陣規(guī)模N為140000,求解矩陣的分塊大小NB為384,水平方向處理器個數(shù)P為4,垂直方向處理器個數(shù)Q為7時,實測單機(jī)Linpack效率最高為73.83%,最低為67.74%,40個計算節(jié)點的單機(jī)效率平均值是71.04%。各節(jié)點運(yùn)行效率正常,且表現(xiàn)穩(wěn)定。
4.2 ?整機(jī)測試
4.2.1 ?測試過程
測試過程跟單機(jī)測試相同。首先保證整個集群環(huán)境正常,繼而通過不斷調(diào)整和優(yōu)化相關(guān)測試參數(shù),創(chuàng)建腳本測試。由于前期單機(jī)測試中水平方向處理器個數(shù)P為4,垂直方向處理器個數(shù)Q為7時,單機(jī)效率平均值為71.04%,根據(jù)以往經(jīng)驗,效率還有提升的空間,因此整機(jī)測試修改響應(yīng)參數(shù),經(jīng)過幾次測試,整機(jī)測試參數(shù)修改為:矩陣規(guī)模N為896000,求解矩陣的分塊大小NB為384,水平方向處理器個數(shù)P為5,垂直方向處理器個數(shù)Q為8。測試腳本為:
4.2.2 ?測試結(jié)果
整機(jī)測試結(jié)果如表4所示,當(dāng)矩陣規(guī)模N為896000,求解矩陣的分塊大小NB為384,水平方向處理器個數(shù)P為5,垂直方向處理器個數(shù)Q為8時,整機(jī)Linpack平均效率為74.33%,比單機(jī)測試有所提高,計算性能表現(xiàn)穩(wěn)定良好,測試期間,集群整體運(yùn)行狀態(tài)正常穩(wěn)定,電源、風(fēng)扇及功耗等硬件監(jiān)控情況穩(wěn)定無異常。
5 ?結(jié) ?論
高性能計算集群已成為支撐基礎(chǔ)科學(xué)研究、工業(yè)仿真設(shè)計、氣象模擬等領(lǐng)域的重要手段,其計算能力關(guān)乎研究的進(jìn)度和精度。本文以甘肅省計算中心一套高性能計算集群為測試對象,采用Intel MKL提供的高性能計算基準(zhǔn)測試程序Intel Optimized LINPACK Benchmark進(jìn)行單節(jié)點和整機(jī)Linpack浮點計算能力測試,得到了較好的測試參數(shù)和結(jié)果,單機(jī)Linpack測試效率平均值是71.04%。參考單機(jī)測試參數(shù),然后進(jìn)行優(yōu)化整機(jī)測試參數(shù),整機(jī)Linpack平均效率為74.33%,比單機(jī)效率有所提高。單機(jī)和整機(jī)Linpack測試說明集群系統(tǒng)的構(gòu)建是成功的,多節(jié)點間的協(xié)同并行處理非常良好。這對其他高性能計算集群的測試有一定的參考價值和指導(dǎo)作用。
參考文獻(xiàn):
[1] 陳志明.科學(xué)計算:科技創(chuàng)新的第三種方法 [J].中國科學(xué)院院刊,2012,27(2):161-166.
[2] 臧大偉,曹政,孫凝暉.高性能計算的發(fā)展 [J].科技導(dǎo)報,2016,34(14):22-28.
[3] 遲學(xué)斌.國家高性能計算環(huán)境發(fā)展報告(2002-2017年) [M].北京:科學(xué)出版社,2018.
[4] 羅水華,楊廣文,張林波,等.并行集群系統(tǒng)的Linpack性能測試分析 [J].數(shù)值計算與計算機(jī)應(yīng)用,2003,24(4):285-292.
[5] 王勇超,張璟,王新衛(wèi),等.基于MPICH2的高性能計算集群系統(tǒng)研究 [J].計算機(jī)技術(shù)與發(fā)展,2008,18(9):101-104.
[6] 張云泉.中國高性能計算機(jī)發(fā)展現(xiàn)狀分析與展望 [J].民主與科學(xué),2017(4):26-27.
[7] 王俊,文延華,漆鋒濱.計算機(jī)浮點功能測試方法 [J].計算機(jī)應(yīng)用與軟件,2006(6):68-70.
[8] 王曉英,都志輝.基于HPL測試的集群系統(tǒng)性能分析與優(yōu)化 [J].計算機(jī)科學(xué),2005(11):231-234.
[9] Netlib Repository at UTK and ORNL.Benchmark Programs and Reports:TOP500 Supercomputer Sites [EB/OL].http://www.netlib.org/benchmark/,2019-06-18.
[10] 都志輝,吳博,劉鵬,等.LINPACK與機(jī)群系統(tǒng)的LIN-PACK測試 [J].計算機(jī)科學(xué),2002(5):8-10+59.
[11] Davies T,Karlsson C,Liu H,et al. High performance linpack benchmark:a fault tolerant implementation without checkpointing [C]//International Conference on Supercomputing. DBLP,2011.
[12] Barrett R F,Chan T H F,D’Azevedo E F,et al. Complex version of high performance computing LINPACK benchmark (HPL) [J]. Concurrency and Computation:Practice and Experience,2010,22(5):573-578.
通訊作者:金能智(1983.01-),男,漢族,甘肅永靖人,碩
士,副研究員,研究方向:高性能計算、化學(xué)信息學(xué)。