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

?

面向眾核處理器的水動(dòng)力學(xué)CFD并行計(jì)算探索

2021-09-07 17:31張亞英吳乘勝王建春劉宏斌
船舶 2021年4期
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)異構(gòu)超級(jí)計(jì)算機(jī)

張亞英 吳乘勝 王建春 劉宏斌

(1. 中國(guó)船舶科學(xué)研究中心 無(wú)錫 214082;2. 國(guó)家超級(jí)計(jì)算無(wú)錫中心 無(wú)錫 214072)

引 言

高性能計(jì)算已深入諸多科學(xué)與工程應(yīng)用領(lǐng)域的數(shù)值模擬中,成為科技創(chuàng)新和提升核心競(jìng)爭(zhēng)力的重要手段和支撐。具體到船舶水動(dòng)力學(xué)領(lǐng)域,隨著CFD計(jì)算量成幾何量級(jí)增長(zhǎng),對(duì)計(jì)算能力的要求越來(lái)越高,在超級(jí)計(jì)算機(jī)上開(kāi)展大規(guī)模計(jì)算漸趨普遍。

近年來(lái),超級(jí)計(jì)算機(jī)架構(gòu)正在發(fā)生由同構(gòu)向異構(gòu)發(fā)展的變革。由于“主頻墻”的限制,單核處理器計(jì)算性能趨于極限;由于“通信墻”的限制,基于分布式的并行計(jì)算無(wú)法在大規(guī)模并行中獲得優(yōu)秀的加速效果;由于“功耗墻”的限制,通過(guò)大規(guī)模擴(kuò)展通用處理器(CPU)提升計(jì)算能力也不太現(xiàn)實(shí)。因此,異構(gòu)眾核逐漸成為超級(jí)計(jì)算機(jī)架構(gòu)的發(fā)展趨勢(shì)。以2020年6月22日發(fā)布的超級(jí)計(jì)算機(jī)TOP500榜單為例,其中144臺(tái)都采用加速器或協(xié)處理器,也就是采用異構(gòu)眾核架構(gòu);在榜單前10名中,8臺(tái)采用異構(gòu)眾核架構(gòu);而近十年來(lái)登頂?shù)某?jí)計(jì)算機(jī),全部采用異構(gòu)眾核架構(gòu)。

異構(gòu)是相對(duì)于同構(gòu)而言,因此先簡(jiǎn)單介紹一下同構(gòu)架構(gòu)。同構(gòu)架構(gòu)中所有的計(jì)算核心都是由CPU構(gòu)成,所有計(jì)算核心的邏輯處理能力和數(shù)據(jù)計(jì)算能力都很強(qiáng),不受計(jì)算任務(wù)復(fù)雜度的影響;但其缺點(diǎn)是成本高、功耗大。異構(gòu)與同構(gòu)相比,計(jì)算核心的種類不同,一般既有CPU,也有協(xié)處理器。異構(gòu)系統(tǒng)可以進(jìn)行深層次并行,使計(jì)算任務(wù)劃分更加細(xì)化,并行程度更高。典型的異構(gòu)眾核處理器架構(gòu)包括CPU+GPU架構(gòu)、CPU+MIC架構(gòu)等,“神威·太湖之光”超級(jí)計(jì)算機(jī)的國(guó)產(chǎn)申威架構(gòu)SW26010處理器,也屬于異構(gòu)眾核架構(gòu)。

異構(gòu)眾核架構(gòu)使得超級(jí)計(jì)算機(jī)的計(jì)算能力大幅度提升,但對(duì)CFD高性能計(jì)算也是挑戰(zhàn)。因?yàn)橐獙?shí)現(xiàn)對(duì)計(jì)算資源的充分利用,需要從數(shù)值算法、數(shù)據(jù)結(jié)構(gòu)、計(jì)算流程等各個(gè)層面進(jìn)行重構(gòu)和優(yōu)化。NASA的《CFD Vision 2030 Study》報(bào)告也將其列為重大技術(shù)挑戰(zhàn)。

