本發(fā)明專利技術(shù)提供一種半隱式類粒子法的大規(guī)模并行處理方法:1)采用高效且易并行的對稱蘭喬斯算法(Symmetric?Lanczos?Algorithm,SLA)求解半隱式粒子法中壓力泊松方程;2)在服務(wù)器上可采用共享內(nèi)存的并行模型(如OpenMP、OpenCL)和/或消息傳遞的并行模型(MPI)以及它們的混合模型并行加速算法,本發(fā)明專利技術(shù)可以大規(guī)模并行加速需要求解壓力泊松方程的半隱式類粒子法,并行加速效果顯著。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)屬于流體流動計算機仿真領(lǐng)域,涉及對不可壓縮流體的自由表面流動的模擬,具體涉及一種半隱式類粒子法的大規(guī)模并行處理方法。
技術(shù)介紹
自由表面流動是一種常見的流動,在潰壩流動、河流的明渠流動,以及蒸發(fā)沸騰過程的傳熱傳質(zhì)過程中都涉及到自由表面流動,采用計算機準(zhǔn)確的模擬自由表面流動對工程應(yīng)用有重大意義;粒子類方法是在拉格朗日框架下追蹤粒子的運動,因此易于仿真自由表面流動。隨著計算機技術(shù)的發(fā)展,采用計算機模擬流體流動已經(jīng)成為研究流體運動的一種 流動的時候需要引入專門的處理界面運動的方法,如VOF方法和Level Set方法。對于劇烈波動的自由表面流動問題,大變形自由表面的處理是很復(fù)雜且很耗時的工作,并且有時會導(dǎo)致求解的錯誤;另外,網(wǎng)格類方法中對流項的數(shù)值耗散也是一個很嚴(yán)重的問題。粒子類方法是近年來快速發(fā)展的一種算法,它們采用的是在拉格朗日框架下追蹤粒子的運動,可以追蹤自由表面的位置,因此易于仿真自由表面流動。光滑粒子動力學(xué)(SPH)和移動粒子半隱式算法(MPS)是兩種常見的粒子類方法。前者采用顯式算法求解壓力,主要用于求解固體力學(xué)問題以及可壓縮的流體力學(xué)問題;而后者采用半隱式算法通過求解壓力泊松方程獲得壓力,主要用于不可壓縮性流動的模擬。通常來說,粒子類方法的計算量是大于網(wǎng)格類方法的計算量,同時工程應(yīng)用領(lǐng)域也要求大規(guī)模粒子數(shù)的模擬,因此發(fā)展高效大規(guī)模并行的粒子類方法具有重大的現(xiàn)實意義。顯式的粒子類方法(如SPH)已經(jīng)得到了較好的并行。本專利技術(shù)主要是針對半隱式類粒子法(如MPS)的并行化。
技術(shù)實現(xiàn)思路
粒子類方法的算法可以分為顯式算法和半隱式算法。在顯式類算法(如SPH算法)中,粒子的壓力是通過狀態(tài)方程由該粒子所代表的流體微團的密度計算得到,每一個粒子壓力的計算是獨立于其他粒子的,因此顯式類粒子方法是很容易并行的;而在半隱式類粒子算法(如MPS)中,壓力是通過全局求解壓力泊松方程而獲得,因此每一個粒子壓力的計算都是依賴于其他粒子的信息的,并且全局求解壓力泊松方程是半隱式類粒子法中最為耗時的部分,因此半隱式類粒子法并行的關(guān)鍵在于找到一個高效且易于并行的用于求解壓力泊松方程的求解器。本專利技術(shù)的目的在于提供一種半隱式類粒子法的大規(guī)模并行處理方法,該方法先給出一個高效且易于并行的求解器,然后通過并行實現(xiàn)大規(guī)模粒子數(shù)的模擬。為達到上述目的,本專利技術(shù)采用了以下技術(shù)方案該處理方法在并行服務(wù)器上采用并行模型并行加速半隱式類粒子法,所述半隱式類粒子法是指黏性項和外力源項顯式計算,而壓力項則通過求解壓力泊松方程隱式計算的粒子類算法,半隱式類粒子法中的壓力泊松方程采用對稱蘭喬斯算法求解。所述半隱式類粒子法包括移動粒子半隱式算法(Moving ParticleSemi-implicit method, MPS)和不可壓縮的光滑粒子動力學(xué)方法(IncompressibleSmoothed Particle Hydrodynamics, ISPH)。所述并行服務(wù)器為對稱多處理器、GPU服務(wù)器、由多CPU核的服務(wù)器組成的多節(jié)點的服務(wù)器、由多GPU核的服務(wù)器組成的多節(jié)點的服務(wù)器或由多CPU核和多GPU核服務(wù)器組成的混合多節(jié)點服務(wù)器。所述并行模型為共享內(nèi)存的并行模型、消息傳遞的并行模型或二者的混合模型。所述并行加速具體包括以下幾種優(yōu)選情況 a)如果并行服務(wù)器是對稱多處理器,采用OpenMP模型(http://www. openmp.org)、MPI模型(張武生,薛巍,李建江,鄭偉民《MPI并行程序設(shè)計實例教程》清華大學(xué)出版社,北京,2009)或采用OpenMP和MPI的混合模型來并行加速;0penMP模型是基于共享內(nèi)存的并行模型,由開源網(wǎng)站維護,網(wǎng)站上給出了具體的編程方法;MPI模型是基于消息傳遞的并行模型;b)如果并行服務(wù)器是GPU服務(wù)器,通過OpenCL模型(http://www. khronos. org/opencl/)或 CUDA 模型(http://developer, nvidia. com/category/zone/cuda-zone)并行加速;0penCL模型適用于GPU的開源并行模型,由開源網(wǎng)站維護;CUDA是由Nvidia公司開發(fā)使用于GPU的并行模型,在公司官網(wǎng)上給出了具體的編程方法;c)如果并行服務(wù)器是多節(jié)點的服務(wù)器,每個節(jié)點是多CPU核的服務(wù)器,在每一個節(jié)點上,采用OpenMP模型并行加速,而在節(jié)點之間采用MPI模型來并行加速;d)如果并行服務(wù)器是多節(jié)點的服務(wù)器,每個節(jié)點是多核的GPU服務(wù)器,在每一個節(jié)點上,采用OpenCL模型或CUDA模型并行加速,而在節(jié)點之間采用MPI模型來并行加速;如果節(jié)點中既有多核的CPU節(jié)點,又有多核GPU節(jié)點,對CPU節(jié)點采用OpenMP模型并行加速,對GPU節(jié)點采用OpenCL模型或CUDA模型并行加速,在節(jié)點之間仍采用MPI模型并行加速。所述處理方法的具體步驟如下I)設(shè)置計算區(qū)域內(nèi)粒子的初始分布,將計算區(qū)域劃分為多個子區(qū)域,將每一個子區(qū)域分配給一個進程負(fù)責(zé)計算;2)將進程上靠近劃分邊界的粒子信息發(fā)送給鄰居進程,并且鄰居進程上要完成相應(yīng)的接受操作;3)在每一個進程上顯式計算外力源項和黏性項,然后計算臨時速度場和臨時位置場,從而計算壓力泊松方程的源項;步驟3)的操作是針對子區(qū)域上的每一個粒子在進程內(nèi)并行加速;4)采用并行對稱蘭喬斯算法全局求解壓力泊松方程,獲得壓力值;5)將獲得的壓力值發(fā)送到鄰居進程上;6)傳送壓力值的通信完成之后,并行計算壓力梯度項,用于修正臨時速度場,從而獲得最終的速度場;7)計算過程中要動態(tài)調(diào)節(jié)區(qū)域劃分邊界,以保證每個進程上的負(fù)載都近似相同;8)判斷本進程上由于粒子移動產(chǎn)生的粒子越界的情況,將已經(jīng)越過本進程邊界的粒子信息發(fā)送給相應(yīng)的進程;9)判斷是否已達到模擬設(shè)定時間,如果已達到模擬設(shè)定時間則退出;如果沒有達到模擬設(shè)定時間,返回步驟2),繼續(xù)下一個時間步長的計算。粒子法的壓力泊松方程離散后通常得到一個主對角占優(yōu)的大型對稱稀疏矩陣,不完全喬萊斯基分解算法(ICCG)是求解大型對稱稀疏矩陣的理想迭代方法,但是難以并行。為了實現(xiàn)粒子法的大規(guī)模并行運算,需要引入一種高效且易于并行的求解線性方程組的方法。通過多次嘗試,本專利技術(shù)最終采用對稱蘭喬斯算法(SLA)求解壓力泊松方程,這種算法易于并行,并且其求解效率優(yōu)于ICCG算法,并行加速效果顯著。附圖說明圖I為背景網(wǎng)格的劃分以及中心粒子的作用范圍。 圖2為子區(qū)域劃分。圖3為不同子區(qū)域(進程)間相互通信。圖4為潰壩問題的模型。圖5為在求解潰壩問題中壓力泊松方程時SLA算法和ICCG算法單次求解執(zhí)行時間的比較。圖6為SLA算法和ICCG算法中易于并行的操作所占的百分比。圖7為OpenMP模型在不同CPU核數(shù)下的并行效率。圖8為MPI模型在不同節(jié)點數(shù)下的并行效率。具體實施例方式下面結(jié)合附圖和實施例對本專利技術(shù)作進一步說明。SLA算法求解壓力泊松方程的步驟如下SLA算法實際上是一種Krylov子空間方法,設(shè)m是Krylov子空間的維度,對稱蘭喬斯算法求解對稱矩陣方程組Ax=b的具體算法如下I)給定誤差極限ε >0,初始解向量x° e Rn;2)計算 r°=b-Ax°, β =I r0 , N1=V0/ β ;3) for k = It本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于:該處理方法在并行服務(wù)器上采用并行模型并行加速半隱式類粒子法,半隱式類粒子法中的壓力泊松方程采用對稱蘭喬斯算法求解。
【技術(shù)特征摘要】
1.一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于該處理方法在并行服務(wù)器上采用并行模型并行加速半隱式類粒子法,半隱式類粒子法中的壓力泊松方程采用對稱蘭喬斯算法求解。2.根據(jù)權(quán)利要求I所述一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于所述半隱式類粒子法包括移動粒子半隱式算法和不可壓縮的光滑粒子動力學(xué)方法。3.根據(jù)權(quán)利要求I所述一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于所述并行服務(wù)器為對稱多處理器、GPU服務(wù)器、由多CPU核的服務(wù)器組成的多節(jié)點的服務(wù)器、由多GPU核的服務(wù)器組成的多節(jié)點的服務(wù)器或由多CPU核和多GPU核服務(wù)器組成的混合多節(jié)點服務(wù)器。4.根據(jù)權(quán)利要求I所述一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于所述并行模型為共享內(nèi)存的并行模型、消息傳遞的并行模型或二者的混合模型。5.根據(jù)權(quán)利要求1、2、3或4所述一種半隱式類粒子法的大規(guī)模并行處理方法,其特征在于所述并行加速具體包括以下幾種優(yōu)選情況 a)如果并行服務(wù)器是對稱多處理器,采用OpenMP模型、MPI模型或采用OpenMP和MPI的混合模型來并行加速; b)如果并行服務(wù)器是GPU服務(wù)器,通過OpenCL模型或⑶DA模型并行加速; c)如果并行服務(wù)器是多節(jié)點的服務(wù)器,每個節(jié)點是多CPU核的服務(wù)器,在每一個節(jié)點上,采用OpenMP模型并行加速,而在節(jié)點之間采用MPI模型來并行加速; d)如果并行服務(wù)器是多節(jié)點的服務(wù)器,每個節(jié)點是多核的GPU服務(wù)器,在...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:陳斌,段廣濤,
申請(專利權(quán))人:西安交通大學(xué),
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。