?

基于集群技術的高性能計算系統研究平臺的構建

2013-10-10 03:22趙玉廣孫愛國郎美娜王曉軍吉林醫藥學院信息中心吉林吉林132013
吉林醫藥學院學報 2013年5期
關鍵詞:編譯器高性能集群

趙玉廣,孫愛國,郎美娜,王曉軍 (吉林醫藥學院信息中心,吉林吉林 132013)

集群系統是隨著微處理器技術和計算機互連網絡技術的迅速發展而出現的一種并行計算系統,它使用高速通信網絡將多臺原本獨立、完整的微機或工作站連接在一起,構成一個統一的整體,使之可作為一種單一的計算資源來使用。集群與SMP(對稱多處理)和MPP(大規模分布式處理)相比,具有更高的可擴展性、可用性和易維護性,而且價格低,性價比高:相對于SMP、MPP類型的大型主機而言,使用相同等級的集群,價格僅為大型主機的六分之一。更重要的是,由于集群系統基于IA(IntelArchitecture)構架,采用的是商用處理器和商用高速網絡,并且采用消息傳遞的編程模型,使其開發的程序具有很高的通用性和可移植性,可應用于不同的并行計算機?;诩杭夹g的高性能計算平臺已成為并行計算系統發展的一種新主流技術,為磁約束聚變研究的大規模計算問題提供了一個有效解決途徑。

1 基本體系結構

集群是一種并行處理系統,由很多連接在一起的獨立的計算機組成,像一個整體的計算資源一樣協同工作。計算機節點可以是一個單處理器或多處理器的系統,如PC、工作站或SMP,它擁有內存、I/O設備和操作系統。集群系統一般是指物理上分散的兩個或多個計算機節點通過局域網絡連接在一起,對于用戶和應用程序來說像一個單一的系統,可以提供一種高性價比、高性能或高可靠性的解決方法。典型的集群系統的結構如圖1所示。

網絡接口硬件負責在節點間通過網絡傳送和接收數據包。集群通常使用網絡通信協議在其節點間進行快速通信。集群各節點可以像集成的計算資源一樣共同工作,而集群中間件負責為獨立但互聯的計算機對外提供統一的系統映象和易用性。編程環境包括消息傳遞庫、調試器和性能分析器,它可以為應用程序的開發提供可移植的、有效和易用的工具。

2 硬件平臺構建

圖2是高性能計算集群硬件和網絡體系結構圖。從圖中可以看出,整個系統由兩類設備組成:節點和交換網絡。

2.1 節點

高性能計算集群中的節點按功能的不同,可以劃分為兩種類型:管理節點和計算節點。系統由1個管理節點和64個計算節點構成。

管理節點是集群系統各種管理措施的控制節點。主要承擔兩種任務:一方面為計算節點提供基本的網絡服務,如DHCP、NIS、NFS等,同時負責調度計算節點上的作業;另一方面,負責監控集群中各個節點和網絡的運行狀況,通常的集群管理軟件也運行在這個節點上。管理節點還是外部世界訪問集群系統的網關,用戶通常登錄到這個節點上編譯并運行作業。系統中采用PC服務器(CPU為Dual IntelXeon 3 GHz/2MB;內存4 GB)作為管理節點。

計算節點是整個集群系統的計算核心。它的功能就是執行計算,一般可根據不同的需要和預算來決定采用什么樣的配置。隨著英特爾架構處理器性能的不斷提高,越來越多的高性能計算系統使用基于英特爾架構的服務器系統作為計算節點。此外,考慮到計算機系統在處理器、內存和輸入/輸出系統三部分之間的通信帶寬的平衡性,一般來講,采用雙路處理器為高性能計算系統的節點是最佳的平衡點。系統中采用SMP服務器(CPU為Dual IntelXeon 3 GHz/2 MB)作為計算節點。由于服務器是64位的CPU和64位的Linux操作系統,因此內存的尋址能力有了很大提高。

系統中每臺計算機都自帶磁盤,將這些磁盤存儲空間配置成兩個文件存儲系統,把高性能SCSI磁盤單獨配置為一個文件系統,用于保存結果數據;通過建立并行文件系統,把所有計算節點的磁盤存儲空間配置成一個超大容量的文件存儲系統,由于采用了并行存儲技術,使得該文件系統的存取速度更快,它被用于數據交換頻繁的中間計算數據的存儲。

2.2 交換網絡

