趙玖玲,田先斌
摘 要:以IBM BladeCenter高性能集群系統(tǒng)性能測試為背景,研究大規(guī)模集群的性能測試與優(yōu)化方法。通過對基于區(qū)域分解大規(guī)模線性方程組中并行求解算法在4個測試方案下的測試和分析,得到了其加速性能隨計算節(jié)點數(shù)的變化曲線。結(jié)果表明,該高性能計算機集群具有很好的加速性能、穩(wěn)定性,達到了預(yù)期的測試目標(biāo),為基于該并行平臺的進一步并行開發(fā)研究奠定了基礎(chǔ)。
關(guān)鍵詞:性能測試;PCG;并行計算;MPI OpenMP;PGI
中圖分類號:TP274文獻標(biāo)識碼: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 引 言
隨著科研學(xué)術(shù)活動的不斷深入,研究對象越來越復(fù)雜,尤其在數(shù)值仿真方面,由于研究模型越來越復(fù)雜,仿真時產(chǎn)生的計算量和數(shù)據(jù)量也越來越龐大。面對如此龐大的計算負荷,使用集群系統(tǒng),利用并行技術(shù)是解決計算時間的一個理想方案[1]。
為了能夠進行工程中的大規(guī)模數(shù)值計算,縮短科研周期,新近購置了IBM刀片式大規(guī)模并行計算集群系統(tǒng),為了測試該系統(tǒng)的工程計算能力,實現(xiàn)了在科學(xué)計算中常用的大型線性方程組并行算法,測試并分析了并行集群下不同并行模型的計算時間及并行性能和優(yōu)化措施。
1 系統(tǒng)硬件架構(gòu)
計算機系統(tǒng)的性能取決于其軟硬件的配置。在對系統(tǒng)進行有針對性的優(yōu)化前,必須了解其軟硬件組成。
1.1 硬件配置
目前大型并行計算機系統(tǒng)種類很多,許多高性能并行機如IBM“藍色基因”計算機、曙光5000A等具有極高的計算速度。但是這些計算機硬件成本高,管理和維護花銷大,一般機構(gòu)難以承擔(dān)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,利用網(wǎng)絡(luò)將多臺計算機連接起來,組成集群系統(tǒng)進行并行計算的方式逐漸成為并行計算機發(fā)展的一個趨勢。組建集群系統(tǒng)的方式通常有2種:一種是利用常見的局域網(wǎng)技術(shù),將多臺PC或服務(wù)器連接在一起組成的。這種組建方式可以最大限度利用局域網(wǎng)內(nèi)的計算資源,降低組建集群系統(tǒng)的成本。另一種是利用專業(yè)的網(wǎng)絡(luò),將經(jīng)過優(yōu)化配置后的服務(wù)器連接在一起組成集群系統(tǒng)。這種方式成本高,但是比前一種方式具有更高的計算效率、更大網(wǎng)絡(luò)通信帶寬、更低的數(shù)據(jù)通信時延和更穩(wěn)定的系統(tǒng)服務(wù)。刀片式服務(wù)器就是屬于后者的一種高可用高密度(High Availability High Density,HAHD)的低成本集群服務(wù)器平臺,是專門為特殊應(yīng)用行業(yè)和高密度計算機環(huán)境設(shè)計的,它與其他商業(yè)集群服務(wù)器(如機柜式服務(wù)器)相比,具有成本低,占地小,升級簡單等優(yōu)勢,是目前搭建集群的發(fā)展趨勢。在2006年底發(fā)布的全球高性能計算機(HPC)TOP500排名中,就有70套是IBM BladeCenter刀片式服務(wù)器,而在我國HPC的TOP100的前10名中就有6臺是刀片式服務(wù)器[2]。權(quán)威人士預(yù)測到2009年底,刀片服務(wù)器將占據(jù)服務(wù)器市場份額的1/4以上。
這里的高性能集群系統(tǒng)是IBM BladeCenter刀片服務(wù)器系列,其具體配置如表1所示。
表1 集群系統(tǒng)硬件配置表
結(jié)點類型CPU型號CPU個數(shù)內(nèi)存硬盤節(jié)點個數(shù)
計算結(jié)點雙核AMDOpteron2702.0 GHz/1M L2處理器2個4 GBPC3200DDR兩個open2.5″SCSI73.4 GB硬盤24個
管理結(jié)點AMD Opteron2522.6 GHz/1 MB L2處理器2個4 GBPC3200DDR兩個HSUltra320 SCSI73.4 GB硬盤1個
存儲結(jié)點AMD Opteron2522.6 GHz/1 MB L2處理器2個4 GBPC3200DDR2.1TB的DS400磁盤陣列1個
該系統(tǒng)總共包含計算單元96個,系統(tǒng)總體浮點運算的理論峰值達到400 Gflops,系統(tǒng)總體內(nèi)存達到104 GB,存儲器總?cè)萘拷咏? TB。
1.2 軟件平臺
該系統(tǒng)中的各個節(jié)點都采用Linux Red Hat 4(AS)Update 5作為操作系統(tǒng),使用PBSPro作為進程調(diào)度管理軟件,在管理節(jié)點和存儲節(jié)點上還安裝了管理軟件XCat。
為了方便進行科學(xué)計算與配合其他科學(xué)計算軟件的運行,系統(tǒng)中配置安裝GOTO數(shù)學(xué)庫。為了提高系統(tǒng)的并行編譯器的性能,該集群系統(tǒng)安裝Portland Group開發(fā)的高性能、并行Fortran,C和C++編譯器PGI。此外還配置安裝了目前并行計算領(lǐng)域常用的并行環(huán)境OpenMP(PGI支持)和MPI。
2 并行計算性能評判準(zhǔn)則
要測試集群的性能,就需要評判標(biāo)準(zhǔn)。通用方法用于記錄不同環(huán)境下機器運行程序的響應(yīng)時間α,計算程序運行的加速比Sp和并行效率Ep,給出測試結(jié)果。
2.1 響應(yīng)時間
時間是計算機性能測量的主要標(biāo)準(zhǔn)。響應(yīng)時間也稱周轉(zhuǎn)時間,是計算機完成某一任務(wù)所花的全部時間,其公式如下:
α=tc+tI/O(1)
式中:tc是一個程序的CPU 時間。它包含用戶CPU時間te(執(zhí)行程序的時間)和系統(tǒng)CPU時間ts(操作系統(tǒng)的開銷)。tI/O是系統(tǒng)的I/O時間,則包括輸入/輸出設(shè)備的I/O時間、存儲器與主存間的頁面交換時間、以及網(wǎng)絡(luò)通信的時間。由于集群系統(tǒng)中任務(wù)在不同節(jié)點間并行執(zhí)行時,相互之間需要不斷地交換數(shù)據(jù),網(wǎng)絡(luò)通信往往稱為決定程序效率的最大因素??梢?要降低響應(yīng)時間,就必須最大限度地降低通信開銷,提高CPU的利用率。
2.2 加速比Sp和并行效率Ep
加速比Sp是并行處理系統(tǒng)性能的主要評測指標(biāo)。其計算公式如下:
Sp=αs/αp(2)
式中:αs是指給定程序在單處理機上的響應(yīng)時間;αp是指相同的程序在多個處理機組成的并行處理系統(tǒng)上的響應(yīng)時間。加速比Sp反映的是在并行條件下,計算速度所能得到的加速倍數(shù)。在理論情況下,程序若能完全并行,則p個相同處理器可以達到的加速比為p,但是在實際情況下,加速比Sp一般都要小于p[3,4]。
為了反映并行的效率,定義產(chǎn)生了并行效率Ep,其計算公式如下:
Ep=Sp/p(3)
一般情況下Ep值的范圍是在(0,1)之間。Ep越接近1,算法的并行效率就越高。
3 并行測試程序
為了有效地測試并行系統(tǒng)的性能,需要選擇具有代表性的測試程序。因為大部分科學(xué)計算,如有限元計算、有限差分計算等,都需要求解大型線性方程組,所以使用求解線性方程組測試性能具有極好的代表性。這里采用基于區(qū)域分解的并行預(yù)處理共軛梯度法求解線性方程組[5,6]。
常用的并行模式有MPI并行、OpenMP并行和MPI+OpenMP混合并行3種。MPI是一種基于消息傳遞的分布式存儲模型,具有良好的通信性能;OpenMP是一種基于共享內(nèi)存式的并行存儲模型,可以充分利用單結(jié)點多計算核心的計算資源;MPI+OpenMP混合并行模式則可以實現(xiàn)分布式和內(nèi)存共享兩極并行[7]。
預(yù)處理共軛梯度法[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,結(jié)束迭代,輸出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,重復(fù)Step 3。
式中:變量右上標(biāo)(i,k)代表第i個進程的第k次迭代;符號⊕∑j∈Φ表示邊界上的局部通信求和;∑i∈Ω表示的是全局通信求和。
為了保證線性方程組的系數(shù)矩陣是非奇異的,在程序中還包含了系數(shù)矩陣的組裝過程。
4 并行系統(tǒng)測試與優(yōu)化
4.1 測試方案
MPI并行模式需要在運行時輸入一些配置項屬性來指定相應(yīng)的并行環(huán)境,從而實現(xiàn)正常的并行化。其中“-np”選項,它后面的數(shù)字指定了程序并行的規(guī)模,即系統(tǒng)總共包含多少個并行的進程;“-machinefile”選項后面的文件名指定了一個用于分配系統(tǒng)計算資源的配置文件,該文件包含了各進程將來運行時所在的計算結(jié)點。通過靈活的使用這兩個配置屬性,可以對同一個程序進行不同環(huán)境的測試[9,10]。
MPI+OpenMP混合并行模式下,若要在2n個計算單元上并行時,使用“-machinefile”配置n個節(jié)點,每個節(jié)點使用2個線程實施并行運算。
為了從不同的角度認識該高性能并行計算機平臺的具體性能,測試程序被編譯為4種版本,各個版本具體的編譯條件如表2所示。
表2 各個版本程序編譯選項
PGI優(yōu)化使用MPI使用OpenMP
Serial否否否
Optimize Serial是否否
Pure OpenMP是否是
Pure MPI是是否
MPI+OpenMP是是是
4.2 性能測試
測試時使用不同階數(shù)的系數(shù)矩陣進行求解,為了延長運行時間,方程Ax=f右側(cè)的f分10次加載,并對比他們在不同條件下的性能。
4.2.1 PGI編譯器性能優(yōu)化測試
將Serial版本程序和Optimize Serial版本程序分別運行,測試結(jié)果如表3所示。
表3 PGI優(yōu)化對照表
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 共享內(nèi)存模型并行性能測試
在一個計算結(jié)點上,采用優(yōu)化串行版和OpenMP并行版運行的響應(yīng)時間做比較,得到直方圖如圖1所示。
圖1 單結(jié)點OpenMP并行響應(yīng)對比
4.2.3 并行模型性能比較
利用MPI和MPI+OpenMP混合并行模型,分別在4個、10個、20個計算單元上計算1 500階、1 800階、2 500階、3 000階、3 500階矩陣,所得的加速比如圖3所示。
4.3 并行性能分析
通過表3數(shù)據(jù),可以明顯的反映出PGI編譯器的優(yōu)化對程序的運行效率的影響。優(yōu)化后的程序運行效率基本都提高了1.5倍以上,在監(jiān)視系統(tǒng)進程的時候,可以明顯地發(fā)現(xiàn)沒有優(yōu)化的程序最多占用CPU資源的50%,而優(yōu)化后的程序則是100%地占用CPU的資源,可見PGI可以優(yōu)化執(zhí)行代碼,提高了CPU的利用率。
通過圖1可以看出OpenMP可以在共享存儲計算機上充分挖掘多個雙核CPU的計算潛力,提高運行速度。
通過圖2可以看出并行程序能夠極大地提高計算速度。在節(jié)點較少時,對于純MPI并行模式來說,程序能夠獲得接近于結(jié)點個數(shù)的加速比,能夠充分利用起多節(jié)點的計算資源,而加入OpenMP的混合編程模式,并行計算的加速性能較純MPI較差。而當(dāng)節(jié)點個數(shù)上升到20節(jié)點以上時,MPI并行程序的性能逐漸下降,而混合模式的程序性能逐漸提高??梢?在節(jié)點較少、MPI通信負擔(dān)較低時,使用MPI比使用混合方式性能好,但是當(dāng)節(jié)點較多,MPI通信負擔(dān)較重時,再使用混合混合方式,利用OpenMP減少使用的節(jié)點個數(shù),降低節(jié)點間通信負荷,并利用線程并行進一步提高性能。
圖2 兩種并行模式響應(yīng)時間對比
5 結(jié) 語
這里開發(fā)基于并行預(yù)處理共軛梯度算法和基于不同并行模型的并行測試程序,并測試在高性能并行集群上的并行效率,研究高性能計算的優(yōu)化方法,并行計算測試結(jié)果符合實際, 具有一定的參考價值。
通過測試對該高性能計算集群系統(tǒng)有了以下的認識:
(1)集群的加速比與計算所用的節(jié)點數(shù)基本保持相同的增減關(guān)系,即隨著節(jié)點數(shù)的增加,加速比也相應(yīng)的增加;
(2) 通信時延是影響加速比的主要因素之一,為了獲得更好的加速比,應(yīng)盡量減少節(jié)點間的數(shù)據(jù)通信從而減少通信時間來獲得更好的加速比;
(3) 在使用的計算單元較多時,使用OpenMP配合MPI可以降低進程間地通信,從而提高加速比,但是提高的程度不明顯;
(4) 對于大數(shù)據(jù)量處理領(lǐng)域,使用集群可大大縮短資料處理所需的時間,進一步提高工作效率,同時也能使擁有大計算量的處理技術(shù)和方法得到更好的應(yīng)用。
參考文獻
[1]馮云,周淑秋.MPI+OpenMP混合并行編程模型應(yīng)用研究[J].計算機系統(tǒng)應(yīng)用,2006(2):86-89.
[2]William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery.Numerical Recipes in C++[M].北京:電子工業(yè)出版社,2005.
[3]祝永志,李丙鋒,魏榕暉.Bewulf-T機群系統(tǒng)高擴展性研究[J].計算機科學(xué),2008,35(2):298-300.
[4]Shameem Akhter,Jason Roberts.Multi-Core Programming[M].北京:電子工業(yè)出版社,2007.
[5]Graham Glass,King Ables.Linux for Programmers and users[M].北京:清華大學(xué)出版社,2006.
[6]陳國良.并行算法實踐[M].北京:高等教育出版社,2004.
[7]溫小飛,朱宗柏,胡春枝,等.高性能計算機集群的性能評價[J].武漢理工大學(xué)學(xué)報:信息與管理工程版,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并行環(huán)境分析[J].科技資訊,2006(30):6-7.
[10]曹振南,馮圣中,王沁.IA機群結(jié)點內(nèi)并行編程模式性能分析[J].計算機工程與應(yīng)用,2004(20):84-86.