趙玖玲,田先斌
摘 要:以IBM BladeCenter高性能集群系統性能測試為背景,研究大規模集群的性能測試與優化方法。通過對基于區域分解大規模線性方程組中并行求解算法在4個測試方案下的測試和分析,得到了其加速性能隨計算節點數的變化曲線。結果表明,該高性能計算機集群具有很好的加速性能、穩定性,達到了預期的測試目標,為基于該并行平臺的進一步并行開發研究奠定了基礎。
關鍵詞:性能測試;PCG;并行計算;MPI OpenMP;PGI
中圖分類號:TP274文獻標識碼:A
文章編號:1004-373X(2009)12-091-04
Performance Test and Optimization Study of High Performance Parallel Cluster System
ZHAO Jiuling,TIAN Xianbin
(Teaching & Research Office 401,Second Artillery Engineering Institute,Xi′an,710025,China)
Abstract:This article studies the performance optimization of the large-scale cluster system by the performance test for IBM BladeCenter high performance cluster system.The efficiency of this system is exhibited through the test and analysis for this cluster system by running the test software in different parallel environment.Results prove that the high performance computer cluster has acceleration function and stability.These results offer a foundation for the exploiture and study.
Keywords:performance test;PCG;parallel computing;MPI;OpenMP;PGI
0 引 言
隨著科研學術活動的不斷深入,研究對象越來越復雜,尤其在數值仿真方面,由于研究模型越來越復雜,仿真時產生的計算量和數據量也越來越龐大。面對如此龐大的計算負荷,使用集群系統,利用并行技術是解決計算時間的一個理想方案[1]。
為了能夠進行工程中的大規模數值計算,縮短科研周期,新近購置了IBM刀片式大規模并行計算集群系統,為了測試該系統的工程計算能力,實現了在科學計算中常用的大型線性方程組并行算法,測試并分析了并行集群下不同并行模型的計算時間及并行性能和優化措施。
1 系統硬件架構
計算機系統的性能取決于其軟硬件的配置。在對系統進行有針對性的優化前,必須了解其軟硬件組成。
1.1 硬件配置
目前大型并行計算機系統種類很多,許多高性能并行機如IBM“藍色基因”計算機、曙光5000A等具有極高的計算速度。但是這些計算機硬件成本高,管理和維護花銷大,一般機構難以承擔。隨著網絡技術的發展,利用網絡將多臺計算機連接起來,組成集群系統進行并行計算的方式逐漸成為并行計算機發展的一個趨勢。組建集群系統的方式通常有2種:一種是利用常見的局域網技術,將多臺PC或服務器連接在一起組成的。這種組建方式可以最大限度利用局域網內的計算資源,降低組建集群系統的成本。另一種是利用專業的網絡,將經過優化配置后的服務器連接在一起組成集群系統。這種方式成本高,但是比前一種方式具有更高的計算效率、更大網絡通信帶寬、更低的數據通信時延和更穩定的系統服務。刀片式服務器就是屬于后者的一種高可用高密度(High Availability High Density,HAHD)的低成本集群服務器平臺,是專門為特殊應用行業和高密度計算機環境設計的,它與其他商業集群服務器(如機柜式服務器)相比,具有成本低,占地小,升級簡單等優勢,是目前搭建集群的發展趨勢。在2006年底發布的全球高性能計算機(HPC)TOP500排名中,就有70套是IBM BladeCenter刀片式服務器,而在我國HPC的TOP100的前10名中就有6臺是刀片式服務器[2]。權威人士預測到2009年底,刀片服務器將占據服務器市場份額的1/4以上。
這里的高性能集群系統是IBM BladeCenter刀片服務器系列,其具體配置如表1所示。
表1 集群系統硬件配置表
結點類型CPU型號CPU個數內存硬盤節點個數
計算結點雙核AMDOpteron2702.0 GHz/1M L2處理器2個4 GBPC3200DDR兩個open2.5″SCSI73.4 GB硬盤24個
管理結點AMD Opteron2522.6 GHz/1 MB L2處理器2個4 GBPC3200DDR兩個HSUltra320 SCSI73.4 GB硬盤1個
存儲結點AMD Opteron2522.6 GHz/1 MB L2處理器2個4 GBPC3200DDR2.1TB的DS400磁盤陣列1個
該系統總共包含計算單元96個,系統總體浮點運算的理論峰值達到400 Gflops,系統總體內存達到104 GB,存儲器總容量接近6 TB。
1.2 軟件平臺
該系統中的各個節點都采用Linux Red Hat 4(AS)Update 5作為操作系統,使用PBSPro作為進程調度管理軟件,在管理節點和存儲節點上還安裝了管理軟件XCat。
為了方便進行科學計算與配合其他科學計算軟件的運行,系統中配置安裝GOTO數學庫。為了提高系統的并行編譯器的性能,該集群系統安裝Portland Group開發的高性能、并行Fortran,C和C++編譯器PGI。此外還配置安裝了目前并行計算領域常用的并行環境OpenMP(PGI支持)和MPI。
2 并行計算性能評判準則
要測試集群的性能,就需要評判標準。通用方法用于記錄不同環境下機器運行程序的響應時間α,計算程序運行的加速比Sp和并行效率Ep,給出測試結果。
2.1 響應時間
時間是計算機性能測量的主要標準。響應時間也稱周轉時間,是計算機完成某一任務所花的全部時間,其公式如下:
α=tc+tI/O(1)
式中:tc是一個程序的CPU 時間。它包含用戶CPU時間te(執行程序的時間)和系統CPU時間ts(操作系統的開銷)。tI/O是系統的I/O時間,則包括輸入/輸出設備的I/O時間、存儲器與主存間的頁面交換時間、以及網絡通信的時間。由于集群系統中任務在不同節點間并行執行時,相互之間需要不斷地交換數據,網絡通信往往稱為決定程序效率的最大因素??梢?要降低響應時間,就必須最大限度地降低通信開銷,提高CPU的利用率。
2.2 加速比Sp和并行效率Ep
加速比Sp是并行處理系統性能的主要評測指標。其計算公式如下:
Sp=αs/αp(2)
式中:αs是指給定程序在單處理機上的響應時間;αp是指相同的程序在多個處理機組成的并行處理系統上的響應時間。加速比Sp反映的是在并行條件下,計算速度所能得到的加速倍數。在理論情況下,程序若能完全并行,則p個相同處理器可以達到的加速比為p,但是在實際情況下,加速比Sp一般都要小于p[3,4]。
為了反映并行的效率,定義產生了并行效率Ep,其計算公式如下:
Ep=Sp/p(3)
一般情況下Ep值的范圍是在(0,1)之間。Ep越接近1,算法的并行效率就越高。
3 并行測試程序
為了有效地測試并行系統的性能,需要選擇具有代表性的測試程序。因為大部分科學計算,如有限元計算、有限差分計算等,都需要求解大型線性方程組,所以使用求解線性方程組測試性能具有極好的代表性。這里采用基于區域分解的并行預處理共軛梯度法求解線性方程組[5,6]。
常用的并行模式有MPI并行、OpenMP并行和MPI+OpenMP混合并行3種。MPI是一種基于消息傳遞的分布式存儲模型,具有良好的通信性能;OpenMP是一種基于共享內存式的并行存儲模型,可以充分利用單結點多計算核心的計算資源;MPI+OpenMP混合并行模式則可以實現分布式和內存共享兩極并行[7]。
預處理共軛梯度法[8](Preconditioned Conjugate Gradient Method,PCG方法),是一種較成熟且并行效率較高的線性方程組迭代求解算法。因此這里使用PCG作為求解線性方程組的基本算法,求解方程Ax=f的并行算法描述如下:
Step 1: 初始化:
x(i,0)=0,r(i,0)=f(i)(4)
M(i)=⊕∑j∈Φm(j)(5)
Step 2:
z(i,0)=(M(i))-1r(i,0), s(i,0)=⊕∑j∈Φz(j,0)(6)
α(i,0)1 = r(i,0)?s(i,0),α(1)1=∑i∈Ωα(i,0)1(7)
β(1)2=α(1)1,p(i,1)=s(i,0)(8)
Step 3: 對于第k次迭代(k=1,2,3…):
u(1,k)=A(i)p(i,k)(9)
α(i,k)2=p(i,k)u(i,k),α(k)2 = ∑i∈Ωα(i,0)2,α=α(k)1/α(k)2(10)
x(i,k)=x(i,k-1)+αp(i,k),r(i,k)=r(i,k-1)-αu(i,k)(11)
z(i,k)=(M(i))-1r(i,k),s(i,k)=⊕∑j∈Φz(j,k)(12)
β(i,k)1=p(i,k)s(i,k),β(k)1 = ∑i∈Ωβ(i,k)1(13)
如果β(k)1<εβ(0)1,結束迭代,輸出x,這里的ε為控制殘差的常量。
否則:
β=β(k)1/β(k)2,p(i,k+1)=s(i,k)+βp(i,k)(14)
β(k+1)2=β(k)1α(k+1)1=β(k)1(15)
令k=k+1,重復Step 3。
式中:變量右上標(i,k)代表第i個進程的第k次迭代;符號⊕∑j∈Φ表示邊界上的局部通信求和;∑i∈Ω表示的是全局通信求和。
為了保證線性方程組的系數矩陣是非奇異的,在程序中還包含了系數矩陣的組裝過程。
4 并行系統測試與優化
4.1 測試方案
MPI并行模式需要在運行時輸入一些配置項屬性來指定相應的并行環境,從而實現正常的并行化。其中“-np”選項,它后面的數字指定了程序并行的規模,即系統總共包含多少個并行的進程;“-machinefile”選項后面的文件名指定了一個用于分配系統計算資源的配置文件,該文件包含了各進程將來運行時所在的計算結點。通過靈活的使用這兩個配置屬性,可以對同一個程序進行不同環境的測試[9,10]。
MPI+OpenMP混合并行模式下,若要在2n個計算單元上并行時,使用“-machinefile”配置n個節點,每個節點使用2個線程實施并行運算。
為了從不同的角度認識該高性能并行計算機平臺的具體性能,測試程序被編譯為4種版本,各個版本具體的編譯條件如表2所示。
表2 各個版本程序編譯選項
PGI優化使用MPI使用OpenMP
Serial否否否
Optimize Serial是否否
Pure OpenMP是否是
Pure MPI是是否
MPI+OpenMP是是是
4.2 性能測試
測試時使用不同階數的系數矩陣進行求解,為了延長運行時間,方程Ax=f右側的f分10次加載,并對比他們在不同條件下的性能。
4.2.1 PGI編譯器性能優化測試
將Serial版本程序和Optimize Serial版本程序分別運行,測試結果如表3所示。
表3 PGI優化對照表
1 500階矩陣1 800階矩陣2 500階矩陣3 500階矩陣
Serial60.49 s84.06 s109.21 s171.59 s
Optimize Serial23.01 s31.25 s41.84 s66.25 s
運行速度比2.63 2.69 2.61 2.51
4.2.2 共享內存模型并行性能測試
在一個計算結點上,采用優化串行版和OpenMP并行版運行的響應時間做比較,得到直方圖如圖1所示。
圖1 單結點OpenMP并行響應對比
4.2.3 并行模型性能比較
利用MPI和MPI+OpenMP混合并行模型,分別在4個、10個、20個計算單元上計算1 500階、1 800階、2 500階、3 000階、3 500階矩陣,所得的加速比如圖3所示。
4.3 并行性能分析
通過表3數據,可以明顯的反映出PGI編譯器的優化對程序的運行效率的影響。優化后的程序運行效率基本都提高了1.5倍以上,在監視系統進程的時候,可以明顯地發現沒有優化的程序最多占用CPU資源的50%,而優化后的程序則是100%地占用CPU的資源,可見PGI可以優化執行代碼,提高了CPU的利用率。
通過圖1可以看出OpenMP可以在共享存儲計算機上充分挖掘多個雙核CPU的計算潛力,提高運行速度。
通過圖2可以看出并行程序能夠極大地提高計算速度。在節點較少時,對于純MPI并行模式來說,程序能夠獲得接近于結點個數的加速比,能夠充分利用起多節點的計算資源,而加入OpenMP的混合編程模式,并行計算的加速性能較純MPI較差。而當節點個數上升到20節點以上時,MPI并行程序的性能逐漸下降,而混合模式的程序性能逐漸提高??梢?在節點較少、MPI通信負擔較低時,使用MPI比使用混合方式性能好,但是當節點較多,MPI通信負擔較重時,再使用混合混合方式,利用OpenMP減少使用的節點個數,降低節點間通信負荷,并利用線程并行進一步提高性能。
圖2 兩種并行模式響應時間對比
5 結 語
這里開發基于并行預處理共軛梯度算法和基于不同并行模型的并行測試程序,并測試在高性能并行集群上的并行效率,研究高性能計算的優化方法,并行計算測試結果符合實際, 具有一定的參考價值。
通過測試對該高性能計算集群系統有了以下的認識:
(1)集群的加速比與計算所用的節點數基本保持相同的增減關系,即隨著節點數的增加,加速比也相應的增加;
(2) 通信時延是影響加速比的主要因素之一,為了獲得更好的加速比,應盡量減少節點間的數據通信從而減少通信時間來獲得更好的加速比;
(3) 在使用的計算單元較多時,使用OpenMP配合MPI可以降低進程間地通信,從而提高加速比,但是提高的程度不明顯;
(4) 對于大數據量處理領域,使用集群可大大縮短資料處理所需的時間,進一步提高工作效率,同時也能使擁有大計算量的處理技術和方法得到更好的應用。
參考文獻
[1]馮云,周淑秋.MPI+OpenMP混合并行編程模型應用研究[J].計算機系統應用,2006(2):86-89.
[2]William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery.Numerical Recipes in C++[M].北京:電子工業出版社,2005.
[3]祝永志,李丙鋒,魏榕暉.Bewulf-T機群系統高擴展性研究[J].計算機科學,2008,35(2):298-300.
[4]Shameem Akhter,Jason Roberts.Multi-Core Programming[M].北京:電子工業出版社,2007.
[5]Graham Glass,King Ables.Linux for Programmers and users[M].北京:清華大學出版社,2006.
[6]陳國良.并行算法實踐[M].北京:高等教育出版社,2004.
[7]溫小飛,朱宗柏,胡春枝,等.高性能計算機集群的性能評價[J].武漢理工大學學報:信息與管理工程版,2005,27(4):19-22.
[8]Meijerink J A.Guidelines for the Usage of Incomplete Decomposition in Solving Sets of Linear Equations as theyOccur in Practical Problems.Comp.Phys.,1981.
[9]馬晶燕,于雙元.基于MPICH的MPI并行環境分析[J].科技資訊,2006(30):6-7.
[10]曹振南,馮圣中,王沁.IA機群結點內并行編程模式性能分析[J].計算機工程與應用,2004(20):84-86.