國(guó)內(nèi)外不少研究人員針對(duì)CPU+GPU架構(gòu)、CPU+MIC架構(gòu),開(kāi)展了CFD眾核并行計(jì)算研究;也有少量基于開(kāi)源軟件針對(duì)國(guó)產(chǎn)申威架構(gòu)的CFD眾核并行計(jì)算研究??傮w看來(lái),目前CFD界遠(yuǎn)未實(shí)現(xiàn)對(duì)異構(gòu)眾核超算能力的有效利用,有以下原因:

(1)目前常用CFD軟件的并行計(jì)算,大多數(shù)是針對(duì)MPI并行設(shè)計(jì)的,一般不適合在異構(gòu)眾核平臺(tái)上運(yùn)行。

(2)CFD計(jì)算通常具有全局相關(guān)性特點(diǎn),并行規(guī)模的增大帶來(lái)了并行復(fù)雜度與通訊開(kāi)銷的增加,導(dǎo)致并行效率下降;同時(shí)水動(dòng)力學(xué)CFD常用的SIMPLE算法的流程相對(duì)復(fù)雜,增加了細(xì)粒度并行優(yōu)化的難度,異構(gòu)加速面臨巨大挑戰(zhàn)。

(3)CFD軟件一般具有數(shù)據(jù)結(jié)構(gòu)復(fù)雜、計(jì)算流程復(fù)雜和代碼量龐大等特點(diǎn),從程序移植到優(yōu)化,都需要大量的重構(gòu)工作,難度和工作量相當(dāng)大。

本文面向異構(gòu)眾核處理器,開(kāi)展水動(dòng)力學(xué)CFD并行計(jì)算探索研究,為自主CFD求解器與國(guó)產(chǎn)超級(jí)計(jì)算機(jī)硬件的有效結(jié)合進(jìn)行關(guān)鍵技術(shù)攻關(guān)。針對(duì)國(guó)產(chǎn)申威26010異構(gòu)眾核處理器,對(duì)水動(dòng)力學(xué)CFD中典型的SIMPLE算法和人工壓縮算法,從數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分配和數(shù)據(jù)結(jié)構(gòu)等多個(gè)方面入手,設(shè)計(jì)眾核并行計(jì)算方法,通過(guò)典型算例測(cè)試和驗(yàn)證眾核加速效果,并針對(duì)SIMPLE算法計(jì)算熱點(diǎn)分散的特點(diǎn),采用循環(huán)融合的方法對(duì)其計(jì)算流程進(jìn)行優(yōu)化,使SIMPLE算法和人工壓縮算法分別獲得11倍和24倍的最高加速。該項(xiàng)研究工作,初步展現(xiàn)眾核處理器在水動(dòng)力學(xué)CFD并行計(jì)算中的應(yīng)用潛力,并將為自主CFD求解器與國(guó)產(chǎn)超級(jí)計(jì)算機(jī)硬件的有效結(jié)合提供技術(shù)儲(chǔ)備。

1 水動(dòng)力學(xué)CFD計(jì)算方法

水動(dòng)力學(xué)CFD計(jì)算處理的通常為不可壓縮粘性流動(dòng),其無(wú)量綱化積分形式控制方程組如下:

本文采用基于交錯(cuò)網(wǎng)格的有限體積法離散控制方程。論文在求解控制方程組時(shí),使用了兩種數(shù)值算法——SIMPLE算法和人工壓縮算法,兩種算法的求解流程參見(jiàn)圖1。

圖1 SIMPLE和人工壓縮算法計(jì)算流程

2 CFD模擬并行計(jì)算方案

2.1 國(guó)產(chǎn)申威眾核處理器簡(jiǎn)介

