面向眾核處理器的水動力學(xué)CFD并行計算探索_第1頁
面向眾核處理器的水動力學(xué)CFD并行計算探索_第2頁
面向眾核處理器的水動力學(xué)CFD并行計算探索_第3頁
面向眾核處理器的水動力學(xué)CFD并行計算探索_第4頁
面向眾核處理器的水動力學(xué)CFD并行計算探索_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、面向眾核處理器的水動力學(xué)CFD并行計算探索摘 要異構(gòu)眾核已成為超級計算機架構(gòu)的發(fā)展趨勢,而如何有效利用眾核處理器的計算能力,是當(dāng)前CFD界的一項重 大挑戰(zhàn)。該文面向異構(gòu)眾核處理器,基于自主開發(fā)代碼,開展水動力學(xué)CFD并行計算探索研究。首先分析異構(gòu)眾核給CFD 并行計算帶來的挑戰(zhàn);針對國產(chǎn)申威26010處理器,對SIMPLE算法和人工壓縮算法設(shè)計眾核并行方案,并通過二維方腔 驅(qū)動流算例,對計算結(jié)果和眾核加速效果進(jìn)行驗證和測試;然后,針對SIMPLE算法熱點分散的特點,采用循環(huán)融合的方 法對其計算流程進(jìn)行優(yōu)化。研究結(jié)果表明:SIMPLE算法和人工壓縮算法分別獲得11倍和24倍的最高加速。該項研究

2、工作,初步展現(xiàn)了眾核處理器在水動力學(xué)CFD并行計算中的應(yīng)用潛力。關(guān)鍵詞眾核處理器;并行計算;不可壓流動;SIMPLE算法;人工壓縮算法Multi-Core Processor Oriented Parallel Computation forCFD in HydrodynamicsAbstract: Heterogeneous multi-core technology has become the developing trend of the supercomputers architecture. The effective utilization of the computing po

3、wer of multi-core processor is a grand challenge in the current CFD industry. The parallel computation for the CFD in hydrodynamics has been explored for heterogeneous multi-core processor based on self-developed code. Firstly, the challenges of the heterogeneous multi-core technology to the CFD par

4、allel computation are analyzed. Secondly. The multi-core parallel computing scheme is designed for SIMPLE algorithm and pseudo-compressible algorithm for SIMPLE and the pseudo- compressible algorithms aiming at the SW26010 processor. The two-dimensional square cavity driven flow are calculated to ve

5、rify and validate the calculation results and the many-core acceleration effect. Then, the calculation procedure is optimized by using the cyclic fusion method in view of the scattered hot spots of SIMPLE algorithm. The results show that the SIMPLE algorithm and Pseudo-compressible algorithm can ach

6、ieve the maximum acceleration of 11 times and 24 times, respectively. It preliminarily presents the application potential of the multi-core processor in the parallel computation for the CFD in hydrodynamics.Keywords: multi-core processor; parallel computation; incompressible flow; SIMPLE algorithm;

7、pseudo- compressible algorithm重大技術(shù)挑戰(zhàn)。高性能計算已深入諸多科學(xué)與工程應(yīng)用領(lǐng)域 的數(shù)值模擬中,成為科技創(chuàng)新和提升核心競爭力的 重要手段和支撐。具體到船舶水動力學(xué)領(lǐng)域,隨著 CFD計算量成幾何量級增長,對計算能力的要求 越來越高,在超級計算機上開展大規(guī)模計算漸趨 普遍。近年來,超級計算機架構(gòu)正在發(fā)生由同構(gòu)向 異構(gòu)發(fā)展的變革。由于“主頻墻”的限制,單核 處理器計算性能趨于極限;由于“通信墻”的限 制,基于分布式的并行計算無法在大規(guī)模并行中 獲得優(yōu)秀的加速效果;由于“功耗墻”的限制, 通過大規(guī)模擴展通用處理器(CPU)提升計算能 力也不太現(xiàn)實。因此,異構(gòu)眾核逐漸成為