為了提高通信速度,在設計時將計算數據與管理數據進行分離,使計算數據與管理數據由不同的網絡鏈路進行傳輸通信。因此,高性能計算集群系統中必須包含兩個網絡:管理網絡和計算網絡。管理網絡用于對集群中各節點發送管理命令,通過管理網絡,RSH、Telnet和SSH等TCP協議被用來管理集群設備。管理網主要用于傳遞管理信息,通信量相對較少,交換機采用標準千兆交換機連接,其交換機之間互聯帶寬為1 GB。計算網絡用于計算節點間的高速通信,通常由特殊的高速網絡設備構成。當大規模計算中涉及到中細粒度的并行處理時,由于計算節點間有較高的通信需求,計算網絡的性能會成為集群構建中非常重要的問題,目前,高性能計算集群的主要瓶頸通常也是雙工的網絡通信、延遲和全局同步。因此,系統中采用千兆以太網用于計算網絡,考慮性能價格比和端口間高速通信的要求,采用性價比較高的桌面堆疊式高速千兆交換機作為該網的匯聚連接設備,交換機通過堆疊連接端口實現互聯,其互聯帶寬為96 GB。

3 軟件平臺構建

本系統所需要的軟件涉及節點機操作系統、并行編程軟件、集群管理軟件、編譯器、程序庫、系統性能分析與程序調優工具軟件等。圖3為高性能計算集群軟件的組成和結構,以及各層次軟件相應的服務。

3.1 操作系統

操作系統是任何計算機系統的軟件基礎,相對于桌面系統而言,集群系統對操作系統的任務調度和文件管理方面的要求更高。這方面的操作系統包括Unix、Windows NT和Linux。Windows NT操作系統本身在穩定性方面存在缺陷,而商用的Unix系統價格昂貴,所以集群系統采用的操作系統主要是Linux系統。Linux是遵守GPL公共源碼開放協議的類Unix系統,提供了GNU軟件和標準化的MPI消息傳遞機制,更重要的是在普通PC機上提供了對高性能網絡的支持,這樣就大大推動了基于Linux的集群系統的發展。系統中節點機的操作系統使用了RedHat企業版LinuxAS 4.0。

3.2 開發環境

3.2.1 編譯器

對于科學研究中的數值計算,編譯器的優劣對生成的程序的執行效率有著非常明顯的影響。系統中安裝配置了應用最廣的GNU C/C++和Fortran編譯器以及針對至強處理器進行過專門優化的,基于Linux平臺的Intel C++和Fortran9.0編譯器。其中Intel編譯器作為主要編譯器,一般應用都盡可能用Intel編譯器來編譯,以便獲得較好的運行性能。

3.2.2數學庫

聚變模擬研究中最基本的計算包括矩陣運算和線性方程組的求解,這方面英特爾的數學核心庫(Math KernelLibrary)有很好的支撐,它是一個包括線性代數、快速傅里葉變換和矢量超越函數等在內的軟件庫,并針對最新英特爾處理器進行了專門優化。

3.2.3開發工具

開發工具包括并行調試器和性能分析器。調試是程序開發的重要部分,并行程序尤其難調試,更需要調試器的支持。本系統構建中采用了Etnus公司的TotalView,它是一款著名的第三方并行調試器,提供對Linux的支持,對C、C++、Fortran程序的圖形化符號調試,可以調試多線程、多進程和集群應用程序。

程序性能分析可以幫助用戶找到程序中最費時的部分,從而集中精力進行改進和優化,是改進程序性能的有效手段。系統中采用 IntelTraceAnalyzer&Trace Collector集群分析軟件來提供基于事件的跟蹤分析和跟蹤數據采集。通過同時多個事件的采樣,多線程分析,直接多重運行比較,可以按進程、線程、模塊、函數或指令地址來查看數據,實時監視、實時分析,幫助調試確定軟件和硬件的性能瓶頸,并提供解決瓶頸問題的原因分析和揭示改進方法。采用IntelVtune性能分析器來幫程序優化人員快速識別熱點問題并提出代碼改進意見,從而有助于提高代碼性能和縮短代碼執行時間。

3.3 并行計算環境

根據不同的并行程序的開發模式,集群應用支撐層可采用不同的通信標準接口。共享內存模式:在共享內存模型中,數據的交換通過隱含地使用共享內存來完成。目前流行的共享內存模式開發標準是OpenMP[3],支持的編程語言包括 Fortran、C 和 C++。

消息傳遞模式:在消息傳遞模式中,一個并行程序由多個并行任務組成。每個并行任務擁有自己的數據并對其進行計算操作。任務之間數據的交換是通過顯示的消息傳遞語句來完成的。

