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