“神威·太湖之光”超級(jí)計(jì)算機(jī)系統(tǒng),采用的是國(guó)產(chǎn)申威架構(gòu)SW26010處理器。處理器本身就包括控制核心和計(jì)算核心陣列,相當(dāng)于把CPU和加速處理器集成到一個(gè)芯片上,其內(nèi)部架構(gòu)見(jiàn)下頁(yè)圖2。

圖2 SW26010處理器架構(gòu)示意圖

SW26010處理器包含4個(gè)核組(CG),各核組之間采用片上網(wǎng)絡(luò)(NOC)互聯(lián),每個(gè)核組內(nèi)包含1個(gè)主控制核心(主核,MPE)、1個(gè)從核(CPE)集群(由64個(gè)從核組成)、1個(gè)協(xié)議處理單元(PPU)和1個(gè)內(nèi)存控制器(MC)。核組內(nèi)采用共享存儲(chǔ)架構(gòu),內(nèi)存與主/從核之間可通過(guò)MC傳輸數(shù)據(jù)。

與其他異構(gòu)眾核架構(gòu)一樣,SW26010處理器的計(jì)算能力主要體現(xiàn)在從核上;但相比于GPU和MIC,從核上的存儲(chǔ)空間和帶寬較小,往往使數(shù)據(jù)傳輸成為程序運(yùn)行的瓶頸。

2.2 主要并行工具與函數(shù)

Athread與OpenACC*均可用來(lái)進(jìn)行從核并行,與OpenACC*相比,Athread的操作性更高,可以通過(guò)調(diào)用相關(guān)實(shí)現(xiàn)數(shù)據(jù)傳輸和從核運(yùn)算的自主可控,加速部分不再只限于循環(huán)計(jì)算,能夠更加方便對(duì)并行方案進(jìn)行設(shè)計(jì)。

完整的從核加速過(guò)程通常包含以下函數(shù),如表1所示。

表1 Athread常用行數(shù)

2.3 眾核并行計(jì)算方案設(shè)計(jì)

2.3.1 數(shù)據(jù)存儲(chǔ)模式

由于本文采用交錯(cuò)網(wǎng)格,速度

u

、

v

和壓力

p

3個(gè)主要變量存儲(chǔ)在3套網(wǎng)格上,數(shù)據(jù)量和計(jì)算索引均不統(tǒng)一,將會(huì)使尋址過(guò)程變得更加復(fù)雜。為此,本文中采用一種特殊的數(shù)據(jù)存儲(chǔ)模式(如圖3所示):將速度

u

、

v

相對(duì)壓力

p

多出的數(shù)據(jù)單獨(dú)存儲(chǔ),此時(shí),

u

、

v

、

p

共同存儲(chǔ)在主控制體上,且擁有相同的索引,從而簡(jiǎn)化尋址過(guò)程、提高尋址效率。

圖3 交錯(cuò)網(wǎng)格下變量分布和存儲(chǔ)方式

2.3.2 數(shù)據(jù)分配

本文采用循環(huán)并行,由于從核局部空間大小有限(64 KB),因此合理分配數(shù)據(jù)才能充分利用從核局部空間和計(jì)算資源。數(shù)據(jù)分配方案設(shè)計(jì)為:設(shè)定單個(gè)從核單次計(jì)算的數(shù)據(jù)量NS,則64個(gè)從核一次能夠計(jì)算64×

NS

個(gè)數(shù)據(jù),當(dāng)數(shù)據(jù)量很大時(shí),可以將數(shù)據(jù)分批多次加載到從核上進(jìn)行計(jì)算。此時(shí),可以根據(jù)當(dāng)前的加載次數(shù)

k

、當(dāng)前次加載的數(shù)據(jù)量

N

以及從核ID號(hào),確定當(dāng)前從核(線程)所計(jì)算數(shù)據(jù)的起始位置,并從主存獲取數(shù)據(jù)。同時(shí),為了考察通信的影響,論文對(duì)單獨(dú)一個(gè)循環(huán)進(jìn)行測(cè)試,測(cè)試對(duì)象為人工壓縮算法中內(nèi)部單元壓強(qiáng)的計(jì)算過(guò)程,結(jié)果見(jiàn)圖4。從圖4可見(jiàn),當(dāng)