現在廣泛使用的消息傳遞模型是MPI(Message Passing Interface)。它是一種工業標準的API規范,專門為多處理器計算機和計算機集群上獲得高性能計算而設計。MPI具有很好的可移植性和可擴展性,可以被絕大部分并行環境支持。它是在標準的串行程序設計語言(Fortran、C/C++)的基礎上,再加入實現進程間通信的MPI消息傳遞庫函數。MPI既可以在擁有多臺獨立計算機的集群中使用,也可以在共享內存的計算機上使用。

MPI的實現包括MPICH、LAM、IBM MPL等多個版本,最常用穩定的是MPICH,目前Linux上使用的MPI基本上都是MPICH。MPICH含三層結構,最上層是MPI的API,基本上是點到點的通信以及在點到點通信基礎上構造的Collective通信;中間層是ADI(AbstractDevice Interface)層,是對各種不同的底層通信庫的不同接口的一個設備虛擬層;底層是具體的底層通信庫,例如p4和socket等通信接口。

3.4 資源管理系統

從最終用戶看來,集群系統就好像一臺計算機,很多用戶可以同時使用這個系統。但是,當太多用戶使用集群系統時,管理計算任務的遞交、控制計算任務的運行、區分用戶運行的權限等都是一個十分困難的工作。如果沒有一個好的管理,并行計算機利用效率就很低,系統性能也會變得很差。作為高性能并行計算平臺軟件系統的重要組成部分,資源管理系統軟件可以根據用戶的需求,統一管理和調度大型服務器的軟硬件資源,保證用戶作業公平合理地共享計算資源,提高系統的吞吐率和利用率。平臺構建中采用了TORQUE作業管理系統(圖4)。

TORQUE是基于PBS項目的開源軟件,是開放源代碼軟件OpenPBS的改進版。該軟件提供了對集群計算資源的管理。用戶通過單一切入點使用qsub命令提交作業腳本(即用戶對計算機資源的請求),PBS服務(pbs_server)將這些作業放入隊列并由調度器(pbs_sched)檢查作業隊列,直至可以有足夠的硬件資源來執行它們,將它們從隊列送往執行器(pbs_mom),執行器執行腳本,監控執行狀況并在整個過程結束后將執行情況記錄下來。

圖4 TORQUE結構

3.5 集群管理工具

用于聚變研究的集群環境是多樣和復雜的,在集群系統中通常裝有多個版本的編譯器、應用程序和輔助的算法庫。通常情況下,這些軟件需要設置它自定義的環境變量,對于不熟悉集群系統環境的用戶而言,要正確設置環境變量比較困難。使用Environment Modules能夠解決這個問題,用戶通過簡單的加載和卸載模塊到他們的環境中,從而實現在各個軟件版本間的無縫切換。

為了能夠更集中、高效地管理集群系統,在系統中安裝了并行分布式的shell程序Pdsh和集群節點開/關檢測程序Whatsup。使用Pdsh能夠在集群的所有節點上并行執行命令,從而不需要在每個節點去單獨執行,這對于快速關閉系統和集中地在所有遠程節點上安裝軟件等應用來說非常有效。使用Whatsup能夠快速計算和輸出集群節點的開關狀態,從而快速診斷出問題節點。

為了讓用戶能夠實時看到集群運行時網絡的負載情況,以及各節點的CPU、內存等的使用情況,在管理節點上安裝了開源的Web服務器軟件Apache,并利用Ganglia軟件對集群系統進行監控。Ganglia是一個用來監視集群系統狀態的工具軟件,能夠通過Web以圖表的方式直觀地監控集群內部節點的性能狀況。

4 結語

目前,該系統已經具備大運算量實驗數據處理、數字模擬和控制仿真的能力,并以此為基礎開展了多項國際合作研究,引進了一系列托卡馬克數值模擬代碼,對實驗數據進行分析處理,完成了以前很難完成的一些工作,顯示了該系統高效的并行計算性能,以及對程序可移植性的良好支持。同時它將作為未來建立中國數字TOKAMAK的基礎,并為大規模電力系統計算提供了有力的技術支持。

猜你喜歡
編譯器高性能集群
基于相異編譯器的安全計算機平臺交叉編譯環境設計
運行速度大突破華為《方舟編譯器》詳解
海上小型無人機集群的反制裝備需求與應對之策研究
一種無人機集群發射回收裝置的控制系統設計
Python與Spark集群在收費數據分析中的應用
一款高性能BGO探測器的研發
勤快又呆萌的集群機器人
高性能砼在橋梁中的應用
SATA推出全新高性能噴槍SATAjet 5000 B
高性能可變進氣岐管降低二氧化碳排放
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合