摘要:該文在介紹以太集群和其工作原理的基礎(chǔ)上,介紹了十六節(jié)點(diǎn)以太集群的設(shè)計(jì)與實(shí)現(xiàn)過程,并進(jìn)行了性能測(cè)試分析,以便于結(jié)合測(cè)試數(shù)據(jù)進(jìn)行集群的評(píng)價(jià)與優(yōu)化。
關(guān)鍵詞:集群;設(shè)計(jì);性能測(cè)試
中圖分類號(hào):TP202 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)05-1062-02
The Design and Performance Test of the Ethernet Clusters
GUO Feng
(Qingdao Hismile College,Qingdao 266041,China)
Abstract: This article in the introduction Ethernet Clusters and in its principle of work's foundation,introduced 16 node ether colony's design with realizes the process,and has carried on the performance test analysis,is advantageous for the union test data to carry on the colony the appraisal and the optimization.
Key words: clusters; design; performance test
近幾年,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,以現(xiàn)代計(jì)算技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的數(shù)字化生活已經(jīng)朝著信息化、網(wǎng)絡(luò)化、現(xiàn)代化的目標(biāo)邁進(jìn),越來越多的科研和工程應(yīng)用部門在進(jìn)行大規(guī)??茖W(xué)與工程數(shù)值計(jì)算時(shí)需要海量數(shù)據(jù)處理。由于超級(jí)計(jì)算機(jī)價(jià)格昂貴,短時(shí)間內(nèi)無法普及,而利用以太集群系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的并行處理,提高整個(gè)系統(tǒng)運(yùn)行的性能,就可以用較低的價(jià)格配置來代替超級(jí)計(jì)算機(jī)的工作。
1 以太集群簡介
以太集群提供了一種使用COTS(Commodity off the shelf)硬件構(gòu)造集群系統(tǒng)以滿足特殊的計(jì)算需求的方法。所謂的COTS是指象PC和以太網(wǎng)這種廣為應(yīng)用的標(biāo)準(zhǔn)設(shè)備,它們通??梢杂啥嗉覐S商提供,所以通常有較高的性價(jià)比。實(shí)際上,以太集群現(xiàn)在已被人們看作高性能計(jì)算中的一個(gè)分支。
以太系統(tǒng)通常有一個(gè)管理節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn)構(gòu)成。它們通過以太網(wǎng)(或其他網(wǎng)絡(luò))連接。管理節(jié)點(diǎn)監(jiān)控計(jì)算節(jié)點(diǎn),通常也是計(jì)算節(jié)點(diǎn)的網(wǎng)關(guān)和控制終端。當(dāng)然它通常也是集群系統(tǒng)文件服務(wù)器。在大型的集群系統(tǒng)中,由于特殊的需求,這些管理節(jié)點(diǎn)的功能也可能由多個(gè)節(jié)點(diǎn)分?jǐn)?。它通常由最常見的硬件設(shè)備組成,例如,PC、以太網(wǎng)卡和以太網(wǎng)交換機(jī)。以太集群系統(tǒng)很少包含用戶定制的特殊設(shè)備。
2 以太集群系統(tǒng)的設(shè)計(jì)
由于以太集群系統(tǒng)的設(shè)計(jì)大同小異,只是節(jié)點(diǎn)多少的區(qū)別。這里以組建16節(jié)點(diǎn)的以太集群系統(tǒng)為例加以介紹,其設(shè)計(jì)主要包括選擇相關(guān)硬件、操作系統(tǒng)組建局域網(wǎng)、啟動(dòng)相關(guān)服務(wù)、配置并行環(huán)境、系統(tǒng)調(diào)試四部分。
2.1 組建局域網(wǎng)
根據(jù)要求可以將該系統(tǒng)劃分為服務(wù)器節(jié)點(diǎn)(接入Internet、提供集群環(huán)境、管理數(shù)據(jù)、進(jìn)行分割計(jì)算任務(wù)、進(jìn)行數(shù)值運(yùn)算)、用戶節(jié)點(diǎn)(進(jìn)行數(shù)值計(jì)算)兩種節(jié)點(diǎn)。其拓?fù)浣Y(jié)構(gòu)如圖1所示。
其硬件設(shè)備只是目前的常用的PC設(shè)備即可,筆者選用的CPU是16個(gè)Intel Pentern IV處理器(技術(shù)指標(biāo):Norwood芯片2.66GHz)。目前,比較流行操作系統(tǒng)有Windows系列和Linux系列。綜合考慮其系統(tǒng)的穩(wěn)定性和安全性,我采用的是RedHat10.0。由于安裝操作系統(tǒng)、組建局域網(wǎng)的方法其他許多地方都有介紹,可以參考相關(guān)資料[1],這里不做敘述。
2.2 啟動(dòng)相關(guān)服務(wù)
為了方便操作,實(shí)現(xiàn)本地終端登陸遠(yuǎn)端終端,需要啟動(dòng)telnet服務(wù);在構(gòu)造以太集群系統(tǒng)時(shí),經(jīng)常需要在各節(jié)點(diǎn)之間進(jìn)行傳輸文件,所以我們必須要進(jìn)行配置FTP服務(wù);為了實(shí)現(xiàn)本地節(jié)點(diǎn)操縱遠(yuǎn)端節(jié)點(diǎn),需要Rsh服務(wù);如何在各結(jié)點(diǎn)之間高效、一致和快捷地實(shí)現(xiàn)數(shù)據(jù)并行處理是集群系統(tǒng)對(duì)文件系統(tǒng)提出的要求。以太集群系統(tǒng)的并行環(huán)境中,用戶節(jié)點(diǎn)鏡像服務(wù)器節(jié)點(diǎn)的并行環(huán)境,所以要在各個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)共同目錄,配置Nfs服務(wù)。這些可以參考一般的Linux資料都可以實(shí)現(xiàn)[2]。
2.3 置并行環(huán)境
以太集群主要目的是實(shí)現(xiàn)數(shù)據(jù)并行,讓主機(jī)的任務(wù),可以部分讓其它負(fù)載分擔(dān)。因此它需要一個(gè)可移植的網(wǎng)絡(luò)計(jì)算環(huán)境,以便在一個(gè)通用的平臺(tái)上開發(fā)并行計(jì)算應(yīng)用軟件,一般集群系統(tǒng)都采用消息傳遞型的編程環(huán)境。消息傳遞既適用于集群系統(tǒng),又適用于SMP和MPP系統(tǒng)。通用的消息傳遞編程環(huán)境的主要以下兩種。
1) PVM——并行虛擬機(jī)(Parallel Virtual Machine)
PVM是在美國國家基金會(huì)資助下由美國橡樹嶺國家實(shí)驗(yàn)室開發(fā)的開放軟件系統(tǒng),目前的最新版本為PVM3.4.3,國際上大多數(shù)并行計(jì)算機(jī)公司都支持PVM3。PVM具有以下特點(diǎn):開放軟件,可自由獲得源代碼;通用性強(qiáng),既適用于TCP/IP網(wǎng)絡(luò),又適用于MPP大規(guī)模并行系統(tǒng);系統(tǒng)規(guī)模小(約幾兆字節(jié));成熟程度高,支持廠商多,應(yīng)用范圍廣;一批標(biāo)準(zhǔn)數(shù)學(xué)軟件庫已移植到PVM平臺(tái)上,如Linpack、Lapack、Eispack等。PVM支持C和Fortran語言。
2) MPI——消息傳遞接口(Message Passing Interface)
這是目前集群計(jì)算環(huán)境下使用最為廣泛的并行軟件開發(fā)環(huán)境,是一個(gè)由大學(xué)、實(shí)驗(yàn)室、工業(yè)界等組成的標(biāo)準(zhǔn)化委員會(huì)制定的消息傳遞接口的國際標(biāo)準(zhǔn)。MPI標(biāo)準(zhǔn)的制定開始于1992年,1992年11月發(fā)布草稿,1994年發(fā)布了MPI的定義和實(shí)驗(yàn)版本MPI1,目前的最新版本為MPI3,本文暫用MPI2為例。MPI有一個(gè)支持X窗口的版本MPICH。它具有以下特點(diǎn):
①移植性:基于MPI的并行應(yīng)用程序可以幾乎不作修改在不同型號(hào)的并行機(jī)之間轉(zhuǎn)移,或轉(zhuǎn)移到網(wǎng)絡(luò)環(huán)境中運(yùn)行,只要這些并行機(jī)或網(wǎng)絡(luò)環(huán)境都支持MPI平臺(tái)即可,具有很好的移植性。
②通信模式:MPI提供了點(diǎn)到點(diǎn)通信和集合通信。在點(diǎn)到點(diǎn)通信中,發(fā)送只有阻塞式發(fā)送,接收有阻塞和非阻塞兩種。在集合通信中,MPI提供了更多的全局操作函數(shù),支持廣播、分散、收集、多收集、多對(duì)多等過程組內(nèi)多進(jìn)程數(shù)據(jù)通信操作,通信方式多樣,功能十分強(qiáng)大。
③安全通信:MPI中提供了通信子的概念,所謂通信子就是一組具有同一上下文的任務(wù)與通信上下文的綁定。上下文則是通信的一個(gè)組成屬性,它用于區(qū)分一個(gè)消息的通信空間。上下文的存在,保證了可靠安全的通信環(huán)境,避免了通信空間的出錯(cuò),提供了可靠的通信接口。
④進(jìn)程管理:MPI-1完全是靜態(tài)的,也就是認(rèn)為所有進(jìn)程是事先靜態(tài)初始化好了,盡管MPI-2在此進(jìn)行了改進(jìn),提供了增加一組進(jìn)程組的函數(shù)及組內(nèi)進(jìn)程間發(fā)送控制信息的函數(shù),可是并不支持對(duì)動(dòng)態(tài)進(jìn)程的查詢。但MPI中對(duì)任務(wù)分配提供了笛卡爾拓?fù)浜蛨D拓?fù)鋪矸峙滟Y源,有可能充分利用硬件的特性來達(dá)到簡化設(shè)計(jì),提高效率。
這里我們采用的是mpich,它是Linux平臺(tái)下最重要的一種MPI實(shí)現(xiàn),是一個(gè)與MPI規(guī)范同步發(fā)展的版本,并且是免費(fèi)的。每當(dāng)MPI標(biāo)準(zhǔn)推出新的版本時(shí),mpich就會(huì)有相應(yīng)的實(shí)現(xiàn)版本。mpich是一個(gè)MPI的庫,它提供了不同版本MPI的庫結(jié)構(gòu),編程人員可以使用mpich來使用這些MPI接口,以便寫出適合自己的基于消息傳遞的并行程序。編程人員使用C、C++或者是Fortran語言來調(diào)用這些標(biāo)準(zhǔn)庫,實(shí)現(xiàn)程序的并行性。mpich使用的是MPI標(biāo)準(zhǔn),所以它開發(fā)的程序可移植性很強(qiáng),而且它提供統(tǒng)一的編程接口,所以程序的可開發(fā)性很強(qiáng)。從因特網(wǎng)上下載mpich.tar.gz,在服務(wù)器節(jié)點(diǎn)上用戶節(jié)點(diǎn)鏡像的目錄下解壓縮、安裝,編輯../mpich-1.2.6/util/machines/machines.LINUXmachines.LINUX文件,進(jìn)行授權(quán)計(jì)算節(jié)點(diǎn),并在path路徑中加入../mpich/bin,這樣從新啟動(dòng)用戶節(jié)點(diǎn),并行環(huán)境安裝成功了。
2.4 系統(tǒng)調(diào)試
以太集群系統(tǒng)安裝成功后就可以進(jìn)行調(diào)試。mpich的examples目錄下許多并行例程,這里可用它們調(diào)試,筆者選用的是cpi。在服務(wù)器節(jié)點(diǎn)運(yùn)行mpirun–np16cpi后,顯示器就可以顯示出效果,可以根據(jù)提示發(fā)現(xiàn)是否安裝成功。如果按以上步驟處理,通常不會(huì)出現(xiàn)問題。
2.5 意事項(xiàng)
安裝過程中的每一個(gè)環(huán)節(jié)都很重要,都將直接決定的以后工作的成敗,所以不要急躁,要沉著、仔細(xì)地做好每一個(gè)環(huán)節(jié)。多閱讀相關(guān)軟件附帶的幫助文檔。由于以太集群系統(tǒng)需要遠(yuǎn)程登錄,數(shù)據(jù)共享,所以在啟動(dòng)服務(wù)時(shí)要首先要關(guān)閉防火墻,允許接受外部的數(shù)據(jù)包。另外要注意的是,通常RedHatLinux10.0自帶的并行環(huán)境lam-mpi與要安裝的mpich有沖突,所以在安裝mpich前要先在各個(gè)節(jié)點(diǎn)卸載lam-mpi。
3 性能測(cè)試
以太集群的性能測(cè)試通常采用Linpack測(cè)試[3]。Linpack是由JackDongarra編寫的在高性能計(jì)算領(lǐng)域最出名和廣泛使用的基準(zhǔn)測(cè)試程序。Linpack使用高斯消元法求解線性代數(shù)方程,測(cè)量解稠密線性方程系統(tǒng)所需的時(shí)間。它在分布存儲(chǔ)計(jì)算機(jī)上的并行版本為HPL(HighPerfor2manceLinpack)。國際上著名的TOP500超級(jí)計(jì)算機(jī)排名就是依據(jù)HPL測(cè)試值為標(biāo)準(zhǔn)。
使用HPL基準(zhǔn)測(cè)試一般需要和收集的信息包括:
1) Nmax:獲得最高GFLOPS值時(shí)的矩陣規(guī)模或問題規(guī)模。
2) Rpeak:系統(tǒng)的最大的理論峰值性能,用GFLOPS(GigaFloatingPointoperationsPerSecond每秒十億個(gè)浮點(diǎn)操作。計(jì)算CPU浮點(diǎn)能力的一個(gè)單位,以兆條指令為基準(zhǔn))表示。
3) Rmax:在Nmax規(guī)定的問題規(guī)模下,達(dá)到的最大GFLOPS。
4) NB:對(duì)于數(shù)據(jù)分配和計(jì)算粒度,HPL使用的塊尺度NB。從http://www.netlib.org/benchmark/hpl/上下載最新的HPL包hpl.tar.gz并解包,目前HPL的最新版本為hpl1.0a。同時(shí)要從http://www.netlib.org/atlas/archives/linux/上下載合適的atlas包并解包到相應(yīng)目錄下。這樣就可以進(jìn)行Linpack測(cè)試了。這里的理論峰值為42.56GFLOPS,相當(dāng)于一個(gè)高性能計(jì)算機(jī)在工作,節(jié)約了成本。
4 總結(jié)
這樣16節(jié)點(diǎn)的以太集群系統(tǒng)組建完成,完全做到了節(jié)約成本,實(shí)現(xiàn)了高性能計(jì)算,更多結(jié)點(diǎn)以太集群系統(tǒng)不過是在系統(tǒng)的安裝、管理節(jié)點(diǎn)分配上下些時(shí)間功夫。
參考文獻(xiàn):
[1] [美]YvesLepagePaullarrenra.unix系統(tǒng)管理員大全[M].段劍波,譯.北京:清華大學(xué)出版社,2000,5.
[2] SmarTraining工作室,梁如軍,叢日權(quán),等.RedHatLinux9網(wǎng)絡(luò)服務(wù)[M].北京:機(jī)械工業(yè)出版社.2005,1.
[3] 肖明旺,許堅(jiān),車永剛,王正華.一個(gè)實(shí)用高性能PC集群的Linpack測(cè)試與分析[J].計(jì)算機(jī)應(yīng)用研,2004,9:183-187.