8、超級計 算機架構(gòu)的發(fā)展趨勢。以2020年6月22日發(fā)布 的超級計算機TOP500榜單為例,其中144臺 都采用加速器或協(xié)處理器,也就是采用異構(gòu)眾核 架構(gòu);在榜單前10名中,8臺采用異構(gòu)眾核架構(gòu); 而近十年來登頂?shù)某売嬎銠C,全部采用異構(gòu)眾 核架構(gòu)。異構(gòu)是相對于同構(gòu)而言,因此先簡單介紹一下 同構(gòu)架構(gòu)。同構(gòu)架構(gòu)中所有的計算核心都是由CPU 構(gòu)成,所有計算核心的邏輯處理能力和數(shù)據(jù)計算能 力都很強,不受計算任務(wù)復(fù)雜度的影響;但其缺點 是成本高、功耗大。異構(gòu)與同構(gòu)相比,計算核心的 種類不同,一般既有CPU,也有協(xié)處理器。異構(gòu) 系統(tǒng)可以進(jìn)行深層次并行,使計算任務(wù)劃分更加細(xì) 化,并行程度更高。典型的異構(gòu)眾核

9、處理器架構(gòu) 包括CPU+GPU架構(gòu)、CPU+MIC架構(gòu)等,“神威太 湖之光”超級計算機的國產(chǎn)申威架構(gòu)SW26010處 理器,也屬于異構(gòu)眾核架構(gòu)。異構(gòu)眾核架構(gòu)使得超級計算機的計算能力大 幅度提升,但對CFD高性能計算也是挑戰(zhàn)。因為 要實現(xiàn)對計算資源的充分利用,需要從數(shù)值算法、 數(shù)據(jù)結(jié)構(gòu)、計算流程等各個層面進(jìn)行重構(gòu)和優(yōu)化。 NASA的CFD Vision 2030 Study)報告也將其列為國內(nèi)外不少研究人員針對CPU+GPU架構(gòu)I*、 CPU+MIC架構(gòu),開展了 CFD眾核并行計算研 究;也有少量基于開源軟件針對國產(chǎn)申威架構(gòu)的 CFD眾核并行計算研究??傮w看來,目前CFD 界遠(yuǎn)未實現(xiàn)對異構(gòu)眾核超

10、算能力的有效利用,有 以下原因:目前常用CFD軟件的并行計算,大多數(shù) 是針對MPI并行設(shè)計的,一般不適合在異構(gòu)眾核 平臺上運行。CFD計算通常具有全局相關(guān)性特點,并 行規(guī)模的增大帶來了并行復(fù)雜度與通訊開銷的增 加,導(dǎo)致并行效率下降;同時水動力學(xué)CFD常用 的SIMPLE算法的流程相對復(fù)雜,增加了細(xì)粒度并 行優(yōu)化的難度,異構(gòu)加速面臨巨大挑戰(zhàn)。CFD軟件一般具有數(shù)據(jù)結(jié)構(gòu)復(fù)雜、計算 流程復(fù)雜和代碼量龐大等特點,從程序移植到優(yōu) 化,都需要大量的重構(gòu)工作,難度和工作量相當(dāng)大。本文面向異構(gòu)眾核處理器,開展水動力學(xué) CFD并行計算探索研究,為自主CFD求解器與 國產(chǎn)超級計算機硬件的有效結(jié)合進(jìn)行關(guān)鍵技術(shù)攻 關(guān)

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

12、方程組如下:(1)爵V-s(*)“dS=。式中:r為控制體體積;S為控制體表面積閂 為速度矢量,其分量形式表示為(u, v);Re = UL/v,U.通常選為無窮遠(yuǎn)處自由流速度。本文采用基于交錯網(wǎng)格的有限體積法離散控 制方程。論文在求解控制方程組時,使用了兩 種數(shù)值算法一SIMPLE算法和人工壓縮算法19, 兩種算法的求解流程參見圖1。人工壓縮SIMPLE圖1 SIMPLE和人工壓縮算法計算流程uQ = ux%=V1U = U% = V12 CFD模擬并行計算方案2.1國產(chǎn)申威眾核處理器簡介“神威太湖之光”超級計算機系統(tǒng),采用的 是國產(chǎn)申威架構(gòu)SW26010處理器。處理器本身就 包括控制核心和

