林亞君
摘要 隨著并行計算的發(fā)展,實現(xiàn)潮流計算的并行化是提高計算速度的有效方法,而如何利用GPU技術(shù)優(yōu)化潮流計算中線性方程組的求解則是關(guān)鍵。研究了潮流迭代求解中易于并行的線性方程組求解方法,提出了采用預(yù)處理的穩(wěn)定雙共軛梯度算法( Bi-CGSTAB),提高線性方程紐的并行性與計算性能。最后通過應(yīng)用InterPSS對所提的方法進(jìn)行驗證。
【關(guān)鍵詞】潮流計算 并行計算 預(yù)條件處理穩(wěn)定 雙共軛梯度算法
現(xiàn)代電網(wǎng)朝著大規(guī)模、復(fù)雜性、多元性的方向發(fā)展,電力系統(tǒng)潮流的計算量與復(fù)雜度急劇增加,使得越來越多的研究者致力于將CUDA應(yīng)用于電力系統(tǒng)潮流計算中。文獻(xiàn)[1]主要是基于CUDA平臺通過對高斯消去法求解線性方程組并行化實現(xiàn)潮流計算的并行。文獻(xiàn)[2]利用GMRES (m)算法求解潮流計算中的線性方程組,并將該算法基于CUDA移植到GPU上執(zhí)行。文獻(xiàn)[3]研究了基于雙共軛梯度法實現(xiàn)牛頓.拉夫遜法潮流算法的并行化。
本文嘗試基于GPU針對大規(guī)模電網(wǎng)提出一種新的迭代法求解線性方程組的預(yù)處理方案,進(jìn)而大幅度提升大規(guī)模電網(wǎng)潮流求解的計算性能。
1 潮流計算的可并行性
所謂并行計算是一種可同時執(zhí)行多個指令的算法,目的是通過提高計算速度或擴大問題求解規(guī)模,解決大型而復(fù)雜的計算問題。采用并行技術(shù)解決的問題必須具有以下兩個特點:
(1)對這些數(shù)據(jù)要執(zhí)行的指令基本相同;
(2)各個數(shù)據(jù)之間基本相互獨立,互不依賴。
1.1 各步驟可并行性分析
(1)形成節(jié)點導(dǎo)納矩陣的并行性:根據(jù)支路信息(包括開始節(jié)點編號、終止節(jié)點編號、支路等效導(dǎo)納)計算節(jié)點導(dǎo)納矩陣,即所謂支路追加法,各個支路對導(dǎo)納矩陣的貢獻(xiàn)相互獨立,互不干擾。并且對每個支路的處理指令是一致的,符合上述的并行計算原則。
(2)形成雅可比矩陣的并行性:在潮流計算中雅可比矩陣中各個元素的形成之間是相互獨立、互不干擾的。并且對于雅可比矩陣中各子矩陣上的元素除對角元素外,其余元素計算公式是一致的。即處理該數(shù)據(jù)所執(zhí)行的指令是相同的。于是符合并行計算的兩個特點,故形成雅可比矩陣的過程可以采用并行技術(shù)實現(xiàn)。
(3)求解修正方程組的并行性:在潮流計算過程中求解修正方程組,通常采用的是直接法和迭代法。文獻(xiàn)[4]對潮流計算中修正方程組求解的迭代法和直接法進(jìn)行了比較,結(jié)果表明,對于大規(guī)模電網(wǎng)(幾百個節(jié)點以上),采用適當(dāng)?shù)念A(yù)處理的迭代法計算速度優(yōu)于直接法。不僅如此,利用迭代法求解稀疏線性方程組時,會出現(xiàn)大量相對易于并行化的矩陣向量運算。
1.2 潮流計算各步驟的耗時
上一小節(jié)分析了潮流程序中有三個步驟是可并行的,然而采用并行技術(shù)需要將計算任務(wù)映射到并行機中,中間的數(shù)據(jù)傳輸會帶來一定的延時。如果上述的三個步驟在采用串行技術(shù)時,已經(jīng)耗時較少,采用并行技術(shù)將得不償失。
通過InterPSS平臺,對不同大小電網(wǎng)進(jìn)行潮流計算,分析以上三個可并行步驟的串行計算耗時。結(jié)果表明形成節(jié)點導(dǎo)納矩陣和雅可比矩陣在串行計算中耗時很短,并且占整個潮流程序總耗時的比例很小,故不考慮將這兩個步驟并行。另一方面,隨著電網(wǎng)規(guī)模的增大,求解修正方程組在整個算法耗時所占比重越來越大。這與并行對規(guī)模越大的數(shù)據(jù)加速效果越顯著不謀而合,于是對潮流程序進(jìn)行加速就可以鎖定為對求解線性方程組過程進(jìn)行加速。
2 基于GPU的修正方程組求解
2.1 修正方程組求解算法及預(yù)處理技術(shù)
Bi-CGSTAB本質(zhì)上是Bi-CG和反復(fù)使用GMRES(1)的結(jié)合,利用遞歸的方法逐步減小殘量,因此占用的內(nèi)存小,被證明是一種處理稀疏矩陣為非對稱實矩陣的線性方程十分有效的算法。所以可以采用該算法實現(xiàn)潮流計算中的修正方程組的求解。
然而利用Bi-CGSTAB算法求解潮流中的修正方程組時,系數(shù)矩陣(雅可比矩陣)隨著網(wǎng)絡(luò)規(guī)模的變大會出現(xiàn)病態(tài),亦即條件數(shù)會漸漸變大,迭代收斂性很差。為了提高迭代法的收斂性,需要對修正方程組進(jìn)行適當(dāng)?shù)淖儞Q,此過程即為預(yù)處理過程。
目前常用的預(yù)處理方法有不完全分解法(ILU)、PQ分解法、稀疏近似逆法和基于雅可比矩陣逆的預(yù)處理方法??紤]到潮流計算過程中的兩個特點:
(1)雅可比矩陣在潮流程序整個迭代過程中不會大幅度變化;
(2)迭代法求解修正方程組的最大迭代次數(shù)都是在第一次外迭代時發(fā)生的,于是采用基于雅可比矩陣逆的預(yù)處理方法。
2.2 基于GPU的修正方程組求解
在帶預(yù)處理的Bi-CGSTAB算法中涉及到大量的向量相加、向量內(nèi)積、向量與稠密矩陣相乘、向量與稀疏矩陣相乘等運算?;贕PU實現(xiàn)Bi-CGSTAB算法并行化,主要就是根據(jù)GPU的硬件結(jié)構(gòu)確定合理的并行化方式完成以上四種運算。
3 算例及分析
為了驗證本文所提出的實現(xiàn)InterPSS中潮流并行化拓展的方法的實際效果,本節(jié)對不同規(guī)模的電網(wǎng)進(jìn)行測試。
在計算過程中Bi-CGSTAB算法的迭代誤差取l0-10,最大迭代次數(shù)取5000;牛頓法的迭代誤差取l0-20,其并行性能的一些指標(biāo)如表1所示。
從表1可以看出采用該方法在處理電網(wǎng)節(jié)點小于162左右時加速比小于1;在大于162節(jié)點的電網(wǎng)中,加速比大于1,且加速比隨著電網(wǎng)規(guī)模增大而增大。
4 結(jié)論
本文基于GPU實現(xiàn)了潮流計算的并行計算,并取得了理想的加速效果。電力系統(tǒng)仿真對計算能力的需求隨著電網(wǎng)規(guī)模的增大而越來越大。在電力系統(tǒng)的各種仿真中都會涉及到矢量矩陣運算,所以InterPSS中的其他電力系統(tǒng)仿真的矢量矩陣運算都可以采用本文提出的基于GPU的實現(xiàn)類來拓展,具有廣闊的推廣前景。
參考文獻(xiàn)
[1]夏俊峰,楊帆,李靜等,基于GPU的電力系統(tǒng)并行潮流計算的實現(xiàn)[J].電力系統(tǒng)保護(hù)與控制,2010, 38 (18):100-103.
[2] Xue-Xin Liu, Hai Wang, Tan,S.X.-D.Parallel Power Grid Analysis UsingPreconditioned GMRES Solver onCPU-GPU Platforms [J]. Computer-Aided Design (ICCAD), 2013 IEEE/ACM International Conferenceon,Page (s): 561-568.
[3] Garcia N.Parallel Power FlowSolutions Using a Bi-ConjugateGradient Algorithm and a NewtonMethod:a GPU-based approach, "2010IEEE Power & Energy Society GeneralMeet ing,2010.
[4]吳建平,王正華,李曉梅.稀疏線性方程組的高效求解與并行計算[M].長沙:湖南科學(xué)技術(shù)出版社,2004 (05).
[5]李曉梅,吳建平.Krylov子空間方法及其并行計算[J].計算機科學(xué),2005, 32 (01):19-20, 40.
[6]Mori H,Tanako H, Kanno J.APreconditioned Fast DecoupledPowerflow Method for ContingencyScreening [J]. IEEE Trans on PowerSystems,1996,11(01): 357-363.
[7]汪芳宗,何一帆,葉婧,基于稀疏近似逆預(yù)處理的牛頓一廣義極小殘余潮流計算方法[J].電網(wǎng)技術(shù),2008, 32 (17): 50-53.