亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種新型的三維不可壓縮管流數(shù)值模擬方法

文檔序號:6399806閱讀:239來源:國知局
專利名稱:一種新型的三維不可壓縮管流數(shù)值模擬方法
技術(shù)領(lǐng)域
本發(fā)明屬于流體力學(xué)數(shù)值模擬領(lǐng)域,涉及一種基于并行穩(wěn)定雙共軛梯度法的三維不可壓縮管流數(shù)值模擬方法。
背景技術(shù)
在流體力學(xué)數(shù)值模擬中,三維不可壓縮管流問題的數(shù)值模擬研究是聚變反應(yīng)堆雙冷或者雙功能液態(tài)鋰鉛包層的研究的熱點(diǎn)之一。在聚變反應(yīng)堆包層應(yīng)用中,要想得到正確的數(shù)值模擬解,必須保證垂直于外加磁場壁面附近的哈德曼層(
Ha~l)有一定數(shù)量的網(wǎng)格。實(shí)際的磁流體管流的數(shù)值模擬當(dāng)中由于外加磁場和流動的液
態(tài)金屬的相互作用以及網(wǎng)格要求的特殊性導(dǎo)致網(wǎng)格規(guī)模大及迭代求解過程緩慢,常常持續(xù)數(shù)小時或數(shù)天,因此需采用并行方法完成磁流體管流的快速數(shù)值模擬。在計(jì)算流體力學(xué)數(shù)值模擬中,并行技術(shù)一般采用物理區(qū)域分割并行方法,計(jì)算網(wǎng)格劃分和計(jì)算區(qū)域分解是實(shí)現(xiàn)粗粒度并行的最直接有效的任務(wù)分配策略。區(qū)域分解方法因其適用于構(gòu)造并行算法的特點(diǎn),被逐漸推廣到計(jì)算流體力學(xué)領(lǐng)域,并在近年來發(fā)展迅速,已經(jīng)成為并行計(jì)算中最活躍的研究之一。在三維不可壓縮管流問題的數(shù)值模擬中,需大量數(shù)值求解偏微分方程,而稀疏線性方程組系統(tǒng)在求解偏微分方程又是很常見的。如果通過喬萊斯基分解等直接方法求解稀疏線性方程組這類系統(tǒng),由于計(jì)算量非常大,導(dǎo)致計(jì)算時間很長。共軛梯度法作為迭代法的一種求解方式,由于具有步收斂性,穩(wěn)定性高,無需外來參數(shù),存儲空間小等特點(diǎn),特別適合于大型稀疏線性方程組的求解。共軛梯度法主要用于求解下列線性系統(tǒng):
= 其中.矩陣2是對稱的(即),正定的(即對于所有非O向量; 屬
于I , xA/ >0 )實(shí)系數(shù)矩陣。經(jīng)過一些簡化,可以得到求解At = Ij的算法。穩(wěn)定雙共軛梯度法作為一種優(yōu)化改進(jìn)后的共軛梯度法,可用于數(shù)值求解非對稱線性方程組,比雙共軛梯度法本身以及諸如共軛梯度平方法等有更快速和更平滑的收斂性。穩(wěn)定雙共軛梯度法按照串行計(jì)算方法演算,由于計(jì)算量較大,演算效率受計(jì)算機(jī)性能的影響,并且當(dāng)矩陣4難數(shù)過大,計(jì)算機(jī)也無法對其數(shù)據(jù)進(jìn)行有效的存儲與計(jì)算。同時,稀疏矩陣的存儲方式對矩陣乘的效率影響很大。在傳統(tǒng)的稀疏矩陣存儲方式下,矩陣運(yùn)算的效率受到矩陣規(guī)模、矩陣稀疏度、矩陣內(nèi)非零元素分布的影響,性能表現(xiàn)不穩(wěn)定,因此沒有普遍適應(yīng)性。針對共軛梯度法的并行化問題,《The Parallel Algorithm of ConjugateGradient Method))中提出了基于區(qū)域分解的并行共軛梯度算法,并給出了異構(gòu)集群下的性倉泛分析°《Solving finite difference linear systems on GPUs: CUDA based ParallelExplicit Preconditioned Biconjugate Conjugate Gradient type Methods〉〉中提出了基于GPU的并行雙共軛梯度算法,《On the Parallel
Technologies of Conjugate and Sem1-conjugate Gradient Methods for SolvingVery Large Sparse SLAEs》中分析了采用并行共軛梯度和半共軛梯度兩種算法時不同稀疏矩陣求解的性能情況。然而,以上方法并沒有在計(jì)算機(jī)存儲體系結(jié)構(gòu)層面上對共軛梯度算法進(jìn)行優(yōu)化,沒有考慮算法實(shí)現(xiàn)過程中的數(shù)據(jù)局部性問題。

