• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于集成眾核的高性能計(jì)算軟件優(yōu)化

      2015-02-04 13:21楊志昱張旭東
      電子技術(shù)與軟件工程 2014年22期
      關(guān)鍵詞:矢量化

      楊志昱 張旭東

      在異構(gòu)計(jì)算系統(tǒng)上進(jìn)行的并行計(jì)算通常稱為異構(gòu)計(jì)算,基于異構(gòu)計(jì)算的高性能計(jì)算技術(shù)是目前高性能計(jì)算領(lǐng)域的發(fā)展熱點(diǎn)之一,異構(gòu)計(jì)算技術(shù)具有計(jì)算能力強(qiáng)、可擴(kuò)展性好、計(jì)算資源利用率高等優(yōu)點(diǎn)。將現(xiàn)有的應(yīng)用算法移植到異構(gòu)計(jì)算平臺是對軟件性能不斷優(yōu)化的過程。本文將從一個開發(fā)者的角度講述基于Intel集成眾核(MIC)的架構(gòu)和基于該架構(gòu)的軟件優(yōu)化思路和技術(shù)手段。

      【關(guān)鍵詞】高性能計(jì)算 異構(gòu)計(jì)算 矢量化 MIC

      得益于高性能計(jì)算領(lǐng)域的飛速發(fā)展,地震數(shù)據(jù)處理發(fā)生著翻天覆地的變化,高密度大數(shù)據(jù)體的處理已經(jīng)習(xí)以為常,疊前偏移成像也被廣泛應(yīng)用,每當(dāng)高性能計(jì)算領(lǐng)域有新技術(shù)誕生,我們的地震數(shù)據(jù)處理系統(tǒng)都面臨著更大的機(jī)遇和挑戰(zhàn)。

      如今,高性能計(jì)算產(chǎn)業(yè)正在經(jīng)歷著一場深刻的變革,引導(dǎo)這場變革的主角就是異構(gòu)計(jì)算。目前主流的集群架構(gòu)系統(tǒng),采用的是多核CPU的同構(gòu)模式,就是將多個計(jì)算節(jié)點(diǎn)通過網(wǎng)絡(luò)連接,形成高性能計(jì)算集群,而異構(gòu)計(jì)算則是CPU加異構(gòu)協(xié)助理器來實(shí)現(xiàn)。地震數(shù)據(jù)處理系統(tǒng)緊跟高性能計(jì)算技術(shù)步伐,也逐步開展了基于MIC高性能計(jì)算的軟件研發(fā)工作。

      1 MIC架構(gòu)

      MIC架構(gòu)將多個英特爾 CPU 核心整合到了單個芯片上,通過 PCI Express 總線連接英特爾至強(qiáng)服務(wù)器(也稱為“主機(jī)”),我們稱之為協(xié)處理器。一個協(xié)處理器主要包括多個處理核心、高速緩存、內(nèi)存控制器、PCIe客戶端邏輯和帶寬極高的雙向環(huán)形互連,每個核心配有專用的二級高速緩存,所有這些組件都由環(huán)形互連連接在一起。MIC協(xié)處理器核心的一另個重要組件是矢量處理單元 (VPU), VPU包括一種新型的 512 位 SIMD 指令集。

      對于軟件開發(fā)者,MIC架構(gòu)的重要屬性如下:

      (1)每個MIC卡可以設(shè)置獨(dú)立的IP,可以把每個MIC卡當(dāng)作獨(dú)立的節(jié)點(diǎn)。

      (2)MIC卡擁有512bit的向量位寬,可以同時處理16個32-bit浮點(diǎn)/整形元素或8個64-bit浮點(diǎn)/整形元素的計(jì)算。

      (3)MIC卡包含32KB L1指令cache和32KB L1數(shù)據(jù)cache,同時,每個核擁有全局可見的L2 cache,大小為512KB;

      (4)卡上有一個微操作系統(tǒng)(uos);

      (5)MIC基于X86架構(gòu),支持多種并行模型,如OpenMP、pThread、MPI等,可以采用C、C++和Fortran三種語言進(jìn)行軟件移植開發(fā),編程簡單;

      (6)提供類似于英特爾至強(qiáng)處理器編程環(huán)境的通用編程環(huán)境,有豐富的開發(fā)工具支持,開發(fā)工具包括編譯器、線程庫和高性能數(shù)學(xué)庫等眾多庫、性能分析調(diào)優(yōu)工具以及并行調(diào)試器。

      在選擇編程模型時,鑒于MIC支持CPU多核上的并行編程模型,因此,MIC與CPU多核之間的編程很靈活,MIC與CPU相結(jié)合可以采用的編程模式有三種:Offload模式,native模式和對等模式。

      (1)Offload模式,Offload模式可以以CPU為host端,即CPU為主MIC為輔;也可以以MIC為host端,即MIC為主CPU為輔。其中,CPU為主MIC為輔模式是MIC編程中最常用的模式,該模式的執(zhí)行過程是將數(shù)據(jù)傳送到MIC卡上,在MIC上進(jìn)行計(jì)算,計(jì)算完成后,將結(jié)果傳送回CPU。在編寫程序時通過編譯制導(dǎo)語句,標(biāo)示所要使用MIC加速的代碼段。Offload語句通常會與OpenMP語句相結(jié)合,以開啟多線程使用MIC設(shè)備并行化執(zhí)行。

      (2)native模式,該模式是只運(yùn)行在MIC卡上的程序,原有的CPU的程序,只要在編譯時加上“-mmic”就可編譯得到,

      (3)CPU與MIC對等模式,程序主函數(shù)在CPU與MIC端同時發(fā)起,這時MIC作為一個獨(dú)立的節(jié)點(diǎn)存在,與運(yùn)行跨CPU節(jié)點(diǎn)的并行程序相同,需要通過MIC函數(shù)接口進(jìn)行數(shù)據(jù)間的通信。

      2 算法優(yōu)化

      大體上看MIC協(xié)處理器非常適合計(jì)算與數(shù)據(jù)訪問比率較高的高度并行應(yīng)用。它包括多達(dá) 61 個通過雙向環(huán)形總線片上連接的 CPU內(nèi)核,每內(nèi)核能夠以輪詢的方式在多達(dá) 4 條硬件線程間進(jìn)行切換,一共可以同時并發(fā)244個硬件線程。從硬件特性可以看出,MIC為高度并行化應(yīng)用設(shè)計(jì)的,用戶為了獲得這種高性能前提是對現(xiàn)有算法進(jìn)行適當(dāng)調(diào)優(yōu),調(diào)整的策略是讓程序具備高度可并發(fā)和矢量化,并能高效利用內(nèi)存。

      (1)高可并發(fā)就是使用多核并發(fā),目前程序開發(fā)的趨勢是無論在個人PC或高性能計(jì)算節(jié)點(diǎn)上,程序都可以使用多核并行運(yùn)行,并發(fā)度越高,效率也越高,在MIC上總共有244條硬件線程可以使用,在實(shí)際應(yīng)用中我們可以使用的pthread或OpenMP來實(shí)現(xiàn)高并發(fā)。如果應(yīng)用算法本身難于進(jìn)行并行劃分,或者非常強(qiáng)調(diào)單線程速度,那就不適合在MIC上進(jìn)行并行化,在MIC上的并發(fā)度要達(dá)到成百上千的規(guī)模才能最大的發(fā)揮其性能。

      (2)矢量化主要是使用 SIMD 寄存器和運(yùn)算,MIC協(xié)處理器引入了512位寬的 SIMD 寄存器,對應(yīng)用程序來說,SIMD架構(gòu)的數(shù)據(jù)并行性可大大提高提高處理器的運(yùn)算速度,為了實(shí)現(xiàn)矢量化,一般有三種方式:一是使用編譯優(yōu)化選項(xiàng),二是使用SIMD指示,三是使用SIMD指令編程。

      (3)內(nèi)存和高速緩存,如果應(yīng)用算法對計(jì)算能力的需求不高,而數(shù)據(jù)處理量很大,那也不適合在眾核上進(jìn)行加速,因?yàn)槟壳癕IC最大的缺點(diǎn)同時也是開發(fā)人員需要注意的就是訪存帶寬,即使SIMD的存在可以提高處理器的運(yùn)算速度,由于架構(gòu)自身提供的向量寄存器數(shù)目十分有限,數(shù)據(jù)需要頻繁的在向量寄存器和Cache之間傳輸,使得并行能力的不到足夠的發(fā)揮,因此,有效的減少數(shù)據(jù)在內(nèi)存和Cache間的傳輸開銷在提高應(yīng)用程序性能上變的至關(guān)重要,提高Cache命中率和向量寄存器的使用效率是提升性能的重要途徑。

      除了上面所涉及到的影響MIC性能的要素外,我們在單線程內(nèi)還必須保持較高的數(shù)據(jù)計(jì)算與系統(tǒng)調(diào)用比,如果我們的線程內(nèi)計(jì)算工作量非常有限,那線程的運(yùn)行就主要消粍在了在線程的創(chuàng)建與同步的系統(tǒng)調(diào)用上,而系統(tǒng)調(diào)用在MIC卡的運(yùn)行速度非常有限,所以必須避免在線程內(nèi)有過多的系統(tǒng)調(diào)用出現(xiàn)。

      3 結(jié)束語

      基于異構(gòu)計(jì)算的高性能計(jì)算技術(shù)是目前高性能計(jì)算領(lǐng)域的發(fā)展熱點(diǎn)之一,隨著該技術(shù)的不斷完善和發(fā)展,將會有更多的應(yīng)用軟件利用該技術(shù)實(shí)現(xiàn)計(jì)算性能的提升,開發(fā)人員必須盡快熟悉和掌握這種開發(fā)技術(shù),以支撐物探軟件的持續(xù)開發(fā)和進(jìn)步。

      參考文獻(xiàn)

      [1]王恩東,張清.等 MIC高性能計(jì)算編程指南[M].北京:中國水利水電出版社,2012.

      [2]Intel Xeon Phi Coprocessor Instruction Set Architecture Reference Manual.

      作者單位

      東方地球物理公司物探技術(shù)研究中心 河北省涿州市 072750endprint

      猜你喜歡
      矢量化
      蝴蝶書簽現(xiàn)代設(shè)計(jì)與制造技術(shù)的研究
      DEM的建立及其在林業(yè)上的應(yīng)用
      基于VP Studio和CASS的柵格地形圖矢量化方法
      遙感圖像多尺度分割算法與矢量化算法的集成
      矢量化技術(shù)在檔案管理中的應(yīng)用
      潜山县| 濮阳市| 高州市| 武功县| 游戏| 衡水市| 汶上县| 西乌珠穆沁旗| 乡城县| 松原市| 民丰县| 中西区| 科技| 延长县| 田阳县| 揭东县| 新干县| 康平县| 鹤庆县| 从化市| 宝坻区| 平罗县| 清镇市| 汾阳市| 三原县| 澎湖县| 洪湖市| 灵寿县| 九寨沟县| 塔河县| 来宾市| 巨野县| 库尔勒市| 平阴县| 巴塘县| 长沙县| 报价| 武隆县| 隆尧县| 石楼县| 黎平县|