13、計算核心陣列,相當(dāng)于把CPU和 加速處理器集成到一個芯片上,其內(nèi)部架構(gòu)見下頁 圖2。SW26010處理器包含4個核組(CG),各核組 之間采用片上網(wǎng)絡(luò)(NOC)互聯(lián),每個核組內(nèi)包含 1個主控制核心(主核,MPE)、1個從核(CPE)I內(nèi)存內(nèi)存.內(nèi)存控制器主核-從核陣列核組片上網(wǎng)絡(luò)接口總線從核陣列內(nèi)存圖2 SW26010處理器架構(gòu)示意圖8x8集群(由64個從核組成)、1個協(xié)議處理單元 (PPU)和1個內(nèi)存控制器(MC)。核組內(nèi)采用 共享存儲架構(gòu),內(nèi)存與主/從核之間可通過MC I內(nèi)存內(nèi)存.內(nèi)存控制器主核-從核陣列核組片上網(wǎng)絡(luò)接口總線從核陣列內(nèi)存圖2 SW26010處理器架構(gòu)示意圖8x8與其他異構(gòu)眾

14、核架構(gòu)一樣,SW26010處理器 的計算能力主要體現(xiàn)在從核上;但相比于GPU和 MIC,從核上的存儲空間和帶寬較小,往往使數(shù)據(jù) 傳輸成為程序運行的瓶頸。2.2主要并行工具與函數(shù)Athread與OpenACC*均可用來進(jìn)行從核并行, 與OpenACC*相比,Athread的操作性更高,可以 通過調(diào)用相關(guān)實現(xiàn)數(shù)據(jù)傳輸和從核運算的自主可 控,加速部分不再只限于循環(huán)計算,能夠更加方便 對并行方案進(jìn)行設(shè)計。完整的從核加速過程通常包含以下函數(shù),如 表1所示。表1 Athread常用行數(shù)函數(shù)功能位置athread_init()開啟從核陣列主核代碼athread_spawn(arg1,arg2)從核對從核函數(shù)

15、計算主核代碼athread_join()等待所有從核計算完成主核代碼athread_halt()關(guān)閉從核主核代碼athread_get(arg1 -8)加載數(shù)據(jù)到從核局部空間從核代碼athread_put(arg1 -7)將計算結(jié)果傳回主存從核代碼athread_get_id(-1)獲得當(dāng)前從何邏輯編號從核代碼2.3眾核并行計算方案設(shè)計2.3.1數(shù)據(jù)存儲模式由于本文采用交錯網(wǎng)格,速度、v和壓力p 3個主要變量存儲在3套網(wǎng)格上,數(shù)據(jù)量和計算索 引均不統(tǒng)一,將會使尋址過程變得更加復(fù)雜。為此,本文中采用一種特殊的數(shù)據(jù)存儲模式 (如圖3所示):將速度u、v相對壓力p多出的數(shù) 據(jù)單獨存儲,此時,u、V、

16、p共同存儲在主控制 體上,且擁有相同的索引,從而簡化尋址過程、 提高尋址效率。2.3.2數(shù)據(jù)分配本文采用循環(huán)并行,由于從核局部空間大小有 限(64 KB),因此合理分配數(shù)據(jù)才能充分利用從核 局部空間和計算資源。數(shù)據(jù)分配方案設(shè)計為:設(shè)定 單個從核單次計算的數(shù)據(jù)量NS,則64個從核一次 能夠計算64XNS個數(shù)據(jù),當(dāng)數(shù)據(jù)量很大時,可以 將數(shù)據(jù)分批多次加載到從核上進(jìn)行計算。此時,可 以根據(jù)當(dāng)前的加載次數(shù)k、當(dāng)前次加載的數(shù)據(jù)量N 以及從核ID號,確定當(dāng)前從核(線程)所計算數(shù) 據(jù)的起始位置,并從主存獲取數(shù)據(jù)。同時,為了考察通信的影響,論文對單獨一個 循環(huán)進(jìn)行測試,測試對象為人工壓縮算法中內(nèi)部單 元壓強的計