NS

增大時(shí),加速比逐漸上升并趨于定值(左圖)。其原因?yàn)椋弘S著

NS

值的增加,通信占比逐漸降低并趨于定值(右圖),從而使計(jì)算過(guò)程的加速效果愈發(fā)突顯。

圖4 不同NS值下加速比、通信占比和計(jì)算占比變化曲線

2.3.3 數(shù)據(jù)結(jié)構(gòu)

根據(jù)數(shù)據(jù)分配方案,NS代表從核計(jì)算的數(shù)據(jù)量,而從核局部空間的大小使單個(gè)從核存儲(chǔ)的數(shù)據(jù)量有限;同時(shí),由于CFD計(jì)算過(guò)程復(fù)雜,將數(shù)據(jù)以結(jié)構(gòu)體形式合理存儲(chǔ),可使數(shù)據(jù)的傳輸和使用更為方便。但是,將多個(gè)變量集中在一個(gè)數(shù)據(jù)結(jié)構(gòu)中,必然會(huì)造成在當(dāng)前計(jì)算中部分變量未使用的情況,這樣既增加通信負(fù)擔(dān),又占據(jù)存儲(chǔ)空間。因此,合理的數(shù)據(jù)結(jié)構(gòu)非常重要。

由于CFD程序中有多個(gè)計(jì)算熱點(diǎn)需要并行化,因此對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行針對(duì)性的設(shè)計(jì)比較困難,本文將重點(diǎn)放在盡量減少無(wú)用數(shù)據(jù)的存儲(chǔ)和傳輸上。在CFD程序中,將系數(shù)變量組成單個(gè)結(jié)構(gòu)體,將

u

、

v

、

p

以主控制單元的形式組成結(jié)構(gòu)體,并在此基礎(chǔ)上設(shè)計(jì)了如圖5所示的數(shù)組結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組兩種形式,用于對(duì)比兩者并行加速效果。

圖5 兩種數(shù)據(jù)結(jié)構(gòu)

3 典型流動(dòng)眾核并行計(jì)算結(jié)果與分析

3.1 并行計(jì)算結(jié)果

本文以二維方腔驅(qū)動(dòng)流CFD模擬為算例,研究眾核并行的加速效果。

方腔驅(qū)動(dòng)流,是指方腔中的不可壓縮流體隨頂蓋勻速運(yùn)動(dòng)過(guò)程中的流動(dòng)及流場(chǎng)結(jié)構(gòu)變化等現(xiàn)象,具有幾何外形簡(jiǎn)單、流動(dòng)結(jié)構(gòu)特征顯著、邊界條件容易實(shí)施等特點(diǎn),常被用作不可壓縮流動(dòng)模擬結(jié)果驗(yàn)證和數(shù)值算法測(cè)試的典型算例。數(shù)值模擬中,邊界條件都可采用速度邊界:其中上邊界(頂蓋)有水平方向速度,其他邊界滿足無(wú)滑移條件。

使用SIMPLE和人工壓縮算法,分別采用數(shù)組結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組兩種數(shù)據(jù)結(jié)構(gòu),開(kāi)展不同網(wǎng)格單元數(shù)(100×100 ~1 000×1 000)情況下、

Re

= 1 000工況方腔驅(qū)動(dòng)流的CFD模擬。圖6給出了方腔水平中線與垂直中線上的無(wú)量綱速度分布數(shù)值計(jì)算結(jié)果,下頁(yè)表2則給出主渦和次渦相對(duì)位置的數(shù)值模擬結(jié)果;圖表中同時(shí)給出文獻(xiàn)[10]中Ghia的計(jì)算結(jié)果。

圖6 方腔水平和垂直中線上速度分布(左)及方腔內(nèi)部流線分布(右),Re=1 000

