999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于“神威·太湖之光”的區(qū)域海洋模式并行優(yōu)化

2019-07-15 11:56:16倪裕芳黃小猛

吳 琦 倪裕芳 黃小猛

(地球系統(tǒng)數(shù)值模擬教育部重點(diǎn)實(shí)驗(yàn)室(清華大學(xué)地球系統(tǒng)科學(xué)系) 北京 100084) (清華大學(xué)地球系統(tǒng)科學(xué)系 北京 100084) (國(guó)家超級(jí)計(jì)算無(wú)錫中心 江蘇無(wú)錫 214011)

地球系統(tǒng)模擬作為研究全球變化的重要手段,在很多領(lǐng)域都起到了至關(guān)重要的作用,是國(guó)家經(jīng)濟(jì)、軍事、農(nóng)業(yè)等多方面發(fā)展的重要戰(zhàn)略項(xiàng)目.以地球系統(tǒng)模擬中氣候模式為例,模式中氣象預(yù)報(bào)的準(zhǔn)確程度關(guān)乎著國(guó)家的農(nóng)業(yè)、軍事、經(jīng)濟(jì)、國(guó)家安全等眾多方面,與人民生活息息相關(guān).因此,如何提高模式的計(jì)算效率、精準(zhǔn)率一直是國(guó)家重視的問(wèn)題.且隨著模式分辨率不斷的提高,模擬效果會(huì)愈加準(zhǔn)確,所以高分辨率地球系統(tǒng)模擬將是未來(lái)模式發(fā)展的必要趨勢(shì).

海洋模式在地球系統(tǒng)模式中占有重要地位,通過(guò)模擬海洋洋流、漩渦等現(xiàn)象,不僅能夠很好地表示海面溫度和高度分布,還能夠?qū)崟r(shí)預(yù)測(cè)臺(tái)風(fēng)、海嘯等現(xiàn)象.尤其在沿海地帶,海洋模式在航海、漁業(yè)、臺(tái)風(fēng)預(yù)測(cè)等眾多方面都有用武之地.除此之外,海洋模式還是地球系統(tǒng)模式中計(jì)算量較大的模塊,且為海冰等其他模式提供驅(qū)動(dòng)力.綜上所述,提高海洋模式的分辨率、計(jì)算效率,能夠大幅提高地球系統(tǒng)模擬的性能,為國(guó)家建設(shè)保駕護(hù)航.

近年來(lái),為了提高模擬的準(zhǔn)確性以及更好地理解和預(yù)測(cè)海洋氣候系統(tǒng)演變,海洋模式變得越來(lái)越復(fù)雜[1-2].復(fù)雜性源于2個(gè)主要部分:1)增加更多在之前的研究中未被考慮的物理過(guò)程[3-4].考慮到當(dāng)前典型的海洋模型已經(jīng)相當(dāng)復(fù)雜,具有數(shù)十萬(wàn)行代碼[5],實(shí)現(xiàn)、調(diào)試和維護(hù)這些新增加的物理過(guò)程對(duì)于模式開(kāi)發(fā)人員顯然是一個(gè)極其沉重的負(fù)擔(dān).2)對(duì)更高時(shí)空分辨率日益增長(zhǎng)的需求,這不僅源自更高的精確性要求,也是模擬海洋動(dòng)力學(xué)多尺度過(guò)程相互依賴(lài)的必要條件[6-8].在更廣泛的空間和時(shí)間尺度[9-12]中對(duì)高分辨率海洋建模需要比之前更多的計(jì)算資源,這些計(jì)算資源只能由超級(jí)計(jì)算機(jī)提供.

超級(jí)計(jì)算機(jī)自出世以來(lái),在天氣預(yù)報(bào)、軍事、核業(yè)、航天等科技領(lǐng)域大展身手,其性能已成為衡量國(guó)家科技能力的一個(gè)標(biāo)準(zhǔn).隨著散熱和功耗成為通用處理器的主要瓶頸,多核、眾核以及由此導(dǎo)致的異構(gòu)已成為下一代超級(jí)計(jì)算機(jī)的發(fā)展趨勢(shì)[13].近年來(lái),隨著NVIDIA公司專(zhuān)門(mén)為浮點(diǎn)計(jì)算設(shè)計(jì)的GPU,Intel公司設(shè)計(jì)的MIC卡逐漸普及,異構(gòu)體系結(jié)構(gòu)也逐步成為了超級(jí)計(jì)算機(jī)的主流方向.得益于高效率的計(jì)算以及并行機(jī)制的發(fā)展,不少科學(xué)研究在超級(jí)計(jì)算機(jī)這個(gè)大平臺(tái)上的取得了顯著的效果.例如: 2008年,Michalakes等人[14]利用GPU將WRF模式中的一個(gè)計(jì)算密集型過(guò)程加速了25倍;2010年Song等人[15]利用OpenACC方式,加速了POP(parallel ocean program)中某些函數(shù),達(dá)到2.2倍加速效果.由此可見(jiàn),異構(gòu)眾核的超級(jí)計(jì)算機(jī)體系結(jié)構(gòu)大幅度提高計(jì)算效率,推動(dòng)了模式的發(fā)展.

綜上所述,為了提高海洋模式的分辨率、計(jì)算效率,本文基于國(guó)產(chǎn)超級(jí)計(jì)算機(jī)“神威·太湖之光”[16],移植并優(yōu)化了適用于異構(gòu)眾核體系結(jié)構(gòu)的高分辨率區(qū)域海洋模式swPOM(Sunway Princeton ocean model).這一模式充分發(fā)揮了國(guó)產(chǎn)異構(gòu)眾核平臺(tái)的特點(diǎn)和優(yōu)勢(shì),能夠進(jìn)行高分辨率的區(qū)域海洋數(shù)值模擬,并且在性能上與通用平臺(tái)相比得到2.8倍左右的提升,為實(shí)時(shí)預(yù)報(bào)平臺(tái)提供了保障.本文主要貢獻(xiàn)有3個(gè)方面:

1) 在區(qū)域海洋模式POM[17](Princeton ocean model)的基礎(chǔ)上,基于異構(gòu)眾核超級(jí)計(jì)算機(jī)“神威·太湖之光”實(shí)現(xiàn)了高分辨率區(qū)域海洋模式swPOM.

2) 充分利用眾核優(yōu)勢(shì)和大規(guī)模并行優(yōu)化技術(shù),swPOM的性能達(dá)到傳統(tǒng)超算平臺(tái)的2.8倍以上,并且能夠擴(kuò)展到25萬(wàn)核規(guī)模以上.

Fig. 1 Heterogeneous many-core processor — SW26010圖1 異構(gòu)眾核處理器——申威26010

1 相關(guān)工作

海洋模式自1967年誕生以來(lái)發(fā)展迅速,至今已經(jīng)有40多個(gè)海洋模式版本,包括對(duì)不同區(qū)域和不同學(xué)科的海洋模式[18].其中比較有代表性有全球海洋模式[19](modular ocean model, MOM),POP[20],區(qū)域海洋模式[21](regional ocean model system, ROMS),POM等.目前多數(shù)海洋模式已經(jīng)能夠較為精確地模擬海面溫度和高度的分布、海流分布等過(guò)程,而有些模式更是充分利用海洋資料同化系統(tǒng)開(kāi)發(fā)海氣耦合模式,這些都是海洋模式發(fā)展的重要方向.海洋模式本質(zhì)上是用數(shù)值方法來(lái)模擬和預(yù)測(cè)海洋未來(lái)變化趨勢(shì).而大規(guī)模模式低下的計(jì)算效率、海量的輸出數(shù)據(jù)、頻繁的通信以及高需求的存儲(chǔ)空間使得高分辨率海洋模式發(fā)展成為了一個(gè)巨大的挑戰(zhàn).依賴(lài)于處理器性能的不斷提升和超級(jí)計(jì)算機(jī)體系結(jié)構(gòu)不斷的演變與發(fā)展,尤其是多核處理器、集成眾核處理器等形式的誕生,有越來(lái)越多的模式研究人員將模式調(diào)整后移植到超級(jí)計(jì)算機(jī)上,計(jì)算效率得到了空前的提升.

例如mpiPOM[22](the message passing interface version of the POM)在POM的基礎(chǔ)上增加了MPI并行化,在邏輯上采用2維剖分,每個(gè)進(jìn)程的劃分模塊包含4個(gè)方向的halo區(qū),用于與周邊進(jìn)程進(jìn)行數(shù)據(jù)交互.2014年Huang等人[23]將POM移植到GPU平臺(tái),利用4個(gè)K20 GPU進(jìn)行數(shù)值模擬,性能能夠媲美408個(gè)CPU.除了通過(guò)并行提高計(jì)算效率之外,針對(duì)模式中輸出數(shù)據(jù)海量的特點(diǎn),美國(guó)大氣研究協(xié)會(huì)特地開(kāi)發(fā)了NetCDF(network common data form)標(biāo)準(zhǔn),以便對(duì)輸出數(shù)據(jù)進(jìn)行格式統(tǒng)一.而基于該標(biāo)準(zhǔn)之上的高效并行IO庫(kù)PnetCDF(parallel NetCDF)能夠提高超級(jí)計(jì)算機(jī)IO資源的利用率,縮短模式IO時(shí)間.

綜上所述,在國(guó)產(chǎn)異構(gòu)眾核超算平臺(tái)上設(shè)計(jì)發(fā)展高分辨率海洋模式具有深遠(yuǎn)意義,不僅意味著可以模擬中小尺度、更加細(xì)致性的物理海洋現(xiàn)象,而且也能保證模擬速度滿(mǎn)足時(shí)間約束性極強(qiáng)的實(shí)時(shí)預(yù)報(bào)系統(tǒng).

2 “神威·太湖之光”系統(tǒng)概述及POM性能分析

2.1 “神威·太湖之光”

“神威·太湖之光”超級(jí)計(jì)算機(jī)采用的處理器是我國(guó)自主研發(fā)設(shè)計(jì)的異構(gòu)眾核處理器——申威26010處理器.如圖1所示,神威眾核處理器采用片上融合的異構(gòu)體系結(jié)構(gòu),每個(gè)芯片共有4個(gè)異構(gòu)群和群間傳輸網(wǎng)絡(luò)組成.每個(gè)異構(gòu)群包括1個(gè)主核、64個(gè)從核簇以及存儲(chǔ)器,其中主核的工作頻率為1.5 GHz,L1 Cache為32 KB,L2 Cache為256 KB.與一般Intel處理器不同,由于神威眾核處理器特殊的從核簇結(jié)構(gòu),CPU上不包含L3 Cache,從核的工作頻率也為1.5 GHz,每個(gè)從核可用的獨(dú)享存儲(chǔ)空間(local device memory, LDM)為64 KB,每個(gè)從核對(duì)其獨(dú)享的LDM存儲(chǔ)空間具有較高的數(shù)據(jù)讀取速度.主核和從核簇通過(guò)異構(gòu)群接口與存儲(chǔ)器相連,兩者共享存儲(chǔ)器存儲(chǔ)空間.4個(gè)異構(gòu)群和系統(tǒng)接口總線通過(guò)群間傳輸網(wǎng)絡(luò)進(jìn)行存儲(chǔ)共享和通信.