17、算過程,結(jié)果見圖4。從圖4可見,當(dāng) NS增大時,加速比逐漸上升并趨于定值(左圖)。 其原因為:隨著NS值的增加,通信占比逐漸降低 并趨于定值(右圖),從而使計算過程的加速效果 愈發(fā)突顯。2.3.3數(shù)據(jù)結(jié)構(gòu)量有限;同時,由于CFD計算過程復(fù)雜,將數(shù)據(jù)根據(jù)數(shù)據(jù)分配方案,NS代表從核計算的數(shù)據(jù)以結(jié)構(gòu)體形式合理存儲,可使數(shù)據(jù)的傳輸和使用更量,而從核局部空間的大小使單個從核存儲的數(shù)據(jù)為方便。但是,將多個變量集中在一個數(shù)據(jù)結(jié)構(gòu)中,必然會造成在當(dāng)前計算中部分變量未使用的 情況,這樣既增加通信負(fù)擔(dān),又占據(jù)存儲空間。因 此,合理的數(shù)據(jù)結(jié)構(gòu)非常重要。由于CFD程序中有多個計算熱點需要并行化, 因此對數(shù)據(jù)結(jié)構(gòu)進(jìn)行針

18、對性的設(shè)計比較困難,本文 將重點放在盡量減少無用數(shù)據(jù)的存儲和傳輸上。在 CFD程序中,將系數(shù)變量組成單個結(jié)構(gòu)體,將、V、 p以主控制單元的形式組成結(jié)構(gòu)體,并在此基礎(chǔ)上 設(shè)計了如圖5所示的數(shù)組結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組兩種 形式,用于對比兩者并行加速效果。L1 typedef structI J|LII 1typedef struct1I(I1 t| double u;11double unbelements;| double v;double vnbelements;| double p;double pnbelements;其他變量.1其他變量1| Element;1 | Element;| Ele

19、ment elementsnbelements;1|Element elements;|其他變量1其他變量11:1J結(jié)構(gòu)數(shù)組數(shù)組結(jié)構(gòu)(struct_array)(array_struct)圖5兩種數(shù)據(jù)結(jié)構(gòu)3典型流動眾核并行計算結(jié)果與分析3.1并行計算結(jié)果本文以二維方腔驅(qū)動流CFD模擬為算例,研 究眾核并行的加速效果。方腔驅(qū)動流,是指方腔中的不可壓縮流體隨頂 蓋勻速運動過程中的流動及流場結(jié)構(gòu)變化等現(xiàn)象, 具有幾何外形簡單、流動結(jié)構(gòu)特征顯著、邊界條件 容易實施等特點,常被用作不可壓縮流動模擬結(jié)果 驗證和數(shù)值算法測試的典型算例。數(shù)值模擬中,邊 界條件都可采用速度邊界:其中上邊界(頂蓋)有 水平方向速

20、度,其他邊界滿足無滑移條件。使用SIMPLE和人工壓縮算法,分別采用數(shù) 組結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組兩種數(shù)據(jù)結(jié)構(gòu),開展不同 網(wǎng)格單元數(shù)(100 xl00l 000 x 1 000)情況下、 Re = 1 000工況方腔驅(qū)動流的CFD模擬。圖6給出 了方腔水平中線與垂直中線上的無量綱速度分布 數(shù)值計算結(jié)果,下頁表2則給出主渦和次渦相對位 置的數(shù)值模擬結(jié)果;圖表中同時給出文獻(xiàn)10中 Ghia的計算結(jié)果。1.0-1.01.00.8 -0.90.6 -0.80.4 -0.70.2 -0.0-0.2 -0.4 -0.3-0.6 -0.2-0.80.1-1.0-0.8-0.6-0.4-0.20.0U0.20.40

21、.60.81.0人工壓縮- - SIMPLEGHia0.500.4圖6方腔水平和垂直中線上速度分布(左)及方腔內(nèi)部流線分布(右),Re=1 000本文在并行計算過程中,并未改變迭代方法 等計算過程,因此,不同的數(shù)據(jù)結(jié)構(gòu)和算法應(yīng)有 基本一致的計算結(jié)果。根據(jù)圖6以及表2可以看出:無論是速度分布或主渦與次渦的渦心坐標(biāo),均與參 考文獻(xiàn)的結(jié)果十分接近,這也說明并行計算結(jié)果的 正確性。表2渦心位置計算結(jié)果算法渦心坐標(biāo)主渦右下方渦左下方渦GHIA(0.531 3,0.562 5 )(0.859 4, 0.109 4)(0.085 9, 0.078 1 )SIMPLE(0.533 4,0.567 9)(0.8

22、62 1,0.115 2)(0.083 8,0.075 4)人工壓縮(0.533 6, 0.567 4 )(0.863 3, 0.114 0)(0.083 3,0.074 9)圖7給出不同網(wǎng)格單元數(shù)情況下,眾核并行的 加速情況。從圖中可以看出:隨著網(wǎng)格單元數(shù)增加,加速比逐漸上升并 趨于平穩(wěn);從兩種算法的對比來看,人工壓縮算法的 加速效果(最高約24倍)優(yōu)于SIMPLE算法(最 高約9倍);從兩種數(shù)據(jù)結(jié)構(gòu)的對比來看,采用數(shù)組結(jié) 構(gòu)體并行加速效果優(yōu)于采用結(jié)構(gòu)體數(shù)組。3.2對SIMPLE算法計算流程的優(yōu)化根據(jù)上一節(jié)的研究可以發(fā)現(xiàn),在采用相同數(shù)據(jù) 結(jié)構(gòu)的情況下,SIMPLE算法的并行加速效果明顯 不如

23、人工壓縮算法。其原因是SIMPLE算法的計算 流程更為復(fù)雜(見圖1),從而導(dǎo)致計算熱點分布較為分散。表3給出了 SIMPLE算法和人工壓縮算 法的計算熱點分析結(jié)果。表3 SIMPLE算法和人工壓縮算法計算熱點分析SIMPLE人工壓縮計算u25.57%計算U,V75.43%計算V33.28%計算P12.33%計算壓強修正量P20.65%判據(jù)12.23%修正u7.73%_修正V7.55%_修正P3.32%_判據(jù)1.90%_結(jié)合2.3節(jié)(圖4)通信占比與計算占比之間 的關(guān)系,SIMPLE算法分散的熱點會導(dǎo)致在眾多的 簡單循環(huán)計算中,因數(shù)據(jù)量有限,當(dāng)計算中需多個 變量時,必然造成通信的增加,導(dǎo)致通信相對計算 有較大的占比,使局部加速效果偏低,進(jìn)而導(dǎo)致整 個CFD計算程序的并行加速效果不理想。為此,本文對SIMPLE算法的計算流程進(jìn)行優(yōu) 化,將SIMPLE算法中非相關(guān)的數(shù)據(jù)計算過程進(jìn)行 集中處理,即在一個大循環(huán)中通過判斷語句進(jìn)行不 同的計算。這樣,在從核計算中,提高了數(shù)據(jù)的復(fù) 用性,減少常用變量的重復(fù)傳輸。流程優(yōu)化前后的 計算熱點對比見表4。表4 SIMPLE算法計算流程優(yōu)化前后計算熱點分布優(yōu)化前優(yōu)化后計算u方程25.57%u、V系數(shù)、p局部系數(shù)38.87%計算V方程33.28%u、V方程35.66%計算壓強修正量Ap20.65%P剩余系數(shù)、P方程9.56%修正u7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論