基于格子Boltzmann理論實現(xiàn)協(xié)同計算大渦模擬系統(tǒng)及方法
【專利摘要】本發(fā)明披露了基于格子Boltzmann理論實現(xiàn)協(xié)同計算大渦模擬系統(tǒng)及方法,其中系統(tǒng)包括:主進程模塊將輸入的數(shù)據(jù)廣播給系統(tǒng)中的其它進程模塊,待全部MIC進程模塊和CPU進程模塊完成所有計算任務后,將所有節(jié)點的計算結(jié)果輸出;MIC進程模塊將輸入的數(shù)據(jù)卸載給相應的MIC進行計算,同時與相鄰節(jié)點的MIC進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代;CPU進程模塊控制本節(jié)點的協(xié)同計算,根據(jù)CPU的核數(shù)為每一CPU核啟用相應的線程對分配的部分數(shù)據(jù)進行計算;同時與相鄰節(jié)點的MIC進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代。本發(fā)明在多節(jié)點下利用CPU以及MIC降低功耗的優(yōu)勢進行協(xié)同計算,實現(xiàn)簡單,成本低。
【專利說明】基于格子Boltzmann理論實現(xiàn)協(xié)同計算大潤模擬系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于格子Boltzmann理論的大渦模擬方法,尤其涉及基于格子Boltzmann理論使用CPU和MIC協(xié)同計算模式進行大渦模擬的方法及系統(tǒng)。
【背景技術(shù)】
[0002]格子Boltzmann 方法(LBM, Lattice_BoItzmannMethod)從它誕生至今已有 20 年。在此期間,其在理論和應用研究等方面都取得了迅速發(fā)展,并逐漸成為在相關(guān)領(lǐng)域研究的國際熱點之一,受到國內(nèi)外眾多學者的關(guān)注。與傳統(tǒng)模擬方法不同,格子Boltzmann方法基于分子動理論,具有清晰的物理背景。該方法是Boltzmann方程的一個特殊的離散格式。在宏觀上它是離散方法,微觀上是連續(xù)方法,因而被稱為介觀模擬方法。在許多傳統(tǒng)模擬方法難以勝任的領(lǐng)域,如微尺度流動與換熱、多孔介質(zhì)、生物流體、磁流體、晶體生長等,運用格子Boltzmann方法都可以對對象進行有效的模擬,因此它被用于多種復雜現(xiàn)象的機理研究,推動了相關(guān)學科的發(fā)展??梢哉f,格子Boltzmann方法不僅僅是一種數(shù)值模擬方法,而且是一項重要的科學研究手段。此外,格子Boltzmann方法還具有天生的并行特性,以及邊界條件處理簡單、程序易于實施等優(yōu)點。可以預計,隨著計算機技術(shù)的進一步發(fā)展,以及計算方法的逐漸豐富,格子Boltzmann方法將會取得更多成果,并為科技發(fā)展發(fā)揮更重要的作用。作為一門多學科的 交叉產(chǎn)物,格子Boltzmann方法涉及統(tǒng)計力學、流體力學、熱力學、傳熱學以及計算數(shù)學等諸多學科。
[0003]新的Intel?Xeon Phi?協(xié)處理器(MIC Many Integrated Core)構(gòu)建在至強處理器的并行編程原則之上,基于X86架構(gòu),通過集成諸多(至少50個)低功耗處理器內(nèi)核,每一個處理器內(nèi)核具備一個512位的單指令多數(shù)據(jù)流(SIMD, Single-1nstruction Multiple-Datastream)處理單元和很多新的向量運算指令。Intel?Xeon Phi?處理器優(yōu)化了每瓦性能。超過每秒一萬億次的計算能力,Intel?Xeon Phi?創(chuàng)造了實現(xiàn)在一個芯片上的超級計算機之奇跡。這個嶄新的微架構(gòu)具備突破性的每瓦性能,但也依賴于那些能夠充分并行擴展到諸多內(nèi)核、線程和向量的應用程序。英特爾采取了一種嶄新的方法來幫助釋放這種并行能力。英特爾盡最大可能沿用了人們易于理解的標準編程語言(包括C,C++和Fortran)以及現(xiàn)存的并行編程標準。程序員不再被迫采用非標準的或是硬件依賴的編程模式;而且,這種基于標準的方法保證了最大的代碼重用,通過編寫可移植、標準化以及面向當前和未來的兼容并行代碼將會獲得最大的回報。
[0004]MIC擁有極其靈活的編程方式。MIC可以作為一個協(xié)處理器存在,也可以被看作是一個獨立的節(jié)點?;镜腗IC編程模型是將MIC看作一個協(xié)處理器,CPU根據(jù)程序的指令,將一部分代碼運行在MIC端。此時存在兩類設(shè)備,即CPU端和MIC多核協(xié)處理器端。
[0005]大潤模擬(LES, Large Eddy Simulation),是近幾十年才發(fā)展起來的一個流體力學中重要的數(shù)值模擬研究方法。它區(qū)別于直接數(shù)值模擬(DNS, Direct numericalsimulation)和雷諾平均(RANS, Reynolds-AveragedNavier-Stokes)方法。其基本思想是對大渦進行計算,對小渦進行模擬。通過濾波函數(shù)將湍流的瞬時運動信號分解成大尺度渦運動和小尺度渦運動兩部分;其中的大尺度渦擁有較大比例的湍流動能,對雷諾應力產(chǎn)生及湍流擴散起主要作用,且大渦的運動較強依賴于邊界條件,即依賴于個別的流動情況,不存在通用模型,須通過控制方程直接進行數(shù)值求解;而小尺度渦主要起耗散作用,在高雷諾數(shù)下小渦運動趨向各向同性,受邊界條件影響較小,故使用通用模型進行模擬。通過精確求解某個尺度以上所有湍流尺度的運動,從而能夠捕捉到RANS方法所無能為力的許多非穩(wěn)態(tài)、非平衡過程中出現(xiàn)的大尺度效應和擬序結(jié)構(gòu),同時又克服了直接數(shù)值模擬需要求解所有湍流尺度而帶來的巨大計算開銷的問題,因而被認為是最具有潛力的湍流數(shù)值模擬發(fā)展方向。由于其計算耗費依然很大,目前大渦模擬還無法在工程上廣泛應用。但是大渦模擬技術(shù)對于研究許多流動機理問題提供了更為可靠的手段,可為流動控制提供理論基礎(chǔ),并可為工程上廣泛應用的RANS方法改進提供指導。
[0006]格子Boltzmann方法(LBM)是計算流體力學領(lǐng)域內(nèi)一種不同于傳統(tǒng)數(shù)值方法的建模和計算方法,是對Boltzmann方程的一種特殊的離散格式的求解。求解過程是時間推進式的,并且求解過程具有良好的區(qū)域性,所以特別適合并行求解。
[0007]—般對格子Boltzmann方程求解,可以分解為兩部分:
[0008]I)碰撞項,它與粒子離散速度的不同方向、離散節(jié)點的位置、粒子碰撞更新后的平衡分布函數(shù)以及松弛時間相關(guān);而松弛時間又與特征速度、特征長度及雷諾數(shù)Re相關(guān);
[0009]2)遷移項,它與離散速度方向上的粒子分布函數(shù)、時間步長以及離散方向上粒子的速度相關(guān)。
[0010]如圖1所示的LBM的D2Q9模型中,每個格點中都有9個不同方向的平衡分布函數(shù)。格點上的宏觀變量如密度、壓強以及速度等都可以由粒子分布函數(shù)得到平衡分布函數(shù)。
[0011]使用MIC協(xié)處理器在單節(jié)點內(nèi)的CPU+MIC協(xié)同計算的快速大渦模擬方法是一種效率極高的方法,但是對于超大規(guī)模的數(shù)據(jù)來說,單節(jié)點的處理仍然不能滿足要求,所以采用基于LBM方法在多節(jié)點上CPU/MIC協(xié)同計算大渦模擬勢在必行,它能夠極大地滿足很多科學家在流體力學方面處理大規(guī)模數(shù)據(jù)的需求。
【發(fā)明內(nèi)容】
[0012]本發(fā)明所要解決的技術(shù)問題是提供一種基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬方法及系統(tǒng),能夠在多MIC節(jié)點上采用CPU和MIC協(xié)同計算大渦模擬方法。
[0013]為了解決上述技術(shù)問題,本發(fā)明提供了一種基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬系統(tǒng),除了包括N個節(jié)點設(shè)備外,還包括每個節(jié)點設(shè)備含有一個CPU及其相應的CPU進程模塊以及m個微處理器及其相應的m個微處理器進程模塊,在所有進程模塊中選定一個為主進程模塊,N和m為正整數(shù);其中:
[0014]主進程模塊,用于將輸入的數(shù)據(jù)廣播給系統(tǒng)中的其它進程模塊,待全部微處理器進程模塊和CPU進程模塊完成所有計算任務后,將從所有節(jié)點接收的計算結(jié)果輸出;
[0015]微處理器進程模塊,用于將輸入的數(shù)據(jù)卸載給相應的微處理器進行計算,同時與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算;
[0016]CPU進程模塊,用于控制本節(jié)點的協(xié)同計算,根據(jù)CPU的核數(shù)為每一 CPU核啟用相應的線程對分配的部分數(shù)據(jù)進行計算;同時與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算。
[0017]進一步地,
[0018]主進程模塊通過消息傳遞接口方式將數(shù)據(jù)廣播給其它進程模塊;通過消息傳遞接口方式將接收的計算結(jié)果輸出;
[0019]微處理器進程模塊或CPU進程模塊與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊通過消息傳遞接口方式進行數(shù)據(jù)通信。
[0020]進一步地,在進行數(shù)據(jù)廣播之前根據(jù)系統(tǒng)內(nèi)的節(jié)點數(shù)N對流場計算域進行網(wǎng)格劃分,根據(jù)網(wǎng)格總高為每個節(jié)點均分總高,得到行高,以及均分行高得到每一微處理器和CPU分行的高。
[0021]進一步地,
[0022]微處理器進程模塊根據(jù)微處理器內(nèi)核數(shù)η設(shè)總線程數(shù)為Τ,則T=t*n,其中,該t是為微處理器設(shè)的線程數(shù);節(jié)點內(nèi)所有的微處理器線程并行進行本節(jié)點分配的網(wǎng)格數(shù)據(jù)中的每一分行網(wǎng)格點的計算,且利用微處理器上的向量化處理加速每一分行網(wǎng)格點的計算;
[0023]CPU進程模塊中的所有線程參與相應分行網(wǎng)格點的計算;其中,CPU線程控制進行該分行網(wǎng)格點的初始化密度、速度及平衡分布函數(shù),并對分布函數(shù)賦值,控制微處理器線程和CPU線程協(xié)同對分行網(wǎng)格點通過碰撞過程求出離散方程f*,通過遷移過程求出下一時刻的分布函數(shù),由分行網(wǎng)格點上的分布函數(shù)統(tǒng)計密度和速度,利用統(tǒng)計出的密度值和速度值計算平衡分布函數(shù);對網(wǎng)格點的邊界進行計算。
[0024]進一步地,微處理器線程和CPU線程通過各自的內(nèi)核函數(shù)并行計算本分行網(wǎng)格點的遷移過程和碰撞過程,并在微處理器上利用向量化處理單元對該過程的主體計算部分進行向量化處理;同時采用反彈法、非平衡外推法中的任意一種對網(wǎng)格點的邊界進行計算。
[0025]為了解決上述技術(shù)問題,本發(fā)明提供了一種適用于如前所述系統(tǒng)的基于格子Boltzmann實現(xiàn)協(xié)同計算大潤模擬的方法,包括:
[0026]確定該系統(tǒng)內(nèi)的節(jié)點及其進程,將計算區(qū)域進行網(wǎng)格劃分;由選定的主進程將輸入的計算數(shù)據(jù)廣播給各節(jié)點;
[0027]由每一節(jié)點的CPU進程進行計算初始化,確定本節(jié)點的宏觀參量及分布函數(shù),并控制本節(jié)點的微處理器進程和CPU線程協(xié)同在同一時層采用遷移碰撞求解離散方程,并進行邊界處理,完成本節(jié)點上宏觀參量的計算;微處理器進程和CPU線程同時與相鄰節(jié)點的微處理器進程或CPU進程進行數(shù)據(jù)通信。
[0028]由主進程輸出所有節(jié)點的計算結(jié)果。
[0029]進一步地,在該方法執(zhí)行前還包括:進行物理建模,確定計算區(qū)域、初始條件以及邊界條件。
[0030]進一步地,確定該系統(tǒng)內(nèi)的節(jié)點及其進程,將計算區(qū)域進行網(wǎng)格劃分,具體包括:
[0031]根據(jù)該系統(tǒng)內(nèi)的計算設(shè)備確定節(jié)點,為每一節(jié)點配置微處理器進程和CPU進程,選定其中一個進程為主進程;
[0032]根據(jù)該系統(tǒng)內(nèi)的節(jié)點數(shù)N對流場計算域進行網(wǎng)格劃分,根據(jù)網(wǎng)格總高為每個節(jié)點均分總高,得到行高,以及均分行高得到每一微處理器和CPU分行的高。
[0033]進一步地,由每一節(jié)點的CPU進程進行計算初始化,確定本節(jié)點的宏觀參量及分布函數(shù),并控制本節(jié)點的MIC進程和CPU線程協(xié)同在同一時層采用遷移碰撞求解離散方程,并進行邊界處理,完成本節(jié)點上宏觀參量的計算,具體包括:
[0034]微處理器進程模塊根據(jù)微處理器內(nèi)核數(shù)η設(shè)總線程數(shù)為Τ,則T=t*n,其中,該t為微處理器可設(shè)的線程數(shù);CPU進程根據(jù)CPU的核數(shù)為每一 CPU核啟用相應的線程;
[0035]CPU線程對分配的相應分行網(wǎng)格點進行初始化密度、速度及平衡分布函數(shù),并對分布函數(shù)賦值,控制所述微處理器線程和CPU線程協(xié)同對分行網(wǎng)格點通過碰撞過程求出離散方程f*,通過遷移過程求出下一時刻的分布函數(shù),由分行網(wǎng)格點上的分布函數(shù)統(tǒng)計密度和速度,利用統(tǒng)計出的密度值和速度值計算平衡分布函數(shù),利用微處理器上的向量化處理加速分行網(wǎng)格點的計算;同時采用反彈法、非平衡外推法中的任意一種對分行網(wǎng)格點的邊界進行計算。
[0036]進一步地,主進程通過消息傳遞接口方式將數(shù)據(jù)廣播給其它進程模塊;通過消息傳遞接口方式將接收的計算結(jié)果輸出;微處理器進程和CPU進程與相鄰節(jié)點的微處理器進程或CPU進程通過消息傳遞接口方式進行數(shù)據(jù)通信。
[0037]本發(fā)明不僅提高了格子Boltzmann方法的處理性能,滿足了流體模擬的需求,而且能夠在多MIC節(jié)點下充分利用CPU以及MIC協(xié)處理器可降低功耗的優(yōu)勢,并且這種方法實現(xiàn)簡單,且需要的開發(fā)成本低,大大減少機房構(gòu)建成本和管理、運行以及維護費用。
【專利附圖】
【附圖說明】
[0038]圖1為LBM 二維D2Q9模型示意圖;
[0039]圖2為本發(fā)明的基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬系統(tǒng)實施例的框架;
[0040]圖3為圖2所示的系統(tǒng)實施例進行CPU-MIC協(xié)同計算的數(shù)據(jù)流圖;
[0041]圖4為圖2所示的系統(tǒng)實施例中對數(shù)據(jù)進行網(wǎng)格劃分的方式;
[0042]圖5為圖2所示的系統(tǒng)實施例中數(shù)據(jù)傳遞邊界部分遷移過程示意圖
[0043]圖6為圖2所示的系統(tǒng)實施例中節(jié)點間的數(shù)據(jù)傳遞示意圖;
[0044]圖7為圖2所示的系統(tǒng)實施例中同一節(jié)點上設(shè)備間的數(shù)據(jù)傳遞示意圖;
[0045]圖8為本發(fā)明的基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬方法實施例的流程圖。
【具體實施方式】
[0046]以下結(jié)合附圖和優(yōu)選實施例對本發(fā)明的技術(shù)方案進行詳細地闡述。以下列舉的實施例僅用于說明和解釋本發(fā)明,而不構(gòu)成對本發(fā)明技術(shù)方案的限制。
[0047]在實現(xiàn)本發(fā)明的方法之前,先在單節(jié)點上使用專業(yè)工具分析用格子Boltzmann進行大渦模擬方法的性能瓶頸測試,分析移植到多MIC節(jié)點相應平臺的可行性,找到實現(xiàn)大渦模擬耗時的熱點代碼,測試這些熱點代碼在大渦模擬的整個過程中所占的時間比例,分析提高整個方法性能的難度,再通過測試結(jié)果表明在采用格子Boltzmann理論實現(xiàn)大渦模擬方法時,大部分的時間消耗在求解離散方程和邊界處理過程,求解離散方程是通過遷移和碰撞的過程實現(xiàn)的,因此,求解離散方程和邊界處理的迭代過程是基于格子Boltzmann理論大渦模擬方法中的性能瓶頸,同時隨著大渦模擬過程數(shù)據(jù)量的增大,表現(xiàn)出單節(jié)點已經(jīng)無法滿足性能需求,需要增加計算節(jié)點來組織大規(guī)模計算。
[0048]本發(fā)明的基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬系統(tǒng)實施例的框架結(jié)構(gòu)如圖2所示,該系統(tǒng)的集群包括多個節(jié)點(N個)設(shè)備(圖2中簡稱節(jié)點),每個節(jié)點設(shè)備里含有一個CPU和相應配給的一個CPU進程模塊(圖2中簡稱C進程)以及m個MIC及相應配給的m個MIC進程模塊(圖2中簡稱M進程),在所有進程模塊中選定一個為主進程模塊;其中各CPU和各MIC協(xié)同計算的數(shù)據(jù)流圖請參見圖3所示:
[0049]主進程模塊,用于將輸入的數(shù)據(jù)廣播給集群中的其它進程模塊,待全部MIC進程模塊和(PU進程模塊完成所有計算任務后,將所有節(jié)點的計算結(jié)果輸出;
[0050]CPU進程模塊,用于控制本節(jié)點的協(xié)同計算,根據(jù)CPU的核數(shù)為每一 CPU核啟用相應的線程對分配的部分數(shù)據(jù)進行計算;同時與相鄰節(jié)點的MIC進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算;
[0051]MIC進程模塊,用于將輸入的數(shù)據(jù)卸載給相應的MIC進行計算,同時與相鄰節(jié)點的MIC進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算。
[0052]在上述系統(tǒng)實施例中,
[0053]主進程模塊通過消息傳遞接口(MPI,Message Passing Interface)方式將數(shù)據(jù)廣播給系統(tǒng)中的其它進程模塊;通過MPI方式將接收的計算結(jié)果輸出;
[0054]MIC進程模塊或CPU進程模塊與相鄰節(jié)點的MIC進程模塊或CPU進程模塊通過MPI方式進行數(shù)據(jù)通信。
[0055]在上述系統(tǒng)實施例中,
[0056]主進程模塊在進行數(shù)據(jù)廣播之前根據(jù)系統(tǒng)內(nèi)的節(jié)點數(shù)對流場計算域進行網(wǎng)格劃分,如圖4所示,假設(shè)網(wǎng)格總大小為(nx,ny),對于每個節(jié)點的網(wǎng)格平均劃分每行的高分別為:
[0057]
【權(quán)利要求】
1.一種基于格子Boltzmann實現(xiàn)協(xié)同計算大潤模擬系統(tǒng),包括N個節(jié)點設(shè)備,其特征在于,每個節(jié)點設(shè)備含有一個CPU及其相應的CPU進程模塊以及m個微處理器及其相應的m個微處理器進程模塊,在所有進程模塊中選定一個為主進程模塊,所述N和所述m為正整數(shù);其中: 主進程模塊,用于將輸入的數(shù)據(jù)廣播給系統(tǒng)中的其它進程模塊,待全部微處理器進程模塊和(PU進程模塊完成所有計算任務后,將從所有節(jié)點接收的計算結(jié)果輸出; 微處理器進程模塊,用于將輸入的數(shù)據(jù)卸載給相應的微處理器進行計算,同時與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算; CPU進程模塊,用于控制本節(jié)點的協(xié)同計算,根據(jù)CPU的核數(shù)為每一 CPU核啟用相應的線程對分配的部分數(shù)據(jù)進行計算;同時與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊進行數(shù)據(jù)通信,然后進入下一迭代的計算。
2.按照權(quán)利要求1所述的系統(tǒng),其特征在于, 所述主進程模塊通過消息傳遞接口方式將數(shù)據(jù)廣播給所述其它進程模塊;通過所述消息傳遞接口方式將接收的計算結(jié)果輸出; 所述微處理器進程模塊或CPU進程模塊與相鄰節(jié)點的微處理器進程模塊或CPU進程模塊通過所述消息傳遞接口方式進行數(shù)據(jù)通信。
3.按照權(quán)利要求1所述的系統(tǒng),其特征在于,在進行數(shù)據(jù)廣播之前根據(jù)所述系統(tǒng)內(nèi)的節(jié)點數(shù)N對流場計算域進行網(wǎng)格劃分,根據(jù)網(wǎng)格總高為每個節(jié)點均分所述總高,得到行高,以及均分所述行高得到每一微處理器和CPU分行的高。
4.按照權(quán)利要求1所述的系統(tǒng),其特征在于, 所述微處理器進程模塊根據(jù)微處理器內(nèi)核數(shù)η設(shè)總線程數(shù)為Τ,則T=t*n,其中,該t是為微處理器設(shè)的線程數(shù);所述節(jié)點內(nèi)所有的微處理器線程并行進行本節(jié)點分配的網(wǎng)格數(shù)據(jù)中的每一分行網(wǎng)格點的計算,且利用微處理器上的向量化處理加速所述每一分行網(wǎng)格點的計算; 所述CPU進程模塊中的所有線程參與相應分行網(wǎng)格點的計算;其中,CPU線程控制進行該分行網(wǎng)格點的初始化密度、速度及平衡分布函數(shù),并對分布函數(shù)賦值,控制所述微處理器線程和所述CPU線程協(xié)同對所述分行網(wǎng)格點通過碰撞過程求出離散方程f*,通過遷移過程求出下一時刻的分布函數(shù),由所述分行網(wǎng)格點上的分布函數(shù)統(tǒng)計密度和速度,利用統(tǒng)計出的密度值和速度值計算平衡分布函數(shù);對網(wǎng)格點的邊界進行計算。
5.按照權(quán)利要求4所述的系統(tǒng),其特征在于, 所述微處理器線程和所述CPU線程通過各自的內(nèi)核函數(shù)并行計算本分行網(wǎng)格點的所述遷移過程和所述碰撞過程,并在微處理器上利用向量化處理單元對該過程的主體計算部分進行向量化處理;同時采用反彈法、非平衡外推法中的任意一種對網(wǎng)格點的邊界進行計算。
6.一種適用于如權(quán)利要求1所述系統(tǒng)的基于格子Boltzmann實現(xiàn)協(xié)同計算大渦模擬的方法,包括: 確定所述系統(tǒng)內(nèi)的節(jié)點及其進程,將計算區(qū)域進行網(wǎng)格劃分;由選定的主進程將輸入的計算數(shù)據(jù)廣播給各節(jié)點; 由每一節(jié)點的CPU進程進行計算初始化,確定本節(jié)點的宏觀參量及分布函數(shù),并控制本節(jié)點的微處理器進程和CPU線程協(xié)同在同一時層采用遷移碰撞求解離散方程,并進行邊界處理,完成本節(jié)點上宏觀參量的計算;微處理器進程和CPU線程同時與相鄰節(jié)點的微處理器進程或CPU進程進行數(shù)據(jù)通信; 由主進程輸出所有節(jié)點的計算結(jié)果。
7.按照權(quán)利里要求6所述的方法,其特征在于,在所述方法執(zhí)行前還包括:進行物理建模,確定所述計算區(qū)域、初始條件以及邊界條件。
8.按照權(quán)利要求7所述的方法,其特征在于,所述確定所述系統(tǒng)內(nèi)的節(jié)點及其進程,將計算區(qū)域進行網(wǎng)格劃分,具體包括: 根據(jù)所述系統(tǒng)內(nèi)的計算設(shè)備確定節(jié)點,為每一節(jié)點配置微處理器進程和CPU進程,選定其中一個進程為所述主進程; 根據(jù)所述系統(tǒng)內(nèi)的節(jié)點數(shù)N對流場計算域進行網(wǎng)格劃分,根據(jù)網(wǎng)格總高為每個節(jié)點均分所述總高,得到行高,以及均分所述行高得到每一微處理器和CPU分行的高。
9.按照權(quán)利要求8所述的方法,其特征在于,所述由每一節(jié)點的CPU進程進行計算初始化,確定本節(jié)點的宏觀參量及分布函數(shù),并控制本節(jié)點的MIC進程和CPU線程協(xié)同在同一時層采用遷移碰撞求解離散方程,并進行邊界處理,完成本節(jié)點上宏觀參量的計算,具體包括: 所述微處理器進程模塊根據(jù)微處理器內(nèi)核數(shù)η設(shè)總線程數(shù)為Τ,則T=t*n,其中,該t為微處理器可設(shè)的 線程數(shù);所述CPU進程根據(jù)CPU的核數(shù)為每一 CPU核啟用相應的線程; 所述CPU線程對分配的相應分行網(wǎng)格點進行初始化密度、速度及平衡分布函數(shù),并對分布函數(shù)賦值,控制所述微處理器線程和所述CPU線程協(xié)同對所述分行網(wǎng)格點通過碰撞過程求出離散方程f*,通過遷移過程求出下一時刻的分布函數(shù),由所述分行網(wǎng)格點上的分布函數(shù)統(tǒng)計密度和速度,利用統(tǒng)計出的密度值和速度值計算平衡分布函數(shù),利用微處理器上的向量化處理加速所述分行網(wǎng)格點的計算;同時采用反彈法、非平衡外推法中的任意一種對所述分行網(wǎng)格點的邊界進行計算。
10.按照權(quán)利要求6至9任一項所述的方法,其特征在于, 所述主進程通過消息傳遞接口方式將數(shù)據(jù)廣播給所述其它進程模塊;通過所述消息傳遞接口方式將接收的計算結(jié)果輸出; 所述微處理器進程和所述CPU進程與相鄰節(jié)點的微處理器進程或CPU進程通過所述消息傳遞接口方式進行數(shù)據(jù)通信。
【文檔編號】G06F9/46GK103778098SQ201410053493
【公開日】2014年5月7日 申請日期:2014年2月17日 優(yōu)先權(quán)日:2014年2月17日
【發(fā)明者】盧曉偉, 張清 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司