相比于一般的處理器,神威眾核處理器雖然舍棄了L3 Cache存儲(chǔ)空間,但由于其從核的特殊性,若通過(guò)有效設(shè)計(jì)計(jì)算核心代碼,使其能在從核間并行運(yùn)行,能夠達(dá)到比在一般處理器上更好的計(jì)算效果.理論上,申威26010處理器的雙精度浮點(diǎn)數(shù)峰值性能為3.06TFLOPS,“神威·太湖之光”的理論雙精度浮點(diǎn)峰值運(yùn)算速度可達(dá)到100PFLOPS.

Fig. 2 Master-slave collaborative accelerationparallel mode圖2 主從加速并行模式

根據(jù)申威處理器異構(gòu)眾核的特性,我們需要分析科學(xué)計(jì)算中不同計(jì)算核心的可并行性,盡量將能夠加速并行的計(jì)算核心段加載到從核簇上并行運(yùn)行,主核則完成不可以在從核上并行加速的計(jì)算段以及通信部分.如圖2所示,在模式中包括A,B,C這3個(gè)計(jì)算核心,主核在完成計(jì)算核心A后,將計(jì)算核心B加載到眾核上進(jìn)行并行加速,在此期間主核進(jìn)行等待,計(jì)算完畢后返回主核繼續(xù)計(jì)算計(jì)算核心C,這種方式能夠充分發(fā)揮眾核的優(yōu)勢(shì).比主從加速并行模式更理想的是主從異步并行模式,即主核和從核同時(shí)計(jì)算不同的工作,之后再進(jìn)行數(shù)據(jù)同步等操作.但在真實(shí)科學(xué)計(jì)算中很難有如此之高的并行性,尤其是復(fù)雜的海洋模式,目前無(wú)法進(jìn)行主從異步并行加速.

2.2 區(qū)域海洋模式POM

區(qū)域海洋模式POM是一種強(qiáng)大的海洋模型,已廣泛應(yīng)用于模擬河流、江口、湖泊、半封閉海域以及開(kāi)放的全球海洋中水流的循環(huán)和混合過(guò)程.同時(shí)也是很多實(shí)時(shí)海洋、臺(tái)風(fēng)預(yù)報(bào)系統(tǒng)的核心模塊,已經(jīng)被運(yùn)用于地中海預(yù)報(bào)系統(tǒng)[24]、GFDL(Geophysical Fluid Dynamics Laboratory)颶風(fēng)預(yù)報(bào)系統(tǒng)[25-26]、美國(guó)颶風(fēng)預(yù)報(bào)系統(tǒng)[27-28]以及臺(tái)灣海洋預(yù)報(bào)系統(tǒng)[29]等.POM的主要特征是:在垂直方向使用sigma坐標(biāo),在水平方向使用Arakawa C[30]網(wǎng)格.為了有效地處理海洋的快速波動(dòng),采用模式分裂方法處理快速表面重力波和其他慢波,分別模擬正壓(外模態(tài))和斜壓(內(nèi)模態(tài))模式并在一定時(shí)間步長(zhǎng)后耦合在一起.整個(gè)模式的運(yùn)行流程如圖3所示.其中外模態(tài)循環(huán)迭代次數(shù)最多,需要計(jì)算的量也多,是POM中最為耗時(shí)的模塊.

Fig. 3 The flowchart of POM圖3 POM程序運(yùn)行流程圖

3 POM移植及性能分析

為了實(shí)現(xiàn)高分辨率區(qū)域海洋模式的高效模擬,我們首先將mpiPOM從通用x86平臺(tái)下移植到國(guó)產(chǎn)異構(gòu)眾核超級(jí)計(jì)算機(jī)上.而模式的運(yùn)行效率受模式分辨率、模擬的總時(shí)間、程序的并行程度、模式的初始狀態(tài)等多方面因素影響.因此,設(shè)計(jì)1組基準(zhǔn)實(shí)驗(yàn)版本對(duì)于后續(xù)的測(cè)試分析至關(guān)重要.我們規(guī)定后續(xù)的實(shí)驗(yàn)中,POM都以臺(tái)灣海峽作為模擬場(chǎng)景,統(tǒng)一模式的全局分辨率為11 522×5 186,與“高分辨率海洋模式”契合,模式的迭代步長(zhǎng)為10 s,一共迭代20步,最后進(jìn)行1次數(shù)據(jù)輸出.在此基礎(chǔ)上,設(shè)計(jì)2組基準(zhǔn)實(shí)驗(yàn).

1) 性能測(cè)試.固定全局分辨率(11 522×5 186)、每個(gè)進(jìn)程的局部分辨率(578×578),測(cè)試在180核規(guī)模下加速后不同版本的POM運(yùn)行效率,運(yùn)行時(shí)間越短表明并行加速效果越好.

2) 強(qiáng)擴(kuò)展性測(cè)試.固定全局分辨率(11 522×5 186)、改變運(yùn)行時(shí)投入的計(jì)算資源,測(cè)試POM在不同核數(shù)規(guī)模下的運(yùn)行效率,從而反映出區(qū)域海洋模式的擴(kuò)展性.一般情況下,程序運(yùn)行時(shí)間會(huì)隨著核數(shù)規(guī)模的擴(kuò)大而逐漸減小,假如核數(shù)規(guī)模擴(kuò)大了k倍,加速后模式的運(yùn)行時(shí)間越接近于原始版本運(yùn)行時(shí)間的1k倍,表明擴(kuò)展性越好.