發(fā)明內(nèi)容
針對上述計(jì)算方法存在的問題,本發(fā)明提出一種能充分利用計(jì)算機(jī)性能以及硬件平臺,組織進(jìn)行分布式計(jì)算的方法,加快了三維不可壓縮管流數(shù)值模擬速度。該方法擁有自動調(diào)優(yōu)的功能,能根據(jù)所部署計(jì)算機(jī)的特性進(jìn)行調(diào)整,從而使其作為節(jié)點(diǎn)所參與的并行計(jì)算體現(xiàn)出更高的計(jì)算性能。通過利用集群以及多核平臺的優(yōu)勢,提升穩(wěn)定雙共軛梯度法的演算效率,充分利用計(jì)算機(jī)硬件與網(wǎng)絡(luò)資源,進(jìn)行高性能計(jì)算,解決傳統(tǒng)串行計(jì)算方法資源利用不足,演算效率低下的問題。并且采用更合理的稀疏矩陣存儲格式以適應(yīng)分布式環(huán)境中異構(gòu)多核體系架構(gòu),優(yōu)化稀疏矩陣乘的運(yùn)算。本發(fā)明方法的具體步驟是:
(I)準(zhǔn)備節(jié)點(diǎn)
1-1.首先進(jìn)行各節(jié)點(diǎn)的硬件部署。1-2.判斷是否有新節(jié)點(diǎn)加入,如果有,則進(jìn)行步驟1-3的預(yù)調(diào)優(yōu)過程,否則轉(zhuǎn)入步驟(2)進(jìn)行數(shù)據(jù)存儲轉(zhuǎn)化過程。1-3.通過預(yù)調(diào)優(yōu)過程使集群的計(jì)算性能達(dá)到平均最優(yōu)狀態(tài)。利用選取的個矩陣所構(gòu)成的基準(zhǔn)矩陣集 Μα χ = Imatrix1,matrix2,mairix-£matrix^,matrixs},對集群計(jì)算
性能進(jìn)行調(diào)優(yōu),其具體過程如下:
設(shè)Wmainxi C Matrix為^ x Ci的基準(zhǔn)矩陣,其中f為矩陣集的第,個矩陣,\
與Ci分別為相應(yīng)基準(zhǔn)矩陣的行數(shù)與列數(shù),對其生成CiXl的隨機(jī)向量K,選用所有
2"χ2χι>€[1,[ οδ2^]], eailogaq」!)的矩陣分塊方式,將基準(zhǔn)矩陣按分塊方式按照
步驟(2)格式化為相應(yīng)的四叉樹存儲結(jié)構(gòu),利用計(jì)算量分配算法按照步驟(3)進(jìn)行節(jié)點(diǎn)部署,通過MP/控制集群中的各計(jì)算節(jié)點(diǎn)進(jìn)行并行的矩陣向量乘運(yùn)算,從而統(tǒng)計(jì)出集群在不同分塊方式下的運(yùn)算開銷。在基準(zhǔn)矩陣集測試完成之后,對于不同的分塊方式分別計(jì)算出集群運(yùn)算的平均開銷,選取其中平均開銷最小的分塊方式作為集群進(jìn)行矩陣向量乘的最終分塊方法。(2)數(shù)據(jù)存儲轉(zhuǎn)化過程
四叉樹存儲結(jié)構(gòu)使用了四個不同意義的向量<rmv,bhck,cohva! >,其中表示該
元素的行號,Worf.表示該元素的塊索引,表示該元素的列號"表示該元素的值。四叉樹存儲結(jié)構(gòu)的具體劃分流程如下:
2-1.按照行主序依次讀入非零元素,并按先后順序?qū)⑵淞刑栍涗浻谙蛄績?nèi),數(shù)值記錄于I J向量內(nèi)。2-2.將原矩陣按分塊方式的行高,對行進(jìn)行平均劃分,并對每個劃分內(nèi)的元素按列主序重新排序存儲,此次排序?qū)⒅匦抡{(diào)整vs/向量與rai向量中元素的分布。自頂向下劃分原矩陣為4個區(qū)域大小大致相同的子矩陣區(qū)域塊。2-3.在當(dāng)前劃分區(qū)間內(nèi),不斷以第一個未被劃分進(jìn)向量所在區(qū)間的非零元素所在列為起始列,按分塊方式的列寬劃分出子矩陣塊,并用Wa免向量控制當(dāng)前塊中非零元素在I ^向量與向量內(nèi)所處的區(qū)間,如此遞歸進(jìn)行劃分直到子矩陣塊大小小于設(shè)定的分塊大小。此時用row向量記錄該劃分內(nèi)所形成的塊在Wbci向量內(nèi)的索引區(qū)間。(3)部署分配
計(jì)算量分配算法流程如下:
3-1.從層向量中獲得待劃分矩陣的總塊數(shù)。3-2.根據(jù)集群節(jié)點(diǎn)數(shù)將計(jì)算子矩陣的塊數(shù)平均分配到各節(jié)點(diǎn)。3-3.各節(jié)點(diǎn)根據(jù)自身CPt/的核數(shù),將計(jì)算量再平均分配到相應(yīng)的CPU核上。(4)演算過程
4-1.初始化三維不可壓縮管流網(wǎng)格及邊界。根據(jù)節(jié)點(diǎn)數(shù)目和特性對管流進(jìn)行劃分,假設(shè)節(jié)點(diǎn)數(shù)目為P ,則將管流計(jì)算區(qū)域劃分為個計(jì)算子域并對各個子域進(jìn)行索引標(biāo)記,同時確定各個子域的計(jì)算域、邊界與鄰接子域表。4-2.各節(jié)點(diǎn)根據(jù)自身鄰接子域表進(jìn)行數(shù)據(jù)的發(fā)送,并等待鄰接節(jié)點(diǎn)傳輸自身所需的邊界數(shù)據(jù),即進(jìn)行邊界數(shù)據(jù)的交換;若數(shù)據(jù)傳輸完成,則進(jìn)入步驟4-3。4-3.讀入修正后的系數(shù)矩陣,根據(jù)步驟(2)對矩陣進(jìn)行存儲轉(zhuǎn)化,并根據(jù)步驟(3)中得到的分配方案,對子矩陣在集群節(jié)點(diǎn)上進(jìn)行分配。4-4.判斷計(jì)算域是否有關(guān)聯(lián)性,若有關(guān)聯(lián)性則對相關(guān)數(shù)據(jù)進(jìn)行節(jié)點(diǎn)間分發(fā),否則通過MP/控制集群中的各計(jì)算節(jié)點(diǎn)和實(shí)現(xiàn)線程間的并行運(yùn)算。4-5.各子節(jié)點(diǎn)將結(jié)果發(fā)送給主節(jié)點(diǎn)并在主節(jié)點(diǎn)中進(jìn)行歸約運(yùn)算。4-6.在主節(jié)點(diǎn)中判斷結(jié)果向量是否達(dá)到指定的收斂標(biāo)準(zhǔn),若滿足,則演算結(jié)束,否則轉(zhuǎn)入步驟4-2。本發(fā)明具有的有益效果是:
1、本發(fā)明利用了局部性原理,采用高度壓縮及靈活方便的四叉樹數(shù)據(jù)存儲結(jié)構(gòu)對稀疏矩陣進(jìn)行分塊處理,大大降低了計(jì)算時間復(fù)雜度中的常數(shù),節(jié)省了大量的存儲空間,提升了三維不可壓縮管流數(shù)值模擬的演算效率。2、本發(fā)明充分利用了多核平臺以及集群計(jì)算的性能優(yōu)勢,將計(jì)算中的熱點(diǎn)并行化處理,利用多線程P/Arearf方法以及的分布式技術(shù),以較小的通訊開銷換取了高性能的計(jì)算效率。3、本發(fā)明可用于計(jì)算數(shù)學(xué)和計(jì)算物理等科學(xué)與工程計(jì)算領(lǐng)域中穩(wěn)定雙共軛梯度法的求解、大規(guī)模稀 疏線性代數(shù)方程組計(jì)算和三維不可壓縮管流數(shù)值模擬。


圖1為本發(fā)明基于并行穩(wěn)定雙共軛梯度法的三維不可壓縮管流數(shù)值模擬演算的流程 圖2為本發(fā)明并行穩(wěn)定雙共軛梯度法的流程圖。
具體實(shí)施例方式下面結(jié)合圖1和圖2對本發(fā)明作進(jìn)一步的詳細(xì)說明,本發(fā)明包括以下步驟:
I準(zhǔn)備節(jié)點(diǎn)
1-1.首先進(jìn)行各節(jié)點(diǎn)的硬件部署。1-2.判斷是否有新節(jié)點(diǎn)加入,如果有,則進(jìn)行步驟1-3的預(yù)調(diào)優(yōu)過程,否則轉(zhuǎn)入步驟(2)進(jìn)行數(shù)據(jù)存儲轉(zhuǎn)化過程。1-3.通過預(yù)調(diào)優(yōu)過程使集群的計(jì)算性能達(dá)到一種平均最優(yōu)的狀態(tài)。利用選取日>個矩陣所構(gòu)成的基準(zhǔn)矩陣集 Mairix = Imainx1,matnx2,fnainx^mainx^,mainxx},對集群
計(jì)算性能進(jìn)行調(diào)優(yōu),其具體過程如下:
設(shè)-Xi C Matrix為Ri XCi的基準(zhǔn)矩陣,其中t為矩陣集的第t個矩陣,
與Ci分別為相應(yīng)基準(zhǔn)矩陣的行數(shù)與列數(shù),對其生成CiXl的隨機(jī)向量K,選用所有
2"x2KC €a[log2i2jl. e[l,[log2CjD的矩陣分塊方式,將基準(zhǔn)矩陣按分塊方式按照
步驟(2)格式化為相應(yīng)的四叉樹存儲結(jié)構(gòu),利用計(jì)算量分配算法按照步驟(3)進(jìn)行節(jié)點(diǎn)部署,通過MP/控制集群中的各計(jì)算節(jié)點(diǎn)進(jìn)行并行的矩陣向量乘運(yùn)算,從而統(tǒng)計(jì)出集群在不同分塊方式下的運(yùn)算開銷。在基準(zhǔn)矩陣集測試完成之后,對于不同的分塊方式分別計(jì)算出集群運(yùn)算的平均開銷,選取其中平均開銷最小的分塊方式作為集群進(jìn)行矩陣向量乘的最終分塊方法。2數(shù)據(jù)存儲轉(zhuǎn)化過程
傳統(tǒng)的對于矩陣數(shù)據(jù)的主要記錄方式分作兩類:一類是列出矩陣的所有元素,以數(shù)據(jù)
表的形式存儲;另一類則是僅僅存儲矩陣中的非零元素,將之標(biāo)記為 5/,胃/;)的三元
組,其中表示該元素的行號,col表示該元素的列號,Vflii表示該元素的值。穩(wěn)定雙共軛梯度法作為一種迭代型的算法,在三維不可壓縮管流數(shù)值模擬的應(yīng)用中其系數(shù)矩陣絕大部分為稀疏矩陣。因此,可以按照第二類方式的思路只記錄矩陣中的非零元素。然而這一數(shù)據(jù)存儲方式依然存在很大的數(shù)據(jù)冗余度。由上述不足,并考慮到對于處理規(guī)模較大的矩陣向量乘法,可以通過對矩陣分塊的方式,提高計(jì)算中的命中率,減少訪存次數(shù),降低計(jì)算復(fù)雜度中的常數(shù)從而提高運(yùn)
算效率。因此,本方法使用了一種高度壓縮的四叉樹存儲結(jié)構(gòu)。該結(jié)構(gòu)對第二類記錄方式進(jìn)行了有效的改進(jìn),大大降低了存儲的冗余度,使用了四個不同意義的向量<row,bhck,coi,val >,其中MocA表示該元素的塊索引,有效保存了原矩陣的信息,并保持
了對矩陣中劃分塊的控制,從而便于計(jì)算量在各個節(jié)點(diǎn)上的相關(guān)部署。四叉樹存儲結(jié)構(gòu)的具體劃分流程如下:
2-1.按照行主序依次讀入非零元素,并按先后順序?qū)⑵淞刑栍涗浻谙蛄績?nèi),數(shù)值記錄于Vfl/向量內(nèi)。2-2.將原矩陣按分塊方式的行高,對行進(jìn)行平均劃分,并對每個劃分內(nèi)的元素按列主序重新排序存儲,此次排序?qū)⒅匦抡{(diào)整Vd向 量與ΛΛ'向量中元素的分布。自頂向下劃分原矩陣為4個區(qū)域大小大致相同的子矩陣區(qū)域塊。2-3.在當(dāng)前劃分區(qū)間內(nèi),不斷以第一個未被劃分進(jìn)向量所在區(qū)間的非零元素所在列為起始列,按分塊方式的列寬劃分出子矩陣塊,并用Wa免向量控制當(dāng)前塊中非零元素在I ^向量與向量內(nèi)所處的區(qū)間,如此遞歸進(jìn)行劃分直到子矩陣塊大小小于設(shè)定的分塊大小。此時用row向量記錄該劃分內(nèi)所形成的塊在Moci向量內(nèi)的索引區(qū)間。3部署分配
針對當(dāng)前計(jì)算任務(wù)進(jìn)行節(jié)點(diǎn)的部署來獲得計(jì)算量的分配方案,其目的在于獲得一個使集群中各個節(jié)點(diǎn)的計(jì)算量大致相等的方案,從而達(dá)到負(fù)載平衡的目的。 計(jì)算量分配算法流程如下:
3-1.從腳向量中獲得待劃分矩陣的總塊數(shù)。3-2.根據(jù)集群節(jié)點(diǎn)數(shù)將計(jì)算子矩陣的塊數(shù)平均分配到各節(jié)點(diǎn)。3-3.各節(jié)點(diǎn)根據(jù)自身CPC/的核數(shù),將計(jì)算量再平均分配到相應(yīng)的CPt/核上。4.演算過程
4-1.初始化三維不可壓縮管流網(wǎng)格及邊界。根據(jù)節(jié)點(diǎn)數(shù)目和特性對管流進(jìn)行劃分,假設(shè)節(jié)點(diǎn)數(shù)目為”則將管流計(jì)算區(qū)域劃分力個計(jì)算子域并對各個子域進(jìn)行索引標(biāo)記,同時確定各個子域的計(jì)算域、邊界與鄰接子域表,每個鄰接子域發(fā)送的邊界信息采用< dom Jndex , >形式進(jìn)行標(biāo)記,其中表示某一個與其相鄰的子域的索引標(biāo)記,漏表示所需發(fā)送的邊界數(shù)據(jù)量大小。4-2.各節(jié)點(diǎn)根據(jù)自身鄰接子域表進(jìn)行數(shù)據(jù)的發(fā)送,并等待鄰接節(jié)點(diǎn)傳輸自身所需的邊界數(shù)據(jù),即進(jìn)行邊界數(shù)據(jù)的交換;若數(shù)據(jù)傳輸完成,則進(jìn)入步驟4-3。4-3.讀入修正后的系數(shù)矩陣,根據(jù)步驟(2)對矩陣進(jìn)行存儲轉(zhuǎn)化,并根據(jù)步驟(3)中得到的分配方案,對子矩陣在集群節(jié)點(diǎn)上的進(jìn)行分配。4-4.判斷計(jì)算域是否有關(guān)聯(lián)性,若有關(guān)聯(lián)性則對相關(guān)數(shù)據(jù)進(jìn)行節(jié)點(diǎn)間分發(fā),否則通過MP/控制集群中的各計(jì)算節(jié)點(diǎn)和PiArMd實(shí)現(xiàn)線程間的并行運(yùn)算。4-5.各子節(jié)點(diǎn)將結(jié)果發(fā)送給主節(jié)點(diǎn)并在主節(jié)點(diǎn)中進(jìn)行歸約運(yùn)算。4-6.在主節(jié)點(diǎn)中判斷結(jié)果向量是否達(dá)到指定的收斂標(biāo)準(zhǔn),若滿足,則演算結(jié)束,否則轉(zhuǎn)入步驟4-2。
權(quán)利要求
1.一種新型的三維不可壓縮管流數(shù)值模擬方法,其特征在于該方法具體是: 步驟1.準(zhǔn)備節(jié)點(diǎn),具體是: 1-1.進(jìn)行各節(jié)點(diǎn)的硬件部署; 1-2.判斷是否有新節(jié)點(diǎn)加入,如果有,則進(jìn)行步驟1-3的預(yù)調(diào)優(yōu)過程,否則轉(zhuǎn)入步驟2;1-3.利用選取的《個矩陣所構(gòu)成的基準(zhǔn)矩陣集
全文摘要
本發(fā)明公開了一種新型的三維不可壓縮管流數(shù)值模擬方法。本發(fā)明采用預(yù)調(diào)優(yōu)算法確定該節(jié)點(diǎn)的計(jì)算線程數(shù)并得到適用于集群計(jì)算的矩陣分塊最佳大?。桓鶕?jù)節(jié)點(diǎn)特性對讀入的方程組進(jìn)行求解域劃分,并對讀入的稀疏矩陣進(jìn)行遞歸式分解和重排列來實(shí)現(xiàn)矩陣的存儲,即存儲為四叉樹結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);當(dāng)各節(jié)點(diǎn)的計(jì)算域沒有關(guān)聯(lián)性時,根據(jù)各個節(jié)點(diǎn)的預(yù)調(diào)優(yōu)數(shù)據(jù)為每個節(jié)點(diǎn)的線程分配計(jì)算量,通過自動將計(jì)算任務(wù)分配到集群中的計(jì)算節(jié)點(diǎn),并以節(jié)點(diǎn)內(nèi)共享存儲的并行工作方式來提高運(yùn)算效率,若計(jì)算域存在關(guān)聯(lián)性時,則需在演算前對相關(guān)數(shù)據(jù)進(jìn)行節(jié)點(diǎn)間分發(fā)。本發(fā)明降低了計(jì)算時間復(fù)雜度中的常數(shù),節(jié)省了大量的存儲空間,提升了三維不可壓縮管流數(shù)值模擬的演算效率。
文檔編號G06F17/16GK103150290SQ201310063749
公開日2013年6月12日 申請日期2013年2月28日 優(yōu)先權(quán)日2013年2月28日
發(fā)明者張紀(jì)林, 袁俊峰, 萬健, 劉恩益, 任永堅(jiān), 周麗, 蔣從鋒, 殷昱煜, 任祖杰 申請人:杭州電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1