學(xué)習(xí)啦 > 論文大全 > 畢業(yè)論文 > 理學(xué)論文 > 數(shù)學(xué) >

三對(duì)角系統(tǒng)并行算法的研究概況

時(shí)間: 李安坤,徐安農(nóng),張秀1 分享

【摘 要】在科學(xué)和工程計(jì)算中,許多問(wèn)題往往歸結(jié)為三對(duì)角線性方程組的求解,其并行算法的研究具有重要意義。文章全面總結(jié)了當(dāng)前求解三對(duì)角線性方程組的兩類并行算法:直接解法和迭代解法,并介紹了其特點(diǎn)。
   【關(guān)鍵詞】三對(duì)角線性方程組;分治策略;并行算法;算法可擴(kuò)展性

一、概述
  三對(duì)角線性方程組的求解是許多科學(xué)和工程計(jì)算中最重要也是最基本的問(wèn)題之一。在核物理、流體力學(xué)、油藏工程、石油地震數(shù)據(jù)處理及數(shù)值天氣預(yù)報(bào)等許多領(lǐng)域的大規(guī)??茖W(xué)工程和數(shù)值處理中都會(huì)遇到三對(duì)角系統(tǒng)的求解問(wèn)題。很多三對(duì)角線性方程組的算法可以直接推廣到求解塊三對(duì)角及帶狀線性方程組。由于在理論和實(shí)際應(yīng)用上的重要性,近20年來(lái)三對(duì)角方程組的并行算法研究十分活躍。
  大規(guī)模科學(xué)計(jì)算需要高性能的并行計(jì)算機(jī)。隨著軟硬件技術(shù)的發(fā)展,高性能的并行計(jì)算機(jī)日新月異?,F(xiàn)今,SMP可構(gòu)成每秒幾十億次運(yùn)算的系統(tǒng),PVP和COW可構(gòu)成每秒幾百億次運(yùn)算的系統(tǒng),而MPP和DSM可構(gòu)成每秒萬(wàn)億次運(yùn)算或更高的系統(tǒng)。
  高性能并行計(jì)算機(jī)只是給大型科學(xué)計(jì)算提供了計(jì)算工具。如何發(fā)揮并行計(jì)算機(jī)的潛在性能和對(duì)三對(duì)角系統(tǒng)進(jìn)行有效求解,其關(guān)鍵在于抓住并行計(jì)算的特點(diǎn)進(jìn)行并行算法的研究和程序的設(shè)計(jì)與實(shí)現(xiàn)。另外,對(duì)處理機(jī)個(gè)數(shù)較多的并行計(jì)算系統(tǒng),在設(shè)計(jì)并行算法時(shí)必須解決算法的可擴(kuò)展性,并對(duì)可擴(kuò)展性進(jìn)行研究和分析。
  二、問(wèn)題的提出
  設(shè)三對(duì)角線性方程組為