本文在并行計(jì)算過(guò)程中,并未改變迭代方法等計(jì)算過(guò)程,因此,不同的數(shù)據(jù)結(jié)構(gòu)和算法應(yīng)有基本一致的計(jì)算結(jié)果。根據(jù)圖6以及表2可以看出:無(wú)論是速度分布或主渦與次渦的渦心坐標(biāo),均與參考文獻(xiàn)的結(jié)果十分接近,這也說(shuō)明并行計(jì)算結(jié)果的正確性。

表2 渦心位置計(jì)算結(jié)果

圖7給出不同網(wǎng)格單元數(shù)情況下,眾核并行的加速情況。從圖中可以看出:

圖7 眾核并行加速曲線

(1)隨著網(wǎng)格單元數(shù)增加,加速比逐漸上升并趨于平穩(wěn);

(2)從兩種算法的對(duì)比來(lái)看,人工壓縮算法的加速效果(最高約24倍)優(yōu)于SIMPLE算法(最高約9倍);

(3)從兩種數(shù)據(jù)結(jié)構(gòu)的對(duì)比來(lái)看,采用數(shù)組結(jié)構(gòu)體并行加速效果優(yōu)于采用結(jié)構(gòu)體數(shù)組。

3.2 對(duì)SIMPLE算法計(jì)算流程的優(yōu)化

根據(jù)上一節(jié)的研究可以發(fā)現(xiàn),在采用相同數(shù)據(jù)結(jié)構(gòu)的情況下,SIMPLE算法的并行加速效果明顯不如人工壓縮算法。其原因是SIMPLE算法的計(jì)算流程更為復(fù)雜(見(jiàn)圖1),從而導(dǎo)致計(jì)算熱點(diǎn)分布較為分散。表3給出了SIMPLE算法和人工壓縮算法的計(jì)算熱點(diǎn)分析結(jié)果。

表3 SIMPLE算法和人工壓縮算法計(jì)算熱點(diǎn)分析

結(jié)合2.3節(jié)(圖4)通信占比與計(jì)算占比之間的關(guān)系,SIMPLE算法分散的熱點(diǎn)會(huì)導(dǎo)致在眾多的簡(jiǎn)單循環(huán)計(jì)算中,因數(shù)據(jù)量有限,當(dāng)計(jì)算中需多個(gè)變量時(shí),必然造成通信的增加,導(dǎo)致通信相對(duì)計(jì)算有較大的占比,使局部加速效果偏低,進(jìn)而導(dǎo)致整個(gè)CFD計(jì)算程序的并行加速效果不理想。

為此,本文對(duì)SIMPLE算法的計(jì)算流程進(jìn)行優(yōu)化,將SIMPLE算法中非相關(guān)的數(shù)據(jù)計(jì)算過(guò)程進(jìn)行集中處理,即在一個(gè)大循環(huán)中通過(guò)判斷語(yǔ)句進(jìn)行不同的計(jì)算。這樣,在從核計(jì)算中,提高了數(shù)據(jù)的復(fù)用性,減少常用變量的重復(fù)傳輸。流程優(yōu)化前后的計(jì)算熱點(diǎn)對(duì)比見(jiàn)表4。

表4 SIMPLE算法計(jì)算流程優(yōu)化前后計(jì)算熱點(diǎn)分布

由表4可見(jiàn),優(yōu)化后的SIMPLE算法流程,減少了計(jì)算步驟,使計(jì)算熱點(diǎn)分布更加集中,其中

u

v

系數(shù)、

p

局部系數(shù)(由

u

,

v

,

p

計(jì)算的部分)計(jì)算與

u

、

v

方程求解兩部分總和占比超過(guò)74%。

圖8給出了SIMPLE算法計(jì)算流程優(yōu)化前后的眾核并行加速曲線。從圖中可見(jiàn),優(yōu)化算法流程使加速效果略有提升,說(shuō)明計(jì)算熱點(diǎn)分布的集中程度會(huì)影響眾核加速效果,且熱點(diǎn)越集中加速效果越好。