我們將移植后的程序視為基準(zhǔn)版本,對(duì)其進(jìn)行2組基準(zhǔn)實(shí)驗(yàn)測(cè)試,對(duì)模式中的各個(gè)模塊測(cè)試并進(jìn)行性能分析.區(qū)域海洋模式POM移植前在通用Intel CPU的架構(gòu)下進(jìn)行性能測(cè)試實(shí)驗(yàn)大概需要55 s左右,程序移植到“神威·太湖之光”上采用純主核運(yùn)行基準(zhǔn)實(shí)驗(yàn)1大概需要241 s左右.

Fig. 4 The runtime percentage of each module圖4 POM各模塊耗時(shí)百分比

在進(jìn)行性能優(yōu)化之前,我們先對(duì)移植后的POM進(jìn)行性能分析.首先進(jìn)行熱點(diǎn)分析.在基準(zhǔn)實(shí)驗(yàn)1下,我們分析POM中各個(gè)子模塊耗時(shí)情況和特點(diǎn),能夠幫助我們定位性能瓶頸并針對(duì)各個(gè)模塊的特點(diǎn)找到可行的加速方法.如圖4所示,可以發(fā)現(xiàn)在180核的情況下,主要是動(dòng)力計(jì)算模塊耗時(shí)較多,占到了約93%的比例,而通信和其他模塊所占比例只有不到7%.動(dòng)力過(guò)程的計(jì)算elf,uaf,vaf,pro,vort等模塊都是經(jīng)典的stencil過(guò)程.可以看到,POM各模塊耗時(shí)非常平均,基本沒(méi)有主要的熱點(diǎn)模塊,必須針對(duì)這些模塊的特性進(jìn)行特定的性能優(yōu)化.

在擴(kuò)展性分析方面,我們分別測(cè)試基準(zhǔn)實(shí)驗(yàn)2在160,180,216,288,576,720,1 152,1 620,2 304,2 880,3 240,3 840核數(shù)規(guī)模下POM的運(yùn)行時(shí)間,如圖5所示.可以發(fā)現(xiàn)在同一全局分辨率下,隨著核數(shù)增加,即每個(gè)進(jìn)程內(nèi)局部分辨率減小,POM的原始版本運(yùn)行耗時(shí)會(huì)逐漸縮小,在500核之前擴(kuò)展性表現(xiàn)都不錯(cuò).但在核數(shù)規(guī)模增大到一定規(guī)模后,由于進(jìn)程間通信變得愈加頻繁,進(jìn)程初始化、回收等影響,程序運(yùn)行耗時(shí)變化趨勢(shì)越來(lái)越平緩.此外,在3 840核數(shù)規(guī)模下運(yùn)行時(shí)間僅僅為8.91 s,比160核規(guī)模下提高了高達(dá)31倍的運(yùn)行效率,由此可見(jiàn)擴(kuò)大高分辨率海洋模式的核數(shù)規(guī)模能夠滿(mǎn)足眾多實(shí)時(shí)預(yù)報(bào)系統(tǒng)對(duì)時(shí)間的約束性.

Fig. 5 The strong scalability of original POM圖5 POM在純主核上的強(qiáng)擴(kuò)展性

圖6展示了不同核數(shù)規(guī)模下通信在POM中的耗時(shí)占比的變化情況.在180核數(shù)規(guī)模下,通信耗時(shí)占比為1.1%,而隨著核數(shù)規(guī)模的提升,通信模塊耗時(shí)占比逐漸上升.在3 840大規(guī)模核數(shù)下,通信耗時(shí)比占到了24%.mpiPOM的通信目的是交換邊界數(shù)據(jù),假設(shè)當(dāng)前進(jìn)程內(nèi)的網(wǎng)格大小為x×y,則需要進(jìn)行通信的數(shù)據(jù)為該矩形網(wǎng)格的4個(gè)邊界(最外圍網(wǎng)格除外),即通信部分?jǐn)?shù)據(jù)量大小為2x+2y,因此通信耗時(shí)占比公式可以簡(jiǎn)化為

(1)

其中,a1,a2為相關(guān)系數(shù),a1表示通信效率,a2表示計(jì)算效率.從式(1)能夠發(fā)現(xiàn),隨著x和y(即局部分辨率)逐漸縮小,通信耗時(shí)比p會(huì)逐漸增大.式(1)僅僅只考慮了通信量,然而隨著更多的計(jì)算資源投入其中,大量的MPI初始化、回收等也會(huì)成為制約因素.鑒于核數(shù)規(guī)模上升到一定程度后,通信部分會(huì)成為制約效率的關(guān)鍵因素,因此盲目增加計(jì)算資源、大肆擴(kuò)大運(yùn)行核數(shù)所帶來(lái)的運(yùn)行效果提升是非常有限的,有時(shí)甚至?xí)m得其反.

Fig. 6 The proportion of communication time of POM using different number of cores圖6 不同核數(shù)規(guī)模下通信在POM中的耗時(shí)占比

4 面向異構(gòu)眾核處理器的并行優(yōu)化方法

4.1 主從協(xié)同計(jì)算方案

POM將區(qū)域海洋劃分為2維網(wǎng)格,每個(gè)網(wǎng)格之間具有天然并行性.而對(duì)于每一個(gè)網(wǎng)格內(nèi)部,則可以規(guī)約為求解每個(gè)時(shí)刻每個(gè)點(diǎn)的速度、位置等變量,且這些變量只與上一步的迭代狀態(tài)相關(guān),只影響下一步的迭代狀態(tài).因此我們可以挖掘更細(xì)粒度的并行性,實(shí)現(xiàn)“基于MPI進(jìn)程級(jí)并行+眾核線程級(jí)并行”的兩級(jí)并行方式.但由于從核中的LDM存儲(chǔ)空間僅有64 KB,難以存放計(jì)算核心中需要的所有變量,因此我們采用在代碼層面對(duì)耗時(shí)多的循環(huán)進(jìn)行眾核并行的方式.