AX=Y (1)
式中:A∈Rn×n非奇異,αij=0, 。X=(x1,x2,…xn)T Y=(y1,y2,…yn)T。
  此系統(tǒng)在許多算法中被提出,因此研究其高性能并行算法是很有理論和實(shí)際意義的。
  三、并行求解三對(duì)角系統(tǒng)的直接解法
  關(guān)于三對(duì)角線性方程組的直接求解已經(jīng)有大量并行算法,其中Wang的分裂法是最早針對(duì)實(shí)際硬件環(huán)境,基于分治策略提出的并行算法。它不僅通信結(jié)構(gòu)簡(jiǎn)單,容易推廣到一般帶狀線性方程組的并行求解,而且為相繼出現(xiàn)的許多其它并行算法提供了可行的局部分解策略。
  近20年來(lái)求解三對(duì)角方程組的并行算法都是基于分治策略,即通過(guò)將三對(duì)角方程組分解成P個(gè)小規(guī)模問(wèn)題,求解這P個(gè)小規(guī)模問(wèn)題,再將這些解結(jié)合起來(lái)得到原三對(duì)角方程組的解。一般求解三對(duì)角方程組的分治方法的計(jì)算過(guò)程可分為3個(gè)階段:一是消去,每臺(tái)處理機(jī)對(duì)子系統(tǒng)消元;二是求解縮減系統(tǒng)(需要通信);三是回代,將縮減系統(tǒng)的解回代到每個(gè)子系統(tǒng),求出最終結(jié)果。具體可分為以下幾類:
  (一)遞推耦合算法(Recursive Doubling)
  由Stone于1975年提出,算法巧妙地把LU分解方法的時(shí)序性很強(qiáng)的遞推計(jì)算轉(zhuǎn)化為遞推倍增并行計(jì)算。D.J.Evans對(duì)此方法做了大量研究。P.Dubois和G.Rodrigue的研究表明Stone算法是不穩(wěn)定的。
 ?。ǘ┭h(huán)約化方法(Cyclic Reduction)
  循環(huán)約化方法由Hockey和G.Golub在1965年提出,其基本思想是每次迭代將偶數(shù)編號(hào)方程中的奇變量消去,只剩下偶變量,問(wèn)題轉(zhuǎn)變成求解僅由偶變量組成的規(guī)模減半的新三對(duì)角方程組。求解該新方程組,得到所有的偶變量后,再回代求解所有的奇變量。即約化和回代過(guò)程。由于其基本的算術(shù)操作可以向量化,適合于向量機(jī)。此方法有大量學(xué)者進(jìn)行研究,提出了許多改進(jìn)的方法。例如,Heller針對(duì)最后幾步的短向量操作提出了不完全循環(huán)約化方法;R.Reulter結(jié)合IBM3090VF向量機(jī)的特點(diǎn)提出了局部循環(huán)約化法;P.Amodio針對(duì)分布式系統(tǒng)的特點(diǎn)改進(jìn)了循環(huán)約化方法;最近針對(duì)此方法又提出對(duì)三對(duì)角方程組進(jìn)行更大約化步的交替迭代策略。
 ?。ㄈ┗诰仃嚦朔纸馑惴?br/>  將系數(shù)矩陣A分解成A=FT,方程Ax=b化為Fy=b和Tx=y兩個(gè)方程組的并行求解。這種算法又可以分為兩類:
  1.重疊分解。如Wang的分裂法及其改進(jìn)算法就屬于這一類。P.Amodio在1993年對(duì)這類算法進(jìn)行了很好的總結(jié),用本地LU、本地LUD和本地循環(huán)約化法求解,并在1995年提出基于矩陣乘分解的并行QR算法。H.Michielse和A.Van der Vorst改變Wang算法的消元次序,提出了通信量減少的算法。李曉梅等將H.Michielse和A.Van der Vorst算法中的通信模式從單向串行改為雙向并行,提出DPP算法,是目前最好的三對(duì)角方程組分布式算法之一。2000年駱志剛等中依據(jù)DPP算法,利用計(jì)算與通信重疊技術(shù),減少處理機(jī)空閑時(shí)間取得了更好的并行效果。此類算法要求解P-1階縮減系統(tǒng)。
  2.不重疊分解。例如Lawrie & Sameh算法、Johsoon算法、Baron算法、Chawla在1991年提出的WZ分解算法以及Mattor在1995年提出的算法都屬于這一類。此類算法要求解2P-2階縮減系統(tǒng)。
  (四)基于矩陣和分解算法
  將系數(shù)矩陣分解成A=Ao+△A,這類算法的共同特點(diǎn)是利用Sherman & Morrison公式將和的逆化為子矩陣逆的和。按矩陣分解方法,這種算法又可分為兩類:
  1.重疊分解。這類算法首先由Mehrmann在1990年提出,通過(guò)選擇好的分解在計(jì)算過(guò)程中保持原方程組系數(shù)矩陣的結(jié)構(gòu)特性,具有好的數(shù)值穩(wěn)定性,需要求解P-1階縮減系統(tǒng)。
  2.不重疊分解。Sun等在1992年提出的并行劃分LU算法PPT算法和并行對(duì)角占優(yōu)算法PDD算法均屬于這一類。需要求解2P-2階縮減系統(tǒng)。其中 PDD算法的通訊時(shí)間不隨處理機(jī)的變化而變化,具有很好的可擴(kuò)展性。X.H.Sun和W.Zhang在2002年提出了兩層混合并行方法PTH ,其基本思想是在PDD中嵌入一個(gè)內(nèi)層三對(duì)角解法以形成一個(gè)兩層的并行,基本算法是PDD,三對(duì)角系統(tǒng)首先基于PDD分解。PTH算法也具有很好的可擴(kuò)展性。

四、并行求解三對(duì)角系統(tǒng)的迭代解法
  當(dāng)稀疏線性方程組的系數(shù)矩陣不規(guī)則時(shí),直接法在求解過(guò)程中會(huì)帶來(lái)大量非零元素,增加了計(jì)算量、通信量和存儲(chǔ)量,并且直接法不易并行,不能滿足求解大規(guī)模問(wèn)題的需要。因此通常使用迭代法來(lái)求解一般系數(shù)線性方程組和含零元素較多三對(duì)角線性方程組。迭代法包括古典迭代法和Krylov子空間迭代法。
  古典迭代法包括Jacobi、Gauss-Seidel、SOR、SSOR等方法。通常采用紅黑排序、多色排序和多分裂等技術(shù)進(jìn)行并行計(jì)算。由于古典迭代法有收斂速度慢、并行效果不好等缺點(diǎn),目前已較少用于直接求解大型稀疏線性方程組,而是作為預(yù)條件子和其它方法(如Krylov子空間方法)相結(jié)合使用。
  Krylov子空間方法具有存儲(chǔ)量小,計(jì)算量小且易于并行等優(yōu)點(diǎn),非常適合于并行求解大型稀疏線性方程組。結(jié)合預(yù)條件子的Krylov子空間迭代法是目前并行求解大型稀疏線性方程組的最主要方法。
  給定初值X0,求解稀疏線性方程組AX=Y。設(shè)Km為維子空間,一般投影方法是從m維仿射子空間X0+Km中尋找近似解Xm使之滿足Petrov-Galerkin條件
        Y-AXm┻Lm     
