金能智 文洮 楊博超 安文婷



摘 ?要:高性能計算已成為國家科技創新核心競爭力的重要方面,其運算能力是重要的評價指標。HPL(High Performance Linpack)是行業內使用最廣泛的高性能計算機浮點計算能力的基準測試程序。如何做好Linpack基準測試對于高性能計算有著重要的意義,本文以甘肅省計算中心一套高性能計算集群為測試對象,從HPL原理、HPL測試及結果優化來探究Linpack基準測試方法。
關鍵詞:高性能計算;Linpack;High Performance Linpack;基準測試
中圖分類號:TP338;TP316.81 ? ? ?文獻標識碼: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)是大規模科學計算和工程計算的必備基礎設施,能夠運用在信息服務、工業仿真、科學研究、生物信息、基因測序、石油勘探等眾多領域,已成為國家科技創新核心競爭力的重要方面,是推動國家科技創新發展的強力引擎,是各國都投入巨資爭奪的科學技術制高點之一[1-3]。高性能計算機的運算能力是其最重要的評價指標,而Linpack基準測試是業內公認的高性能計算運算能力基準測試方法[4-6]。如何做好Linpack基準測試對于高性能計算有著重要的意義,本文就以甘肅省計算中心高性能計算集群為測試對象,以高性能計算集群普遍常用的Linpack基準測試軟件HPL(High Performance Linpack)為例,探討高性能計算集群浮點計算能力的基準測試。
1 ?Linpack簡介
浮點計算峰值是衡量計算機計算能力的一個重要指標,它是指計算機每秒鐘能完成的浮點計算最大次數[7,8]。它包括理論浮點峰值和實測浮點峰值。理論浮點峰值主要由CPU的核數和主頻決定[7]。實測浮點峰值一般可用浮點計算峰值基準測試軟件測得。Linpack是行業內著名的計算機浮點計算峰值的基準測試軟件[6],結果按每秒浮點運算次數(flops)表示[7-9]。Linpack測試包括三類:Linpack100、Linpack1000和HPL[9,10]。其中,Linpack100和Linpack 1000分別求解規模為100階和1000階的線性代數方程組。由于計算機行業的快速發展,Linpack100和Linpack1000已經不適合現代高性能計算集群的測試。此時,A.Petitett、R.C.Whaley、J.Dongarra等人開發出了高度并行計算基準測試程序HPL[9-12]。
在運行HPL程序時,除基本算法不可改變外,可以采用其它任何優化方法執行該測試程序,以獲取最佳的性能測試數據[9-12]。HPL測試已經成為國際TOP500和國內TOP500的依據,成為高性能計算機性能評價的標準[6]。
2 ?HPL原理
HPL的基本算法是以MPI的列主元分塊LU分解的方法為基礎,求解大規模稠密線性方程組,因此,它需要MPI通信庫環境運行正常,還需要基礎線性代數子程序庫(Basic Linear Algebra Subprograms,BLAS)或矢量信號圖像處理庫(Vector Signal Image Processing Library,VSIPL)的線性代數子程序包的支撐[9]。
HPL軟件的原理[9-12]為求一個N維的線性方程組Ax=b的解,通過選局部列主元的方法對N×(N+1)的[A b]系數矩陣進行LU分解,分解形式如下:[A b]=[[L,U]y]
由于下三角矩陣L因子所作的變換在分解的過程中也逐步應用到b上,所以,最后方程組的解x就可以轉化為求解上三角矩陣U作為系數矩陣的線性方程組Ux=y而得到。
為了保證良好的負載平衡和算法的可擴展性,數據是以循環塊的方式分布到一個P×Q的由所有進程組成的2維網格中。N×(N+1)的系數矩陣首先在邏輯上被分成一個個NB×NB大小的數據塊,然后循環的分配到P×Q進程網格上去處理。這個分配的工作在矩陣的行、列兩個方向同時進行。N為最高GFLOPS值的矩陣規模,NB為求解矩陣的分塊大小,P為處理器網格中水平方向處理器個數、Q為處理器網格中垂直方向處理器個數。
N,NB,P,Q都是可以根據集群的具體配置和用戶需要而隨時修改的,也是HPL測試中十分關鍵和重要的幾個參數。
3 ?HPL測試的軟硬件環境
3.1 ?硬件
本次測試以甘肅省計算中心的一套集群為例,有管理節點1臺,計算密集型刀片40臺,存儲服務器1臺。具體硬件參數配置如表1所示。
3.2 ?軟件環境
集群全部使用統一的操作系統CentOS Linux release 7.4.1708,安裝了Intel編譯器和MKL數學庫,并行環境采用Intelmpi,Intel MKL提供一個優化版本的Intel Optimized LINPACK Benchmark,它是根據HPL(http://www.netlib.org/benchmark/hpl/)優化后的程序,通過運行這個程序,可以方便進行CPU的基準性能測試。具體參數如表2所示。
表2 ?測試集群軟件環境
4 ?測試過程及結果
4.1 ?單機測試
4.1.1 ?測試過程
(1)進行測試之前,需要確保整個集群環境正常。所有節點正常,且無負載,調試好Infiniband網絡,確保風扇正常、CPU溫度無異常,確保測試相關的環境變量已導入,無異常進程和服務。
(2)隨機選取任意一臺計算節點,通過不斷調整和優化相關測試參數,測得單機Linpack效率較高時的運行參數。
(3)使用在第2步中獲取的運行參數,同時對各節點進行單機Linpack測試。
(4)創建測試腳本,修改權限:
(5)利用clusconf并行命令方式在測試的各個節點上運行Linpack測試:
4.1.2 ?測試結果
單機Linpack測試結果如表3所示。當矩陣規模N為140000,求解矩陣的分塊大小NB為384,水平方向處理器個數P為4,垂直方向處理器個數Q為7時,實測單機Linpack效率最高為73.83%,最低為67.74%,40個計算節點的單機效率平均值是71.04%。各節點運行效率正常,且表現穩定。
4.2 ?整機測試
4.2.1 ?測試過程
測試過程跟單機測試相同。首先保證整個集群環境正常,繼而通過不斷調整和優化相關測試參數,創建腳本測試。由于前期單機測試中水平方向處理器個數P為4,垂直方向處理器個數Q為7時,單機效率平均值為71.04%,根據以往經驗,效率還有提升的空間,因此整機測試修改響應參數,經過幾次測試,整機測試參數修改為:矩陣規模N為896000,求解矩陣的分塊大小NB為384,水平方向處理器個數P為5,垂直方向處理器個數Q為8。測試腳本為:
4.2.2 ?測試結果
整機測試結果如表4所示,當矩陣規模N為896000,求解矩陣的分塊大小NB為384,水平方向處理器個數P為5,垂直方向處理器個數Q為8時,整機Linpack平均效率為74.33%,比單機測試有所提高,計算性能表現穩定良好,測試期間,集群整體運行狀態正常穩定,電源、風扇及功耗等硬件監控情況穩定無異常。
5 ?結 ?論
高性能計算集群已成為支撐基礎科學研究、工業仿真設計、氣象模擬等領域的重要手段,其計算能力關乎研究的進度和精度。本文以甘肅省計算中心一套高性能計算集群為測試對象,采用Intel MKL提供的高性能計算基準測試程序Intel Optimized LINPACK Benchmark進行單節點和整機Linpack浮點計算能力測試,得到了較好的測試參數和結果,單機Linpack測試效率平均值是71.04%。參考單機測試參數,然后進行優化整機測試參數,整機Linpack平均效率為74.33%,比單機效率有所提高。單機和整機Linpack測試說明集群系統的構建是成功的,多節點間的協同并行處理非常良好。這對其他高性能計算集群的測試有一定的參考價值和指導作用。
參考文獻:
[1] 陳志明.科學計算:科技創新的第三種方法 [J].中國科學院院刊,2012,27(2):161-166.
[2] 臧大偉,曹政,孫凝暉.高性能計算的發展 [J].科技導報,2016,34(14):22-28.
[3] 遲學斌.國家高性能計算環境發展報告(2002-2017年) [M].北京:科學出版社,2018.
[4] 羅水華,楊廣文,張林波,等.并行集群系統的Linpack性能測試分析 [J].數值計算與計算機應用,2003,24(4):285-292.
[5] 王勇超,張璟,王新衛,等.基于MPICH2的高性能計算集群系統研究 [J].計算機技術與發展,2008,18(9):101-104.
[6] 張云泉.中國高性能計算機發展現狀分析與展望 [J].民主與科學,2017(4):26-27.
[7] 王俊,文延華,漆鋒濱.計算機浮點功能測試方法 [J].計算機應用與軟件,2006(6):68-70.
[8] 王曉英,都志輝.基于HPL測試的集群系統性能分析與優化 [J].計算機科學,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與機群系統的LIN-PACK測試 [J].計算機科學,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-),男,漢族,甘肅永靖人,碩
士,副研究員,研究方向:高性能計算、化學信息學。