對(duì)循環(huán)的眾核級(jí)并行方案如下:最外層循環(huán)進(jìn)行眾核加速,由于每個(gè)從核簇有64個(gè)從核,因此在劃分網(wǎng)格時(shí)最好能夠?qū)⑼鈱友h(huán)對(duì)應(yīng)的維度設(shè)置為64的整數(shù)倍,以求最大程度得利用從核.內(nèi)部循環(huán)的計(jì)算核心分為2個(gè)模塊在從核運(yùn)行:第1模塊為所需要的數(shù)據(jù)訪存通信,即從核向主核發(fā)起通信讀入或?qū)懗鲇?jì)算所需數(shù)據(jù);第2模塊為計(jì)算部分,即計(jì)算核心在64個(gè)從核上并行的運(yùn)行.眾核級(jí)加速的偽代碼如圖7所示.

Fig. 7 The pseudo code of many-core parallelism圖7 眾核并行偽代碼示意圖

根據(jù)上述眾核并行加速方案,假如一個(gè)任務(wù)在主核上運(yùn)行的時(shí)間為T(mén),則用主從加速并行方法的總時(shí)間為從核的計(jì)算時(shí)間加上從核與主核的通信時(shí)間.由于“神威·太湖之光”的主從核頻率相當(dāng),通過(guò)num個(gè)從核并行計(jì)算,該任務(wù)的運(yùn)行時(shí)間為T(mén)num.假設(shè)每次數(shù)據(jù)通信的開(kāi)銷(xiāo)為cost,一共要進(jìn)行N次主從核間通信,故通信總時(shí)間為cost×N.由此可得眾核加速比為

(2)

雖然從核的LDM存儲(chǔ)空間僅有64 KB,但在網(wǎng)格剖分時(shí)每個(gè)網(wǎng)格的分辨率也不會(huì)太大,所以絕大部分計(jì)算核心都能夠進(jìn)行循環(huán)級(jí)并行.但模式中少數(shù)循環(huán)會(huì)有較為復(fù)雜的操作,導(dǎo)致變量無(wú)法全部讀進(jìn)LDM空間,因此還需要對(duì)內(nèi)部循環(huán)進(jìn)行分塊處理.

4.2 從核訪存優(yōu)化方案

海洋模式在求解的離散偏微分方程中會(huì)使用大量的stencil操作,往往涉及到多個(gè)方向上的差分.以POM中計(jì)算elf過(guò)程為例:

for(j=1;j

for(i=1;i

elf[j][i]=elb[j][i]+dte2×(-(fluxua[j][i+1]-fluxua[j][i]+fluxva[j+1][i]-fluxva[j][i]art[j][i]-vfluxf[j][i]);

}

}

在計(jì)算點(diǎn)(j,i)點(diǎn)上的物理量時(shí),需要相鄰點(diǎn)(j,i+1)和(j+1,i)的值,有些計(jì)算過(guò)程甚至需要更多相鄰點(diǎn)參與計(jì)算.而計(jì)算機(jī)體系結(jié)構(gòu)決定了多維數(shù)組在內(nèi)存中只能有最低維的數(shù)據(jù)是相鄰的,如果要連續(xù)訪問(wèn)高維數(shù)組便不可避免有大量離散訪存的行為,對(duì)于cache的重用性極低.

在POM的advave,vort,bcond模塊中,有大量跨步訪問(wèn)的方式.這也導(dǎo)致從核從主核讀取數(shù)據(jù)時(shí),需要大量的跨步訪問(wèn).針對(duì)這種現(xiàn)象,我們采用圖8所示的優(yōu)化策略,對(duì)計(jì)算核心進(jìn)行調(diào)整.首先在主存中將離散訪問(wèn)的數(shù)組調(diào)整為能夠連續(xù)訪存的數(shù)組,本質(zhì)上就是開(kāi)辟一塊新的空間,調(diào)整高低維順序,之后從核就能夠在計(jì)算過(guò)程中連續(xù)訪問(wèn)數(shù)組內(nèi)容.調(diào)整之后的訪存效率遠(yuǎn)高于原先的方式,從而大幅度提高計(jì)算效率.最后在計(jì)算結(jié)束后回寫(xiě)數(shù)據(jù)時(shí)再次將數(shù)組調(diào)整為原始狀態(tài).

Fig. 8 The diagram of memory access optimization圖8 訪存優(yōu)化示意圖

4.3 主從核異步數(shù)據(jù)交互方案

觀察POM的程序,我們發(fā)現(xiàn)在計(jì)算uaf,pro,bcond模塊的時(shí)候,對(duì)于從核LDM存儲(chǔ)空間的利用率不高.因此我們引入雙緩沖機(jī)制,讓主從核間實(shí)現(xiàn)數(shù)據(jù)的異步交互,從而降低或隱藏從核通信開(kāi)銷(xiāo).

在對(duì)涉及變量較少的計(jì)算模塊進(jìn)行主從核加速時(shí),往往在從核的LDM存儲(chǔ)空間上申請(qǐng)2倍于通信數(shù)據(jù)大小的存儲(chǔ)空間,用來(lái)存放2份同樣大小且互相為對(duì)方緩沖的數(shù)據(jù).原先的循環(huán)方式如圖9(a)所示,每次迭代的時(shí)候都先讀入數(shù)據(jù)、進(jìn)行計(jì)算,最后寫(xiě)回?cái)?shù)據(jù).而雙緩沖的具體過(guò)程如圖9(b)所示,除了第1次讀入數(shù)據(jù)以及最后1次寫(xiě)回?cái)?shù)據(jù)不與計(jì)算重疊,其他的數(shù)據(jù)通信都與計(jì)算過(guò)程相重疊.在進(jìn)行當(dāng)前次計(jì)算的同時(shí),讀入下一輪次的數(shù)據(jù)作為下一次迭代的基礎(chǔ),同時(shí)在該輪次寫(xiě)回上一輪次已經(jīng)計(jì)算好的數(shù)據(jù),通過(guò)該方式能夠?qū)⒂?jì)算核心和通信過(guò)程相互重疊,從而達(dá)到加速的效果.