其中Lm為另一個(gè)維子空間。如果Km是Krylov子空間,則上述投影方法稱為Krylov子空間方法。Krylov子空間Km(A,r0)定義為:
   Km(A,r0)=span{r0,Ar0,A2r0,…,Am-1r0}
選取不同的Km和Lm就得到不同的Krylov子空間方法。主要算法包括四類:基于正交投影方法、基于正交化方法、基于雙正交化方法、基于正規(guī)方程方法。
  Krylov子空間迭代法的收斂速度依賴于系數(shù)矩陣特征值的分布,對(duì)于很多問(wèn)題,直接使用迭代法的收斂速度特別慢,或者根本不收斂。因此使用預(yù)條件改變其收斂性,使中斷問(wèn)題可解,并加速收斂速度是需要的。目前人們研究的預(yù)條件技術(shù)可分為四類:采用基于矩陣分裂的古典迭代法作為預(yù)條件子、采用不完全LU分解作預(yù)條件子、基于系數(shù)矩陣近似逆的預(yù)條件子、結(jié)合實(shí)際問(wèn)題用多重網(wǎng)格或區(qū)域分解作預(yù)條件子。對(duì)Krylov子空間和預(yù)條件Krylov子空間方法有詳細(xì)的討論。
  預(yù)條件Krylov子空間方法的并行計(jì)算問(wèn)題一直是研究熱點(diǎn),已提出了一系列好的并行算法。目前預(yù)條件Krylov子空間方法的計(jì)算量主要集中在矩陣向量乘上。雖然學(xué)者們做了大量的研究工作,但是還沒找到效果好,又易于并行的預(yù)條件子。
  需要特別指出的是,對(duì)于一般線性代數(shù)方程組的并行求解,其可擴(kuò)展并行計(jì)算的研究已相對(duì)成熟,并已形成相應(yīng)的并行軟件庫(kù),如美國(guó)田納西亞州立大學(xué)和橡樹嶺國(guó)家實(shí)驗(yàn)室研制的基于消息傳遞計(jì)算平臺(tái)的可擴(kuò)展線性代數(shù)程序庫(kù)ScaLAPACK和得克薩斯大學(xué)開發(fā)的界面更加友好的并行線性代數(shù)庫(kù)PLAPACK。我們借鑒其研究成果和研究方法,對(duì)三對(duì)角線性方程組并行算法的研究是有幫助的。
  五、結(jié)語(yǔ)
  三對(duì)角線性方程組的直接解法,算法豐富,程序較容易實(shí)現(xiàn)。但計(jì)算過(guò)程要增加計(jì)算量,并且大部分算法都對(duì)系數(shù)矩陣的要求比較高。迭代解法適合于非零元素較多的情況,特別是結(jié)合預(yù)條件子的Krylov子空間迭代法已成為當(dāng)前研究的熱點(diǎn)。
  盡管三對(duì)角系統(tǒng)并行算法的研究取得了很多成果。但是還存在一些問(wèn)題:直接法中,分治策略帶來(lái)計(jì)算量和通信量的增加,如何減少計(jì)算量和通信量有待于進(jìn)一步的研究;目前直接算法均基于分治策略,如何把其它并行算法設(shè)計(jì)技術(shù),如平衡樹和流水線等技術(shù)應(yīng)用到三對(duì)角系統(tǒng)的并行求解中也是需要引起重視的方向;對(duì)于非對(duì)稱系統(tǒng)還沒找到一種通用的Krylov子空間方法;Krylov子空間方法的并行實(shí)現(xiàn)時(shí)僅考慮系數(shù)矩陣與向量乘,對(duì)其它問(wèn)題考慮不夠;以往設(shè)計(jì)的并行算法缺乏對(duì)算法可擴(kuò)展性的考慮和分析。

【參考文獻(xiàn)】
  [1]駱志剛,李曉梅,王正華.三對(duì)角線性方程組的一種有效分布式并行算法[J].計(jì)算機(jī)研究與發(fā)展,2000,(7).

2483