国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于集群技術(shù)的高性能計算系統(tǒng)研究平臺的構(gòu)建

2013-10-10 03:22:42趙玉廣孫愛國郎美娜王曉軍吉林醫(yī)藥學(xué)院信息中心吉林吉林132013
關(guān)鍵詞:編譯器高性能集群

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

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

1 基本體系結(jié)構(gòu)

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

網(wǎng)絡(luò)接口硬件負(fù)責(zé)在節(jié)點間通過網(wǎng)絡(luò)傳送和接收數(shù)據(jù)包。集群通常使用網(wǎng)絡(luò)通信協(xié)議在其節(jié)點間進(jìn)行快速通信。集群各節(jié)點可以像集成的計算資源一樣共同工作,而集群中間件負(fù)責(zé)為獨立但互聯(lián)的計算機(jī)對外提供統(tǒng)一的系統(tǒng)映象和易用性。編程環(huán)境包括消息傳遞庫、調(diào)試器和性能分析器,它可以為應(yīng)用程序的開發(fā)提供可移植的、有效和易用的工具。

2 硬件平臺構(gòu)建

圖2是高性能計算集群硬件和網(wǎng)絡(luò)體系結(jié)構(gòu)圖。從圖中可以看出,整個系統(tǒng)由兩類設(shè)備組成:節(jié)點和交換網(wǎng)絡(luò)。

2.1 節(jié)點

高性能計算集群中的節(jié)點按功能的不同,可以劃分為兩種類型:管理節(jié)點和計算節(jié)點。系統(tǒng)由1個管理節(jié)點和64個計算節(jié)點構(gòu)成。

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

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

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

2.2 交換網(wǎng)絡(luò)

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

3 軟件平臺構(gòu)建

本系統(tǒng)所需要的軟件涉及節(jié)點機(jī)操作系統(tǒng)、并行編程軟件、集群管理軟件、編譯器、程序庫、系統(tǒng)性能分析與程序調(diào)優(yōu)工具軟件等。圖3為高性能計算集群軟件的組成和結(jié)構(gòu),以及各層次軟件相應(yīng)的服務(wù)。

3.1 操作系統(tǒng)

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

3.2 開發(fā)環(huán)境

3.2.1 編譯器

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

3.2.2數(shù)學(xué)庫

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

3.2.3開發(fā)工具

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

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

3.3 并行計算環(huán)境

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

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

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

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

3.4 資源管理系統(tǒng)

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

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

圖4 TORQUE結(jié)構(gòu)

3.5 集群管理工具

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

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

為了讓用戶能夠?qū)崟r看到集群運行時網(wǎng)絡(luò)的負(fù)載情況,以及各節(jié)點的CPU、內(nèi)存等的使用情況,在管理節(jié)點上安裝了開源的Web服務(wù)器軟件Apache,并利用Ganglia軟件對集群系統(tǒng)進(jìn)行監(jiān)控。Ganglia是一個用來監(jiān)視集群系統(tǒng)狀態(tài)的工具軟件,能夠通過Web以圖表的方式直觀地監(jiān)控集群內(nèi)部節(jié)點的性能狀況。

4 結(jié)語

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

猜你喜歡
編譯器高性能集群
基于相異編譯器的安全計算機(jī)平臺交叉編譯環(huán)境設(shè)計
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
電子制作(2018年11期)2018-08-04 03:25:40
Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
一款高性能BGO探測器的研發(fā)
電子制作(2017年19期)2017-02-02 07:08:49
勤快又呆萌的集群機(jī)器人
高性能砼在橋梁中的應(yīng)用
SATA推出全新高性能噴槍SATAjet 5000 B
高性能可變進(jìn)氣岐管降低二氧化碳排放
汽車零部件(2014年8期)2014-12-28 02:03:03
通用NC代碼編譯器的設(shè)計與實現(xiàn)
政和县| 灵寿县| 迁西县| 桃江县| 增城市| 芷江| 莆田市| 贵定县| 阳东县| 崇义县| 手机| 十堰市| 衢州市| 八宿县| 永州市| 西盟| 石台县| 昂仁县| 东乌珠穆沁旗| 莲花县| 蒙自县| 阿图什市| 泰安市| 蕉岭县| 黄平县| 盐津县| 梁河县| 蒙山县| 郧西县| 辽宁省| 边坝县| 双鸭山市| 衡水市| 油尖旺区| 宽甸| 双柏县| 黔西县| 夏邑县| 兰考县| 油尖旺区| 香河县|