国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于mpi的網(wǎng)格并行預(yù)處理方法

      文檔序號:8445388閱讀:2057來源:國知局
      基于mpi的網(wǎng)格并行預(yù)處理方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種并行預(yù)處理技術(shù),具體地說,涉及一種網(wǎng)格并行預(yù)處理方法。
      【背景技術(shù)】
      [0002]在科學(xué)與工程計算領(lǐng)域中,網(wǎng)格對各類微分方程的數(shù)值求解具有重要意義,網(wǎng)格分布是求解計算的基礎(chǔ)環(huán)境。微分方程的求解主要包括數(shù)值離散和代數(shù)方程組求解兩步,在離散方法確定的情況下,網(wǎng)格分布信息能直接反映代數(shù)方程組解向量和系數(shù)矩陣的邏輯結(jié)構(gòu)。隨著并行計算的廣泛應(yīng)用,網(wǎng)格在微分方程的并行求解中扮演著十分重要的角色。對分布式并行計算而言,基于區(qū)域分解的網(wǎng)格劃分和網(wǎng)格數(shù)據(jù)分布存儲的并行執(zhí)行是微分方程主要的并行求解途徑。
      [0003]網(wǎng)格劃分通過建立網(wǎng)格單元與并行計算機多處理器的對應(yīng)關(guān)系,將一個大規(guī)模復(fù)雜的網(wǎng)格劃分成多個子網(wǎng)格。網(wǎng)格劃分的好壞直接影響著并行計算的效率和求解算法的精確度,網(wǎng)格劃分策略的關(guān)鍵在于如何將大網(wǎng)格進行劃分,使得子網(wǎng)格較容易并行求解,并且能夠達(dá)到各處理器上計算負(fù)載平衡和處理器間通信開銷最小的目標(biāo)。
      [0004]數(shù)據(jù)分割和網(wǎng)格信息管理是網(wǎng)格并行預(yù)處理主要的耗時階段,現(xiàn)有技術(shù)在網(wǎng)格預(yù)處理的數(shù)據(jù)分割和網(wǎng)格信息管理階段,耗時長,效率低。對于網(wǎng)格的劃分,現(xiàn)有的多層遞歸對分、行列劃分等技術(shù)速度慢,劃分質(zhì)量不理想?,F(xiàn)有網(wǎng)格預(yù)處理方案多為串行執(zhí)行的方式,只能在單個CPU核上執(zhí)行,同時多采用串行遍歷網(wǎng)格文件,速度較慢。而且,現(xiàn)有網(wǎng)格預(yù)處理方案多將網(wǎng)格數(shù)據(jù)文件集中存儲在一個或少數(shù)幾個文件里,當(dāng)數(shù)據(jù)規(guī)模較大時,會產(chǎn)生I/o文件讀寫堵塞,影響網(wǎng)格處理數(shù)據(jù)的規(guī)模和速度。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明的目的在于提供一種基于MPI的網(wǎng)格并行預(yù)處理方法,采用ParMETIS實現(xiàn)高效快速的網(wǎng)格劃分,采用分布式存儲網(wǎng)格數(shù)據(jù),提高了處理數(shù)據(jù)的規(guī)模和速度。
      [0006]為了實現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案如下:
      [0007]—種基于MPI的網(wǎng)格并行預(yù)處理方法,包括以下步驟:給定計算域的網(wǎng)格的分區(qū)數(shù);啟動MPI多進程,設(shè)定進程數(shù);判斷進程數(shù)是否等于分區(qū)數(shù),若等于則打開網(wǎng)格文件,主進程讀取網(wǎng)格單元信息文件,將網(wǎng)格單元平均初始分配到各個進程,每個進程創(chuàng)建網(wǎng)格單元的鄰接數(shù)組,否則重新啟動MPI多進程;每個進程調(diào)用ParMETIS對網(wǎng)格單元進行網(wǎng)格劃分;每個進程將網(wǎng)格單元信息分塊讀到數(shù)組,設(shè)定數(shù)組的索引位置;每個進程循環(huán)遍歷網(wǎng)格單元信息文件,判斷數(shù)組長度減去數(shù)組的索引位置號是否小于網(wǎng)格單元信息長度,若小于則讀取網(wǎng)格單元信息文件的數(shù)據(jù)填充到數(shù)組中,否則將數(shù)組元素賦值給網(wǎng)格單元,并修改數(shù)組的索引位置;判斷網(wǎng)格單元的分區(qū)號是否等于進程號,若等于則將網(wǎng)格單元信息存儲到進程文件中,否則修改數(shù)組索引位置,繼續(xù)循環(huán)判斷。
      [0008]進一步,計算域的網(wǎng)格的分區(qū)數(shù)小于或等于并行計算機的處理器數(shù)。
      [0009]進一步,鄰接數(shù)組的存儲格式為CSR。
      [0010]進一步,每個進程調(diào)用ParMETIS的子程序ParMETIS_V3_Mesh2Dual,將網(wǎng)格單元轉(zhuǎn)化成圖。
      [0011]進一步,每個進程調(diào)用ParMETIS的子程序ParMETIS_V3_AdaptiveRepart,對圖進行重劃分。
      [0012]進一步,每個進程調(diào)用ParMETIS的子程序ParMETIS_V3_Ref ineKway,進一步精化網(wǎng)格劃分的質(zhì)量。
      [0013]與現(xiàn)有技術(shù)相比,本發(fā)明采用ParMETIS實現(xiàn)高效快速的網(wǎng)格劃分,采用分布式存儲網(wǎng)格數(shù)據(jù),提高了處理數(shù)據(jù)的規(guī)模和速度。
      【附圖說明】
      [0014]圖1為本發(fā)明的網(wǎng)格并行預(yù)處理的流程示意圖;
      [0015]圖2為本發(fā)明的網(wǎng)格分布式存儲的流程示意圖。
      【具體實施方式】
      [0016]下面結(jié)合附圖和具體實施例對本發(fā)明基于MPI的網(wǎng)格并行預(yù)處理方法作進一步說明。
      [0017]本發(fā)明采用基于MPI的分布式并行執(zhí)行方式,通過ParMETIS并行網(wǎng)格分區(qū)和重分區(qū)功能,利用多層k-路圖劃分方法對三維網(wǎng)格進行高質(zhì)量的劃分。根據(jù)網(wǎng)格劃分后的結(jié)果,啟動多進程循環(huán)遍歷網(wǎng)格文件,實現(xiàn)大規(guī)模網(wǎng)格的快速并行預(yù)處理。利用本發(fā)明基于MPI的網(wǎng)格并行預(yù)處理方法,能顯著減少網(wǎng)格并行計算中的通信時間,提高并行計算效率。
      [0018]ParMETIS (Parallel Graph Partit1ning and Fill-reducing MatrixOrdering)-并行圖劃分和填充-約化矩陣排序,特別適合于大規(guī)模無結(jié)構(gòu)網(wǎng)格的并行數(shù)值模擬。ParMETIS基于MPI并行庫,實現(xiàn)了用于無結(jié)構(gòu)圖劃分、網(wǎng)格劃分、計算稀疏矩陣的填充-約化次序等多種算法。ParMETIS擴展了 METIS所提供的功能,并包含了特別適合于并行計算和大規(guī)模數(shù)值模擬的子程序。ParMETIS中實現(xiàn)的算法有基于并行的多層k_路圖劃分算法,多層k-路圖劃分是一種基于圖論的劃分方法,通常有圖的粗化算法、初始劃分算法和還原優(yōu)化算法組成?;诙鄬觡-路圖劃分方法使各子圖的頂點權(quán)值基本相同且劃分產(chǎn)生的邊截權(quán)數(shù)最小化,劃分結(jié)果產(chǎn)生的通信時間與行列等其它劃分方法相比大大降低,從而使得整個并行程序的執(zhí)行時間能得到有效減少,并且隨著數(shù)據(jù)規(guī)模的不斷增大和處理器個數(shù)的增加,通信開銷降低的效果更加明顯。
      [0019]網(wǎng)格劃分完成之后,可隨即獲得各網(wǎng)格結(jié)點或單元與處理器的分配對應(yīng)關(guān)系,接著需要根據(jù)此劃分結(jié)果為網(wǎng)格信息的分布式存儲進行數(shù)據(jù)分割。數(shù)據(jù)分割的主要實現(xiàn)過程是對所有處理器按結(jié)點或單元編號做遍歷循環(huán),對劃分給當(dāng)前處理器的結(jié)點或單元,把對應(yīng)的數(shù)組元素與網(wǎng)格單元結(jié)點列表遷移到本地存儲器中,最終在各個處理機內(nèi)部生成局部的坐標(biāo)數(shù)組與鄰點矩陣,實現(xiàn)網(wǎng)格信息的分布式存儲。
      [0020]MPI是一種基于消息傳遞的并行編程模型,現(xiàn)被廣泛應(yīng)用于分布式存儲結(jié)構(gòu)的并行計算中。MPI通過MPI_Init函數(shù)初始化MPI執(zhí)行環(huán)境,啟動多個進程,創(chuàng)建多個MPI進程之間的通信域?;贛PI的分布式并行執(zhí)行策略,是一種粗粒度的并行算法,通過將有限元網(wǎng)格計算區(qū)域劃分成與進程數(shù)相等的子區(qū)域數(shù),然后將這些子區(qū)域的網(wǎng)格數(shù)據(jù)映射到每個進程上并行預(yù)處理。由于每個進程只負(fù)責(zé)各自子區(qū)域的預(yù)處理,只在網(wǎng)格子區(qū)域邊界面上產(chǎn)生通信,數(shù)據(jù)通信量少,因此能獲得很好的并行預(yù)處理的效果。
      [0021]請參閱圖1,本發(fā)明提供的網(wǎng)格并行預(yù)處理的方案,在計算機上啟動MPI多進程,設(shè)定執(zhí)行ParMETIS分區(qū)任務(wù)的進程數(shù),即創(chuàng)建ParMETIS的通信域。利用ParMETIS并行區(qū)域分解工具,倉Il建網(wǎng)格單元的鄰接數(shù)組xadj和adjncy,作為ParMETIS功能函數(shù)的輸入?yún)?shù),將網(wǎng)格轉(zhuǎn)化成圖,再將圖進行重分區(qū)。重分區(qū)結(jié)果能實現(xiàn)并行計算的負(fù)載平衡和較少的分區(qū)邊界數(shù),從而減少并行計算的通信時間,顯著提高網(wǎng)格并行計算的效率。ParMETIS網(wǎng)格劃分結(jié)果建立了網(wǎng)格單元或結(jié)點與處理器進程間的一一對應(yīng)關(guān)系,各進程根據(jù)該劃分結(jié)果循環(huán)遍歷網(wǎng)格信息文件,通過定位文件指針和數(shù)組索引的方法分塊讀網(wǎng)格數(shù)據(jù),對劃分給當(dāng)前處理器的結(jié)點或單元,把對應(yīng)的數(shù)組元素與網(wǎng)格單元結(jié)點列表遷移到本地存儲器中,最終在各個處理器內(nèi)部生成局部的坐標(biāo)數(shù)組與鄰接矩陣,快速實現(xiàn)網(wǎng)格信息的分布式存儲。本發(fā)明定位文件指針和數(shù)組索引分塊讀的方法,大量減少了讀文件的操作,而且有效避免了多進程同時讀文件產(chǎn)生的競爭等待時間消耗。
      [0022]請參閱圖1和圖2,網(wǎng)格數(shù)據(jù)分布式存儲完成后,各進程采用鏈表數(shù)據(jù)結(jié)構(gòu),將構(gòu)成本地網(wǎng)格單元的所有網(wǎng)格結(jié)點進行插入排序,以索引鏈表表示本地網(wǎng)格結(jié)點的局部索弓丨,創(chuàng)建網(wǎng)格結(jié)點的局部索引。各進程對網(wǎng)格單元進行重排序,改善求解線性方程組稀疏矩陣的品質(zhì),并對排序后的網(wǎng)格單元設(shè)置進程間通信關(guān)系索引,最后各進程保存本地稀疏矩陣等數(shù)據(jù)用作方程的并行求解。本發(fā)明中的高質(zhì)量網(wǎng)格劃分結(jié)果和高效快速的實現(xiàn),為微分方程并行求解的精確性提供了保障,同時為大規(guī)模網(wǎng)格在數(shù)值模擬中的應(yīng)用提供了方便。
      [0023]請參閱圖2,本發(fā)明公開了一種基于MPI的網(wǎng)格并行預(yù)處理方法,包括以下步驟:給定計算域的
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1