Fig. 9 Asynchronous interaction between master and slave cores圖9 主從核異步交互示意圖

假設(shè)每次讀入、寫(xiě)回?cái)?shù)據(jù)的通信開(kāi)銷(xiāo)為cost,n次讀入、寫(xiě)回?cái)?shù)據(jù)中一共有n-1次能夠與計(jì)算模塊重疊,因此能夠與計(jì)算模塊重疊的最大通信開(kāi)銷(xiāo)為cost×(n-1).其中第1次讀入數(shù)據(jù)和最后1次寫(xiě)回?cái)?shù)據(jù)無(wú)法與計(jì)算模塊重疊,這部分通信開(kāi)銷(xiāo)總和為p.而原先的計(jì)算模塊在純主核下消耗的時(shí)間為T(mén),通過(guò)num個(gè)從核的從核簇并行運(yùn)行計(jì)算消耗的時(shí)間則為T(mén)num.因此眾核加速比為眾核加速比

(3)

與主從核協(xié)同交互方法相比較,主從核異步數(shù)據(jù)交互方法相當(dāng)于在此基礎(chǔ)上又將計(jì)算模塊與訪存通信模塊相互隱藏,提高了計(jì)算效率.可以發(fā)現(xiàn)當(dāng)計(jì)算模塊與訪存通信模塊耗時(shí)越相近時(shí),加速效果越好,最多能夠達(dá)到接近于2倍的加速效果.

5 面向“神威·太湖之光”大規(guī)模并行優(yōu)化方法

5.1 并行通信優(yōu)化方案

當(dāng)并行規(guī)模擴(kuò)展到一定規(guī)模,應(yīng)用中通信占比也會(huì)隨之增大,應(yīng)用的熱點(diǎn)也會(huì)逐漸從核心計(jì)算轉(zhuǎn)移到通信,通信開(kāi)銷(xiāo)會(huì)成為整個(gè)海洋模式的性能瓶頸.

POM中采用的是傳統(tǒng)的阻塞型通信,即計(jì)算與通信模式是串行的,如圖10所示:

Fig. 10 The halo region update pattern圖10 單進(jìn)程halo區(qū)通信示意圖

每一步迭代中每個(gè)進(jìn)程先向其他進(jìn)程發(fā)送邊界數(shù)據(jù),同時(shí)接受周?chē)M(jìn)程的邊界數(shù)據(jù);然后再進(jìn)行核心計(jì)算,更新完數(shù)據(jù)進(jìn)入下一輪迭代.可以將兩者的串行邏輯解耦成計(jì)算與通信重疊的運(yùn)算邏輯.主核在做邊界通信的同時(shí),眾核沒(méi)有必要等待其通信結(jié)束后再進(jìn)行計(jì)算,而是去進(jìn)行內(nèi)部格點(diǎn)的核心計(jì)算,從而達(dá)到計(jì)算與通信相互隱藏.計(jì)算與通信重疊的具體方法為:

1) 每個(gè)進(jìn)程首先采用異步方式(非阻塞通信)向周邊進(jìn)程發(fā)送其需要的數(shù)據(jù);

2) 每個(gè)進(jìn)程發(fā)起異步接受req請(qǐng)求,從周邊進(jìn)程接收本進(jìn)程需要的數(shù)據(jù);

3) 每個(gè)進(jìn)程通過(guò)從核并行計(jì)算內(nèi)部inner區(qū)域并更新內(nèi)部數(shù)據(jù);

4) 檢查每個(gè)進(jìn)程req請(qǐng)求是否完成,通過(guò)完成后得到的邊界數(shù)據(jù)進(jìn)行邊界的計(jì)算并更新邊界數(shù)據(jù).

通過(guò)計(jì)算與通信重疊的方式,能夠有效地將通信消耗隱藏于計(jì)算中,尤其是當(dāng)核數(shù)規(guī)模上升后,通信耗時(shí)占比增大的情況下,該方法能夠取得不錯(cuò)的效果.

5.2 并行IO優(yōu)化方案

Fig. 11 Original I/O mode vs CFIO I/O mode圖11 原始模式I/O與使用CFIO進(jìn)行I/O方式對(duì)比

使用CFIO的swPOM運(yùn)行方式與原有方式略微不同.方式1是原有運(yùn)行模式,先進(jìn)行數(shù)值計(jì)算;然后所有進(jìn)程進(jìn)行IO,并等待IO完成再進(jìn)行下一步的數(shù)值計(jì)算,依次循環(huán).而CFIO中,計(jì)算進(jìn)程會(huì)把IO請(qǐng)求轉(zhuǎn)發(fā)給IO進(jìn)程,待請(qǐng)求轉(zhuǎn)發(fā)之后便進(jìn)行下一步的數(shù)值計(jì)算,從而實(shí)現(xiàn)IO與計(jì)算的相互重疊.

6 實(shí)驗(yàn)結(jié)果及分析

6.1 面向異構(gòu)眾核處理器的并行優(yōu)化方法結(jié)果分析

在POM的不同模塊中使用主從協(xié)同計(jì)算方案,經(jīng)過(guò)加速后的swPOM v1.0版本與Original POM版本在基準(zhǔn)實(shí)驗(yàn)1的性能對(duì)比,如表1所示.除了邊界bcond模塊與通信comm模塊,其他模塊均取得了顯著的加速比,在180核下swPOM v1.0只需要運(yùn)行45 s,取得了5.3倍的加速比.

