国产精品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ù)處理方法_3

      文檔序號(hào):8445388閱讀:來(lái)源:國(guó)知局
      ize個(gè)類型數(shù)據(jù)到數(shù)組file_arr,并修改文件指針偏移位置offset為file_arr_size*sizeof (數(shù)據(jù)類型),設(shè)置數(shù)組的當(dāng)前索引位置arr_offset為O,設(shè)置文件已讀部分大小read_file_size為file_arr_size。計(jì)算整個(gè)文件nenn.bin的文件大小為file_size。
      [0055]4)各進(jìn)程根據(jù)全局網(wǎng)格單元數(shù)循環(huán)遍歷網(wǎng)格單元信息文件nenn.bin,并判斷數(shù)組file.arr的大小減去數(shù)組的偏移是否小于一個(gè)完整的網(wǎng)格單元信息長(zhǎng)度。若數(shù)組file_arr的大小減去數(shù)組的偏移小于一個(gè)完整的網(wǎng)格單元信息長(zhǎng)度,則定位nenn.bin的文件指針,從當(dāng)前nenn.bin文件指針的位置讀數(shù)據(jù),填充到數(shù)組f ile_arr中。若數(shù)組file_arr的大小減去數(shù)組的偏移不小于一個(gè)完整的網(wǎng)格單元信息長(zhǎng)度,則定位數(shù)組file_arr的索引,將當(dāng)前數(shù)組索引下的元素給網(wǎng)格單元類型、網(wǎng)格物理實(shí)體,以及網(wǎng)格單元結(jié)點(diǎn)數(shù)組賦值,賦值完成后,修改數(shù)組索引位置arr_ofTset的值。
      [0056]if ((file_arr_size - arr_offset) < (3+n_max))判斷數(shù)組剩余元素個(gè)數(shù)是否小于一個(gè)完整單元信息的長(zhǎng)度。
      [0057]{
      [0058]將數(shù)組的剩余元素即第arr_offset至第file_arr_size的元素值依次賦給數(shù)組的第O到第file_arr_size-arr_offset_l兀素,并用fseek函數(shù)定位nenn.bin文件指針到當(dāng)前offset值的位置。
      [0059]if (f ile_size - read_f ile_size) >=arr_offset)判斷文件未讀部分是否小于數(shù)組待填充部分
      [0060]{
      [0061]創(chuàng)建一個(gè)大小為arr_offset的讀數(shù)據(jù)數(shù)組read_arr,用來(lái)存儲(chǔ)分塊讀的數(shù)據(jù)。
      [0062]讀arr_ofTset個(gè)類型數(shù)據(jù)到數(shù)組read_arr,修改文件指針偏移位置offset=offset+arr_offset*sizeof (數(shù)據(jù)類型)
      [0063]將read_arr的數(shù)組元素依次賦值給數(shù)組file_arr的后arr_offset元素。
      [0064]修改已讀文件的大小read_file_size 的值,read_fiIe_size=read_fiIe_size+arr_offset
      [0065]}
      [0066]else
      [0067]{
      [0068]創(chuàng)建一個(gè)大小為file_size_read_file_size 的數(shù)組 read_arr,讀 file_size-read_file_size個(gè)類型數(shù)據(jù)到數(shù)組read_arr,修改文件指針偏移位置offset=offset+ (file_size-read_file_size) ^sizeof (數(shù)據(jù)類型)
      [0069]將read_arr的數(shù)組元素依次賦值給數(shù)組file_arr的后file_size_read_file_size兀素。
      [0070]修改已讀文件的大小read_f ile_size 的值,read_f ile_size=f ile_size
      [0071]}
      [0072]刪除數(shù)組read_arr,釋放內(nèi)存。
      [0073]設(shè)置數(shù)組file_arr的索引位置arr_offset的值為O
      [0074]else
      [0075]{
      [0076]將當(dāng)前數(shù)組索引位置的元素賦值給網(wǎng)格單元的類型elejype,以及結(jié)點(diǎn)數(shù)組
      [0077]修改數(shù)組索引的值arr_offset=arr_offset+3+n_max,其中3+n_max為網(wǎng)格單兀信息的長(zhǎng)度。
      [0078]}
      [0079]if (分區(qū)號(hào)是否等于進(jìn)程號(hào))
      [0080]{
      [0081]將當(dāng)前索引位置的元素賦值給網(wǎng)格單元的結(jié)點(diǎn)數(shù)組nenn[n_max],其中n_max為構(gòu)成網(wǎng)格單元的結(jié)點(diǎn)數(shù)。將單元類型ele_type,結(jié)點(diǎn)數(shù)組nenn寫(xiě)進(jìn)以進(jìn)程號(hào)命名的網(wǎng)格單兀文件 nenn_mpi_id_physical_entity.bin。
      [0082] }
      [0083]判斷當(dāng)前網(wǎng)格單元的分區(qū)號(hào)是否等于本地進(jìn)程號(hào),若分區(qū)號(hào)等于進(jìn)程號(hào),則將網(wǎng)格單元的類型和結(jié)點(diǎn)數(shù)組寫(xiě)進(jìn)由本地進(jìn)程號(hào)和物理實(shí)體號(hào)共同命名的文件nenn_mpi_id_physical_entity.bin,若分區(qū)號(hào)不等于進(jìn)程號(hào),則修改數(shù)組索引位置,繼續(xù)循環(huán)判斷。
      [0084]5)各進(jìn)程根據(jù)全局網(wǎng)格單元數(shù)global_nel循環(huán)重復(fù)步驟4),直到整個(gè)循環(huán)結(jié)束,實(shí)現(xiàn)了網(wǎng)格的分布式存儲(chǔ)。
      [0085]11.網(wǎng)格并行預(yù)處理結(jié)束。
      [0086]上述說(shuō)明是針對(duì)本發(fā)明較佳可行實(shí)施例的詳細(xì)說(shuō)明,但實(shí)施例并非用以限定本發(fā)明的專利申請(qǐng)范圍,凡本發(fā)明所揭示的技術(shù)精神下所完成的同等變化或修飾變更,均應(yīng)屬于本發(fā)明所涵蓋專利范圍。
      【主權(quán)項(xiàng)】
      1.一種基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于,包括以下步驟: 給定計(jì)算域的網(wǎng)格的分區(qū)數(shù); 啟動(dòng)MPI多進(jìn)程,設(shè)定進(jìn)程數(shù); 判斷進(jìn)程數(shù)是否等于分區(qū)數(shù),若等于則打開(kāi)網(wǎng)格文件,主進(jìn)程讀取網(wǎng)格單元信息文件,將網(wǎng)格單元平均初始分配到各個(gè)進(jìn)程,每個(gè)進(jìn)程創(chuàng)建網(wǎng)格單元的鄰接數(shù)組,否則重新啟動(dòng)MPI多進(jìn)程; 每個(gè)進(jìn)程調(diào)用ParMETIS對(duì)網(wǎng)格單元進(jìn)行網(wǎng)格劃分; 每個(gè)進(jìn)程將網(wǎng)格單元信息分塊讀到數(shù)組,設(shè)定數(shù)組的索引位置; 每個(gè)進(jìn)程循環(huán)遍歷網(wǎng)格單元信息文件,判斷數(shù)組長(zhǎng)度減去數(shù)組的索引位置號(hào)是否小于網(wǎng)格單元信息長(zhǎng)度,若小于則讀取網(wǎng)格單元信息文件的數(shù)據(jù)填充到數(shù)組中,否則將數(shù)組元素賦值給網(wǎng)格單元,并修改數(shù)組的索引位置; 判斷網(wǎng)格單元的分區(qū)號(hào)是否等于進(jìn)程號(hào),若等于則將網(wǎng)格單元信息存儲(chǔ)到進(jìn)程文件中,否則修改數(shù)組索引位置,繼續(xù)循環(huán)判斷。
      2.如權(quán)利要求1所述的基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于:計(jì)算域的網(wǎng)格的分區(qū)數(shù)小于或等于并行計(jì)算機(jī)的處理器數(shù)。
      3.如權(quán)利要求1所述的基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于:鄰接數(shù)組的存儲(chǔ)格式為CSR。
      4.如權(quán)利要求1所述的基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于:每個(gè)進(jìn)程調(diào)用ParMETIS的子程序ParMETIS_V3_Mesh2Dual,將網(wǎng)格單元轉(zhuǎn)化成圖。
      5.如權(quán)利要求4所述的基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于:每個(gè)進(jìn)程調(diào)用ParMETIS 的子程序 ParMETIS_V3_AdaptiveRepart,對(duì)圖進(jìn)行重劃分。
      6.如權(quán)利要求5所述的基于MPI的網(wǎng)格并行預(yù)處理方法,其特征在于:每個(gè)進(jìn)程調(diào)用ParMETIS的子程序ParMETIS_V3_RefineKway,進(jìn)一步精化網(wǎng)格劃分的質(zhì)量。
      【專利摘要】本發(fā)明公開(kāi)了一種基于MPI的網(wǎng)格并行預(yù)處理方法,包括給定計(jì)算域的網(wǎng)格的分區(qū)數(shù);啟動(dòng)MPI多進(jìn)程,設(shè)定進(jìn)程數(shù);判斷進(jìn)程數(shù)是否等于分區(qū)數(shù),等于則打開(kāi)網(wǎng)格文件,主進(jìn)程讀取網(wǎng)格單元信息文件,將網(wǎng)格單元平均初始分配到各個(gè)進(jìn)程,每個(gè)進(jìn)程創(chuàng)建其鄰接數(shù)組,否則重新啟動(dòng)MPI多進(jìn)程;每個(gè)進(jìn)程調(diào)用ParMETIS進(jìn)行網(wǎng)格劃分;每個(gè)進(jìn)程將網(wǎng)格單元信息分塊讀到數(shù)組,設(shè)定數(shù)組的索引位置;每個(gè)進(jìn)程循環(huán)遍歷網(wǎng)格單元信息文件,判斷數(shù)組長(zhǎng)度減去數(shù)組的索引位置號(hào)是否小于網(wǎng)格單元信息長(zhǎng)度,小于則讀取網(wǎng)格單元信息文件的數(shù)據(jù)填充到數(shù)組中,否則將數(shù)組元素賦值給網(wǎng)格單元;判斷網(wǎng)格單元的分區(qū)號(hào)是否等于進(jìn)程號(hào),等于則將網(wǎng)格單元信息存儲(chǔ)到進(jìn)程文件中,否則繼續(xù)循環(huán)判斷。
      【IPC分類】G06F17-30, G06F9-38
      【公開(kāi)號(hào)】CN104765589
      【申請(qǐng)?zhí)枴緾N201410004273
      【發(fā)明人】陳春艷, 羅海飆, 廖俊豪, 王婷
      【申請(qǐng)人】廣州中國(guó)科學(xué)院軟件應(yīng)用技術(shù)研究所
      【公開(kāi)日】2015年7月8日
      【申請(qǐng)日】2014年1月2日
      當(dāng)前第3頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1