圖8 SIMPLE算法計(jì)算流程優(yōu)化前后并行加速比

同時(shí),對(duì)比圖7和圖8可見(jiàn),即使經(jīng)過(guò)計(jì)算流程優(yōu)化,SIMPLE算法的眾核并行加速效果也遠(yuǎn)未達(dá)到人工壓縮算法的并行加速效果,經(jīng)分析主要原因如下:

(1)SIMPLE算法涉及方程的迭代求解,迭代過(guò)程自身就包含數(shù)據(jù)更新、計(jì)算新值和判斷收斂三部分,而數(shù)據(jù)更新和判斷收斂在單個(gè)迭代步內(nèi)占比較小,但是由于內(nèi)迭代和外迭代的重復(fù)進(jìn)行,也會(huì)影響最終的加速效果。

(2)算法本身計(jì)算過(guò)程中讀取數(shù)據(jù)對(duì)于高速緩存的利用等。

4 結(jié) 語(yǔ)

本文面向異構(gòu)眾核處理器,開(kāi)展不可壓縮流動(dòng)的CFD并行計(jì)算探索研究。針對(duì)國(guó)產(chǎn)申威26010處理器的特點(diǎn),對(duì)SIMPLE算法和人工壓縮算法設(shè)計(jì)了眾核并行計(jì)算方案,并通過(guò)二維方腔驅(qū)動(dòng)流算例測(cè)試和驗(yàn)證了眾核加速效果:人工壓縮算法最高加速約24倍,SIMPLE算法最高加速約11倍。論文的研究工作,初步展現(xiàn)了眾核處理器在不可壓縮流動(dòng)CFD計(jì)算中的應(yīng)用潛力。

論文的研究工作目前還是探索性的:一方面,僅探討了單個(gè)核組使用從核陣列的加速效果,并且諸如寄存器通信、雙緩沖等優(yōu)化方法暫未使用,因此加速效果還有一定的提升空間;另一方面,論文中開(kāi)發(fā)、使用的CFD程序較為簡(jiǎn)單,而面向工程應(yīng)用的大型CFD軟件在數(shù)據(jù)結(jié)構(gòu)、計(jì)算流程等方面復(fù)雜得多,在神威平臺(tái)上進(jìn)行眾核加速,則需要在各方面進(jìn)行更多的探索和研究。

猜你喜歡
數(shù)據(jù)結(jié)構(gòu)異構(gòu)超級(jí)計(jì)算機(jī)
超級(jí)計(jì)算機(jī)
ETC拓展應(yīng)用場(chǎng)景下的多源異構(gòu)交易系統(tǒng)
離散異構(gòu)線性多智能體系統(tǒng)的輸出一致性
試論同課異構(gòu)之“同”與“異”
數(shù)據(jù)結(jié)構(gòu)線上線下混合教學(xué)模式探討
重典型應(yīng)用,明結(jié)構(gòu)關(guān)系
英國(guó)
凝聚與鋪張——孫紹振教授《以丑、呆為美》兩岸同課異構(gòu)教學(xué)觀摩后記
每秒100億億次 中國(guó)超級(jí)計(jì)算機(jī)
數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)教學(xué)模式的探討
古田县| 邢台市| 抚顺市| 巴青县| 乌鲁木齐县| 大连市| 天等县| 华安县| 吴川市| 九江市| 富裕县| 株洲市| 永靖县| 三门峡市| 伊宁县| 大名县| 额济纳旗| 凤城市| 木兰县| 巴彦县| 扎鲁特旗| 临清市| 公安县| 平原县| 北票市| 石屏县| 资阳市| 临汾市| 南江县| 河曲县| 宜宾市| 高淳县| 九龙坡区| 肥东县| 民丰县| 龙门县| 乌恰县| 峨边| 山阳县| 苗栗县| 贞丰县|