適合分布式并行計算的PBiCOR方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及并行機(jī)通訊技術(shù)領(lǐng)域,特別是適合分布式并行計算的PBiCOR方法。
【背景技術(shù)】
[0002] 隨著大規(guī)模并行計算機(jī)的發(fā)展和應(yīng)用,復(fù)雜物理系統(tǒng)的高分辨率數(shù)值模擬已被提 上議事日程,并行計算機(jī)按存儲方式劃分,可分為共享內(nèi)存和分布式內(nèi)存兩種基本的并行 計算機(jī)存儲方式,共享內(nèi)存的并行計算機(jī),各個處理單元通過對共享內(nèi)存的訪問來交換信 息、協(xié)調(diào)各處理器對并行任務(wù)的處理,對這種共享內(nèi)存的編程,實現(xiàn)起來相對簡單,但共享 內(nèi)存往往成為性能特別是擴(kuò)展性的重要瓶頸,分布式內(nèi)存的并行計算機(jī),各個處理單元都 擁有自己獨(dú)立的局部存儲器,由于不存在公共可用的存儲單元,因此各個處理器之間通過 消息傳遞來交換信息、協(xié)調(diào)和控制各個處理器的執(zhí)行,不難看出,通訊對分布式內(nèi)存并行計 算機(jī)的性能有重要的影響,復(fù)雜的消息傳遞語句的編寫成為在分布式并行計算機(jī)上進(jìn)行并 行程序設(shè)計的難點所在,但是,對于分布式并行計算機(jī),由于它有很好的擴(kuò)展性和很高的性 能,它的應(yīng)用非常廣泛。
[0003] 對于分布式存儲并行機(jī),由于矩陣和向量被分布存儲在各處理器上,因此,即使矩 陣運(yùn)算通過并行運(yùn)算可有效地實現(xiàn),全局通訊,即內(nèi)積計算所引起的所有處理器間的通訊, 我們?nèi)圆荒苡行П苊?,Yang等分別提出了并行化的CGS和Bi-CGSTAB方法,Sturler等提 出了如何降低GMRES和CG算法中全局通訊影響的方法,Gu和Zuo等分別給出了并行化的 BICGSTAB (2)、GPBiCG和IICGS方法,Collignon等給出了并行IDR(s)方法;同時,基于區(qū) 域分解,Gu,Liu和Mo給出了一種不需整體內(nèi)積計算的CG類方法,即多搜索方向共輒梯度 (MSD-CG)方法,該方法將CG方法中的內(nèi)積計算用小線性方程組來代替,從而完全消除了全 局通訊。
【發(fā)明內(nèi)容】
[0004] 針對上述情況,為克服現(xiàn)有技術(shù)之缺陷,本發(fā)明之目的在于提供適合分布式并行 計算的PBiCOR方法,有效解決了分布式存儲并行機(jī)全局通訊互相影響的問題。
[0005] 其解決的技術(shù)方案是,假設(shè)并行機(jī)具有P臺處理機(jī),每臺處理機(jī)分別具有局部存 儲模塊和相應(yīng)的處理單元,處理單元之間通過互聯(lián)網(wǎng)相連;
[0006] 假定采用SPMD模型,即所有的處理單元執(zhí)行相同的程序,且一個處理單元需要遠(yuǎn) 程處理單元的數(shù)據(jù)時,必須通過消息傳遞完成;
[0007] P為處理器臺數(shù),N為稀疏矩陣A的維數(shù),nz為矩陣A每行(列)非零元素的平均 個數(shù),tfl為一個浮點操作的時間,t s為一個消息啟動時間,tw為一個字在兩臺處理器間傳 遞所需的時間,一個內(nèi)積或一個向量校正的計算時間為2t flN/P,其中N/P為分配給每個處 理器的未知量個數(shù),(2nz-l)tflN/P為稀疏矩陣向量乘積的計算時間;
[0008] 具有P臺處理器的矩陣(或網(wǎng)狀)分布式并行式,并假設(shè)通訊是二叉樹方式進(jìn)行 的,則一個內(nèi)積的整體聚集和廣播的時間為21ogP (ts+tw),而同時聚集和廣播K個內(nèi)積的時 間為21ogP(ts+ktw),稀疏矩陣已被映射到各處理器,使得矩陣向量乘積只需相鄰處理器間 的局部通訊,矩陣向量乘積所需的通訊是交換邊界數(shù)據(jù),即從其他處理器接收邊界數(shù)據(jù)和 向其他處理器發(fā)送邊界數(shù)據(jù),假設(shè)每個處理器必須接收和發(fā)送Il ni個信息,每個處理器上有 nb邊界數(shù)據(jù)單元個數(shù),因此,每個處理器必須進(jìn)行通訊的總字長為2 (2n b+r〇 ;
[0009] 由于不需通訊,一個向量校正的時間為:
[0010] tvec upd= 2t flN/P (2)
[0011] 只需一次全局通訊的K個內(nèi)積的時間為:
[0012] tinnprod(k) = 2ktflN/P+21ogP(ts+ktw) (3)
[0013] 只需局部通訊的一個矩陣向量乘積的時間為:
[0014] tnat-vec= (2n z-l)tflN/P+2nnts+2(2n b+nn)tw (4)
[0015] 一個矩陣向量乘積的通訊時間為2η"^+2 (2nb+r〇 tw。
[0016] 本發(fā)明實現(xiàn)全局通訊次數(shù)減少,使得PBiCOR方法的并行通訊性能得到了有效提 升,具有更好的并行性和擴(kuò)展性,提高了通訊性能改進(jìn)比率,勢必為油藏模擬、天氣預(yù)報、計 算流體力學(xué)、計算電磁學(xué)、天體物理和慣性約束聚變(ICF)二維數(shù)值模擬等領(lǐng)域提供了理 論基礎(chǔ)。
【附圖說明】
[0017] 圖1為已知文獻(xiàn)中的雙共輒A-正交的BiCOR方法。
[0018] 圖2為本發(fā)明的適合分布式并行計算的PBiCOR方法。
[0019] 圖3為BiCOR方法與PBiCOR方法每次迭代的計算量及所需全局通訊次數(shù)的比較 情況。
【具體實施方式】
[0020] 以下結(jié)合附圖,對本發(fā)明的【具體實施方式】作進(jìn)一步詳細(xì)說明。
[0021] 現(xiàn)結(jié)合圖1至圖3所示,本發(fā)明適合分布式并行計算的PBiCOR方法,假設(shè)并行機(jī) 具有P臺處理機(jī),每臺處理機(jī)分別具有局部存儲模塊和相應(yīng)的處理單元,處理單元之間通 過互聯(lián)網(wǎng)相連;
[0022] 假定采用SPMD模型,即所有的處理單元執(zhí)行相同的程序,且一個處理單元需要遠(yuǎn) 程處理單元的數(shù)據(jù)時,必須通過消息傳遞完成;
[0023] P為處理器臺數(shù),N為稀疏矩陣A的維數(shù),nz為矩陣A每行(列)非零元素的平均 個數(shù),tfl為一個浮點操作的時間,t s為一個消息啟動時間,tw為一個字在兩臺處理器間傳 遞所需的時間,一個內(nèi)積或一個向量校正的計算時間為2t flN/P,其中N/P為分配給每個處 理器的未知量個數(shù),(2nz-l)tflN/P為稀疏矩陣向量乘積的計算時間;
[0024] 具有P臺處理器的矩陣(或網(wǎng)狀)分布式并行式,并假設(shè)通訊是二叉樹方式進(jìn)行 的,則一個內(nèi)積的整體聚集和廣播的時間為21ogP (ts+tw),而同時聚集和廣播K個內(nèi)積的時 間為21ogP(ts+kt w),稀疏矩陣已被映射到各處理器,使得矩陣向量乘積只需相鄰處理器間 的局部通訊,矩陣向量乘積所需的通訊是交換邊界數(shù)據(jù),即從其他處理器接收邊界數(shù)據(jù)和 向其他處理器發(fā)送邊界數(shù)據(jù),假設(shè)每個處理器必須接收和發(fā)送Il ni個信息,每個處理器上有 nb邊界數(shù)據(jù)單元個數(shù),因此,每個處理器必須進(jìn)行通訊的總字長為2 (2n b+r〇 ;
[0025] 由于不需通訊,一個向量校正的時間為:
[0026] tvec upd= 2t flN/P (2)
[0027] 只需一次全局通訊的K個內(nèi)積的時間為:
[0028] tinnprod(k) = 2ktflN/P+21ogP(ts+ktw) (3)
[0029] 只需局部通訊的一個矩陣向量乘積的時間為:
[0030] tnat-vec= (2n z-l)tflN/P+2nnts+2(2n b+nn)tw