Table 1Performance Comparison Between swPOM

v1.0 and Original POM

表1 swPOM v1.0與Original POM性能對(duì)比

Module180 Master CoresOriginal POM180 Master-slaveCores swPOM v1.0Runtime∕sRuntime Ratio∕%Runtime∕sRuntime Ratio∕%elf18.1467.5401.4323.172uaf36.13215.0131.7863.957vaf34.75714.4422.1674.800pro24.07210.0021.8904.188egf15.3356.3721.0132.244advave36.16115.0255.67312.568vort58.63924.36512.87828.531bcond10.5824.39710.93724.230comm2.7321.1351.2292.723others4.1131.7096.13313.587All240.66910045.138100

Note: The bold cells in the table represent the modules accelerated by the master-slave collaboration.

為了進(jìn)一步驗(yàn)證swPOM v1.0在各個(gè)并行規(guī)模下的運(yùn)行效率,我們也對(duì)其進(jìn)行了強(qiáng)擴(kuò)展性測(cè)試,結(jié)果如圖12所示.與Original POM相比,在不同的核數(shù)規(guī)模下均取得了2倍及以上的加速效果.

Fig. 12 The strong scalability of swPOM v1.0圖12 swPOM v1.0在純主核上的強(qiáng)擴(kuò)展性

通過(guò)分析POM每個(gè)模塊的代碼,我們發(fā)現(xiàn)advave,vort,bcond這3個(gè)模塊中有大量的離散訪問(wèn)形式.表2中展示了對(duì)這3個(gè)模塊進(jìn)行訪存優(yōu)化的數(shù)據(jù),分別達(dá)到了2.2倍、4.5倍以及9.3倍的加速比.而swPOM v1.1版本整體運(yùn)行效率也比swPOM v1.0加速了2倍左右,該版本相較于通用Intel平臺(tái)下55 s的運(yùn)行效率也達(dá)到了2倍多的加速比,這為實(shí)時(shí)預(yù)報(bào)系統(tǒng)提供了有效的保障.圖13展示了swPOM v1.1相比v1.0版本的擴(kuò)展性,由于v1.1版本中引入了調(diào)整數(shù)組的過(guò)程,3 840核相比160核下的加速比有所下降,但絕對(duì)運(yùn)行時(shí)間相比v1.0版有所提升.

Table 2The Performance Comparison Between swPOM

v1.1 and swPOM v1.0

表2 swPOM v1.1與swPOM v1.0性能對(duì)比

Module180 Master-slaveCores swPOM v1.0180 Master-slaveCores swPOM v1.1Runtime∕sRuntime Ratio∕%Runtime∕sRuntime Ratio∕%advave5.67312.5682.58911.157vort12.87828.5312.86812.359bcond10.93724.2301.1745.059All45.13810023.206100

Note: The bold cells in the table represent the modules accelerated by thememory access optimization.

Fig. 13 The strong scalability comparison betweenswPOM v1.1 and swPOM v1.0圖13 swPOM v1.1與 v1.0在純主核上的強(qiáng)擴(kuò)展性對(duì)比

主從異步數(shù)據(jù)交互方案的條件比較苛刻,因此我們只在180核的基準(zhǔn)測(cè)試實(shí)驗(yàn)下對(duì)uaf,pro,bcond模塊采用了上述優(yōu)化,運(yùn)行效率分別提升了20%,95%和30%.其中pro模塊95%的效率提升意味著該模塊中計(jì)算與從核訪存通信已經(jīng)基本完全重疊,相互隱藏.

6.2 面向“神威·太湖之光”大規(guī)模并行優(yōu)化方法的結(jié)果分析

使用計(jì)算與通信重疊的優(yōu)化方法后,在180核規(guī)模下有43%的通信模塊與計(jì)算重疊,隱藏于計(jì)算過(guò)程中.而swPOM中還有些通信是一對(duì)多的求和收集、廣播通知等,無(wú)法與計(jì)算模塊重疊,因此通信模塊達(dá)到1.8倍加速比已經(jīng)比較理想.

Table 3 The Comparison Between Original IO and CFIO表3 正常IO與CFIO對(duì)比

Table 3 The Comparison Between Original IO and CFIO表3 正常IO與CFIO對(duì)比

Module180 Processes (I∕O)180 Processes (CFIO)Runtime∕sRuntime Ratio∕%Runtime∕sRuntime Ratio∕%Without I∕O433.28273.537I∕O155.92126.463All589.203100497.216100

6.3 與通用平臺(tái)性能對(duì)比分析

CESS是清華大學(xué)運(yùn)行維護(hù)的一款通用x86計(jì)算平臺(tái),由80臺(tái)服務(wù)器組成;每臺(tái)服務(wù)器包含有2個(gè)Intel處理器,其中每個(gè)處理器的主頻為2.1 GHz,具有32 K L1 Cache,256 K L2 Cache,15369K L3 Cache.相比于“神威·太湖之光”,CESS具有更高的主核頻率,且具有L3 Cache.我們將最終版本swPOM與運(yùn)行在CESS上的Original POM進(jìn)行性能對(duì)比,結(jié)果如表4所示:

Table 4 The Performance Comparison Between swPOM andOriginal POM(on CESS)表4 swPOM與Original POM(CESS)性能對(duì)比

可以發(fā)現(xiàn),因?yàn)镃ESS的主核頻率高且有L3 Cache,Original POM運(yùn)行基準(zhǔn)實(shí)驗(yàn)1只需要55 s.而“神威·太湖之光”的主核頻率低,且沒(méi)有L3 Cache,故Original POM在純主核下運(yùn)行基準(zhǔn)實(shí)驗(yàn)1需要241 s.但經(jīng)過(guò)上述一系列并行優(yōu)化后,swPOM在眾核并行下將運(yùn)行基準(zhǔn)實(shí)驗(yàn)1的時(shí)間縮短到了19 s內(nèi),運(yùn)行效率達(dá)到了純主核的13倍,CESS通用Intel平臺(tái)下的2.8倍以上,將模擬時(shí)間整整縮短到原先的一半以下.這對(duì)于一些實(shí)時(shí)預(yù)報(bào)系統(tǒng)是強(qiáng)有力的保障,為構(gòu)建高分辨率海洋模式奠定了堅(jiān)實(shí)的基礎(chǔ).

7 結(jié)束語(yǔ)

近年來(lái)發(fā)展高分辨率海洋模式已經(jīng)成為必然趨勢(shì),本文基于國(guó)產(chǎn)超級(jí)計(jì)算機(jī)“神威·太湖之光”,利用其異構(gòu)眾核體系結(jié)構(gòu)的優(yōu)勢(shì)對(duì)區(qū)域海洋模式POM進(jìn)行移植并優(yōu)化,充分發(fā)揮了國(guó)產(chǎn)異構(gòu)眾核平臺(tái)的特點(diǎn)和優(yōu)勢(shì).不同于一些簡(jiǎn)單的科學(xué)計(jì)算,只有唯一的熱點(diǎn)函數(shù),POM的熱點(diǎn)模塊很多而且耗時(shí)占比非常平均.swPOM基于POM各個(gè)模塊的特點(diǎn),對(duì)其計(jì)算核心進(jìn)行主從協(xié)同加速、數(shù)據(jù)訪問(wèn)優(yōu)化、從核數(shù)據(jù)訪問(wèn)與計(jì)算重疊和計(jì)算通信異步屏蔽等,將整體的模擬效率提升到傳統(tǒng)超算平臺(tái)的2.8倍以上,同時(shí)能夠擴(kuò)展到25萬(wàn)核的規(guī)模.此外,swPOM還集成了高效的異步IO庫(kù)CFIO,通過(guò)將資源合理分配成計(jì)算與IO進(jìn)程,采用請(qǐng)求轉(zhuǎn)發(fā)的方式將IO過(guò)程與科學(xué)計(jì)算過(guò)程相互重疊.在相同資源下,與180核同時(shí)進(jìn)行計(jì)算與IO的形式相比,整體性能提升了約20%.

在未來(lái)的研究工作中,經(jīng)過(guò)一系列優(yōu)化之后原先占比很小的非熱點(diǎn)模塊成為了swPOM的主要熱點(diǎn),這些模塊后續(xù)還有繼續(xù)優(yōu)化的空間.此外我們?cè)谑褂肅FIO的時(shí)候,通過(guò)對(duì)比實(shí)驗(yàn)選擇了一個(gè)合適的計(jì)算與IO的進(jìn)程比,而不同的分配比往往會(huì)影響程序的性能,這一方面也有待進(jìn)一步研究.

主站蜘蛛池模板: av尤物免费在线观看| 青青青视频91在线 | 成人免费黄色小视频| 国产精品高清国产三级囯产AV| 国产精品女主播| 国产麻豆另类AV| 亚洲日本中文字幕乱码中文| 欧美日韩资源| 亚洲天堂视频在线免费观看| 久久精品中文字幕免费| 91精品综合| 国产情侣一区二区三区| 国产杨幂丝袜av在线播放| 精品国产成人av免费| 亚洲人成影院在线观看| 91口爆吞精国产对白第三集| 国产精品人莉莉成在线播放| 国产精品无码久久久久久| 久久国产黑丝袜视频| 在线a网站| 久久女人网| 国产一级毛片高清完整视频版| a级毛片免费看| 青青操国产视频| 国产一级精品毛片基地| 欧美亚洲一二三区| 国产不卡在线看| 色播五月婷婷| 在线99视频| 中国丰满人妻无码束缚啪啪| 91香蕉国产亚洲一二三区| 亚洲伦理一区二区| 国产精品三级av及在线观看| 一本一道波多野结衣一区二区| 午夜一级做a爰片久久毛片| 毛片国产精品完整版| 国产白丝av| 91日本在线观看亚洲精品| 国产色网站| 最新无码专区超级碰碰碰| 精品欧美一区二区三区久久久| 国产女同自拍视频| 亚洲色图欧美激情| 中文字幕人妻无码系列第三区| 99er精品视频| 亚洲欧美精品在线| 亚洲视屏在线观看| 狠狠干综合| 91口爆吞精国产对白第三集| 精品欧美日韩国产日漫一区不卡| 亚洲AV永久无码精品古装片| 亚洲综合国产一区二区三区| 国产午夜不卡| 99热国产这里只有精品无卡顿"| 强奷白丝美女在线观看| 免费毛片a| 美女一区二区在线观看| 中文字幕欧美日韩| 久久精品女人天堂aaa| 国产www网站| 欧美区一区| 日韩天堂在线观看| 免费jizz在线播放| 国产真实乱子伦精品视手机观看| 狠狠色婷婷丁香综合久久韩国| 午夜视频日本| 狠狠色婷婷丁香综合久久韩国| 一个色综合久久| 欧洲精品视频在线观看| 国产精品男人的天堂| 国产精品夜夜嗨视频免费视频| 无套av在线| 免费A∨中文乱码专区| 精品无码一区二区在线观看| 欧美特黄一级大黄录像| 色婷婷综合在线| 久久香蕉国产线看观| 亚洲av无码人妻| 免费午夜无码18禁无码影院| 99re在线免费视频| 欧美一区二区三区香蕉视| 久久大香伊蕉在人线观看热2|