求解大型稀疏矩阵方程组的SPIKE算法

秦芳芳 ,  左沐雨 ,  季一木

中北大学学报(自然科学版) ›› 2025, Vol. 46 ›› Issue (05) : 661 -666.

PDF (462KB)
中北大学学报(自然科学版) ›› 2025, Vol. 46 ›› Issue (05) : 661 -666. DOI: 10.62756/jnuc.issn.1673-3193.2023.07.0004
应用基础研究

求解大型稀疏矩阵方程组的SPIKE算法

作者信息 +

The SPIKE Algorithm for Solving Large Sparse Matrix Equations

Author information +
文章历史 +
PDF (472K)

摘要

不同于传统的LU分解算法和QR分解算法,本文研究了一种新的基于DS矩阵分解的递归SPIKE算法。SPIKE算法采用了一种新颖的分解方法来平衡通信和算法开销,相比其他方法在现代并行架构上有更好的延展性。首先,从系数矩阵的分块、DS分解、简化系数矩阵方程组的提取和求解四方面介绍了递归SPIKE算法的工作原理。然后,首次将其应用到具体的系数矩阵规模不同的线性方程组中,并与LU分解算法与QR分解算法进行了比较。三组数值实验分别给出了各个求解算法的结果和运行时间。实验结果表明,递归SPIKE算法不仅能够求解得到准确结果,而且求解速度更快。数值案例表明,递归SPIKE算法所需的计算时间约为LU算法的40%,约为QR分解算法的8%。

Abstract

A recursive SPIKE algorithm was presented based on DS matrix decomposition, which was very different from LU decomposition algorithm and QR decomposition algorithm. The SPIKE algorithm used a novel decomposition method to balance communication overhead with arithmetic cost to achieve better scalability than other methods on modern parallel architectures. Firstly, the basic operating principle of a recursive SPIKE algorithm was introduced by four aspects: partitioning coefficient matrix, DS decomposition, extraction and solution of simplified coefficient matrix equations. The SPIKE algorithm was applied to specific linear equations with different coefficient matrix for the first time. Three sets of numerical experiments gave the results and running time of each solution algorithm. The experimental results show that the recursive SPIKE algorithm can not only obtain accurate results, but also has a faster solution speed.Experiments indicate the computing time of the proposed algorithms is about 40 percent of LU decomposition algorithm, and about 8 percent of QR decomposition algorithm.

关键词

一般带状矩阵 / 三对角矩阵 / DS矩阵分解 / 递归SPIKE算法

Key words

general banded matrix / tridiagonal matrix / DS matrix decomposition / recursive SPIKE algorithm

引用本文

引用格式 ▾
秦芳芳,左沐雨,季一木. 求解大型稀疏矩阵方程组的SPIKE算法[J]. 中北大学学报(自然科学版), 2025, 46(05): 661-666 DOI:10.62756/jnuc.issn.1673-3193.2023.07.0004

登录浏览全文

4963

注册一个新账户 忘记密码

0 引 言

偏微分方程在实际工程应用中起着至关重要的作用,它经常出现在计算机科学和工程等领域,如有限元分析1、计算力学(流体、结构和流体结构的相互作用)26、计算纳米电子学7、计算机视觉8。然而,对于偏微分方程,很难求得其解析解,于是人们转而求解其数值近似解。通常通过离散化方法将大型稀疏矩阵化为系数矩阵的线性方程组来求解。大型稀疏矩阵大多为带宽较窄的大型带状矩阵。带状矩阵是指一个矩阵中只有对角线附近的元素可以是非零的,而其他位置的元素均为零。这种矩阵结构的特点是它拥有较少的非零元素,因此储存和计算时占用的资源较少,这使得它在实际问题的求解中具有很大优势。虽然求解带状矩阵线性方程组所需的储存和计算量相比一般的矩阵线性方程组要小,但是在解带状矩阵线性方程组时,当前主流的直接求解方法,如LU分解算法9和QR分解算法10,由于要处理大量的零元素,效率往往较低。因此,如何高效快速准确地求解带状矩阵线性方程组是一个重要的研究课题。

本文主要探究一种新的基于DS矩阵分解的求解大型带状矩阵线性方程组的递归SPIKE算法1115的性能。2001年,基于DS矩阵分解的递归SPIKE算法问世,该算法通过对系数矩阵的分块形式进行简化分解来降低计算复杂度。2008年,递归SPIKE算法引入随机的DS矩阵分解来增加算法的随机性,从而进一步提高算法的计算速度。2020年,Braegan S.Spring突破了递归SPIKE算法求解大型带状矩阵线性方程组时系数矩阵阶数为2n的限制,使其能够求解更为一般的大型带状矩阵线性方程组11。本文首次将递归SPIKE算法运用于具体的数值算例,并与当前主流的直接算法LU分解算法和QR分解算法进行比较,以此来检验基于DS矩阵分解的递归SPIKE算法的优越性,即递归SPIKE算法相比LU分解和QR分解在求解的准确性和速度上的优越性能。本文研究可以为国产化服务器的高性能计算提供更优的求解大型带状线性系统的工具。

1 递归SPIKE算法

递归SPIKE算法最早可以追溯到20世纪70年代,其首先应用于求解三对角矩阵线性方程组,后来扩展到处理带状矩阵线性方程组。一般带状矩阵可以经过一定的分块看成块状三对角矩阵,因此,递归SPIKE算法可以被看作一种求解块状三对角矩阵的区域分解算法。递归SPIKE算法的核心思想与传统的LU分解算法的思想不同,引入了一种新的DS分解算法,通过这样的矩阵分解方式,能够有效降低计算的复杂度。

1.1 系数矩阵的分块

求解Ax=b,其中矩阵A是一个n=2m(mN+)阶的带状矩阵。一些带宽较窄的n阶带状矩阵都可以划分为块状三对角矩阵。假定划分对角线上对角块的数量为p,那么每个带状对角块Aj(j=1,,p)的阶数为nj(或者大致为n/p)。对于已经划定好的分区,Bj(j=1,,p-1)Cj(j=2,,p)是与对角线上对角块相耦合的次对角线上的块状矩阵,具体为

A=A1B1C2A2Bp-1CpAp,

式中:BjCj的阶数均为nj×kk=矩阵的带宽数-12,且矩阵BjCj包含着大量的零元素,具体为

Bj=00B¯j0,Cj=0C¯j00,

式中:B¯jC¯jk阶矩阵。

1.2 系数矩阵的DS分解

基于以上的分块形式,接下来我们将对系数矩阵 进行DS分解,且具体分解形式为

A=DS=D1D2Dp I1V1W2I2Vp-1WpIp,

式中:Ij表示一个矩阵阶数为nj的单位矩阵且DjAj,而VjWj的非零元素所在的列形成了大小为nj×k(又称尖峰)的高而窄的子矩阵。由上述DS分解的矩阵乘法可以得到VjWj的表达式

Vj=(Aj)-1Bj, Wj=(Aj)-1Cj

VjWj可以通过求解矩阵方程(4)得到。

AjVjWj=0C˙j00B˙j0

1.3 简化系数矩阵方程组的提取

复杂矩阵线性方程组的求解经过前面的分解后缩减到两个步骤,即DG=bSx=G

求解DG=b中的线性方程组所得向量G将作为求解Sx=G的线性方程组的右端向量。在求解DG=b的线性方程组时,利用矩阵D的特殊对角块形式,将线性方程组DG=b化为p个阶数较小的系数矩阵线性方程组来求解,这将在很大程度上降低计算的复杂度。如果将DS分解阶段和简化线性方程组求解阶段分离,则求解DG=b的过程可以与分解过程中的尖峰矩阵VjWj的生成相结合。

将求解线性方程组Sx=G进一步化简为求解一个系数矩阵阶数更小的线性方程组

S^x^=G^,

式中:S^由矩阵S每个分块的正上方和正下方的k行组成。实际上,尖峰矩阵VjWj也可以划分为

Vj=Vj(t)Vj'Vj(b), Wj=Wj(t)Wj'Wj(b),

式中:Vj(t)Vj'Vj(b)Wj(t)Wj'Wj(b)VjWj的顶部k行、中间nj-2k和底部k行。这里,

Vj(b)=0IkVj, Wj(t)=Ik0Wj,

Vj(t)=Ik0Vj, Wj(b)=0IkWj,

类似地,如果xjGj是列向量xG的第j个分区,有

xj=xj(t)xj'xj(b), Gj=Gj(t)Gj'Gj(b)

Sx=G中提取出简化的线性方程组(5),该线性方程组仅包含VjWjxjGj顶部和底部k行。这个简化的线性方程组的系数矩阵S^包含p-1个对角线对角块,其第i个对角块表示为

IkVi(b)Wi+1(t)Ik,

相应的次对角块表示为

Wi(b)000 , 000Vi+1(t),

该缩减线性方程组中的解向量块和右端向量块表示为

xi(b)xi+1(t) , Gi(b)Gi+1(t)

如果已经求解出缩减线性方程组(5),得到原线性方程组的部分解,就可以快速检索获得原线性方程组的全局解,具体求解方程为

x1'=G1'-V1'x2(t),xj'=Gj'-Vj'xj+1(t)-Wj'xj-1(b), j=2,,p-1,xp'=Gp'-Wp'xp-1b

1.4 简化系数矩阵方程组的求解

并行求解简化系数矩阵方程组(5)的一种自然方法是Krylov子空间迭代法16。然而对于系数矩阵为非对角占优矩阵的线性方程组,该处理方法对大量的分块矩阵无效。因此,为了实现较小的相对残差,需要进行大量的外部迭代,这反过来又会导致计算复杂度的增加。此外,如果简化的线性方程组的系数矩阵阶数较大,那么这种方案可能因内存限制而无法实现。为此,一种新的求解简化线性方程组的直接递归方法被提出,这种递归方案涉及SPIKE算法的连续迭代,能够有效降低算法的计算复杂度。

如果简化线性方程组(5)的系数矩阵只有两个分块,即p=2,那么,只由一个对角块组成的系数矩阵简化线性方程组就可以直接求解,其线性方程组表示为

IkV1(b)W2(t)Ikx1(b)x2(t)=G1(b)G2(t)

具体求解步骤:首先计算E=Ik-W2(t)V1(b),然后通过Ex2(t)=G2(t)-W2tG1b来获取x2(t),最后计算x1(b)=G1(b)-V1bx2t

x1x2其余部分的解可以通过式(11)来获得。

下面讨论系数矩阵的多分块情况,假设分块数量p=2d,经过分解后形成SPIKE矩阵S,新缩减线性方程组的分区数为2的倍数,并且可以利用另一个级别的SPIKE算法。这个过程被递归地重复执行,直到最新的矩阵S只有两个分区,由此得到的简化线性方程组的形式如式(12)

在实际应用中,递归方案与整体矩阵S无关,而是与简化线性方程组(5)中的系数矩阵S^有关。这样能够简化执行SPIKE算法,减少内存占有量,同时保存所有不同的级别的尖峰矩阵(VjWj)。值得注意的是,在简化线性方程组(5)中,系数矩阵S^是块状三对角矩阵,对角块由式(8)给出,次对角块由式(9)给出。

如果将矩阵S中的第一个分区和最后一个分区的顶部k行和底部k行提取到简化线性方程组系数矩阵S^中,那么,矩阵S^的阶数为2kp,而不是2k(p-1),并且阶数为2kp的矩阵S^的结构仍然保持块状三对角的形式。在这种情况下,每个对角线上的对角块都是阶数为2k的单位矩阵,与第i个对角块相关联的次对角块为

0Wi(t)0Wi(b) (i=2,,p) , 
Vi(t)0Vi(b)0 i=1,,p-1

Vi[1]Wi[1]作为执行第一次递归的简化线性方程组的尖峰矩阵,其中,

Vi[1]=Vi(t)Vi(b) , Wi[1]=Wi(t)Wi(b)

p=4时,新的简化线性方程组的系数矩阵S˜1表示为

S˜1=IV1[1]W2[1]IV2[1]W3[1]IV3[1]W4[1]I

在进行SPIKE算法的第二次递归时,先将S˜1进行分块,每个分块的大小为4k,一共有p/2个对角块。然后对矩阵S˜1进行DS分解

S˜1=D1S˜2,

式中:D1由矩阵S˜1的对角线上对角块组成,每个块的阶数为4k。因此,S˜2是由尖峰矩阵Vi[2]Wi[2]组成。当p=4时,这些矩阵表示为

D1=I2kV1[1]W2[1]I2kI2kV3[1]W4[1]I2k

S˜2=I4kV1[2]W2[2]I4k

总的来说,在第j次递归的过程中,尖峰矩阵Vi[j]Wi[j]i=1~p/2j)的阶数为2jk×k。因此,如果原始矩阵的分区数为p=2d,则需要进行递归操作的次数为d-1,且矩阵S˜1的分解形式为

S˜1=D1D2Dd-1S˜d,

式中:矩阵S˜d仅含有两个尖峰矩阵V1[d]W2[d]

简化的线性矩阵方程组可以写成

S˜dx˜=B,

式中:B为修正的右端向量,具体表示为

B=Dd-1-1D2-1D1-1G˜

如果假设矩阵S˜j的尖峰块状矩阵Vi[j]Wi[j]i),在给定j的情况下,可以计算第j+1次递归的尖峰矩阵Vi[j+1]Wi[j+1]。第j次递归的尖峰矩阵的顶部和底部k行分别表示为

Vi'[j](b)=0IkVi[j] ,
Wi'[j](t)=Ik0Wi[j]

j+1次递归的尖峰矩阵的中间2k行可表示为

V˙i[j+1]V¨i[j+1]=0I2k0Vi[j+1],
W˙i[j+1]W¨i[j+1]=0I2k0Wi[j+1],

则可以形成简化的矩阵方程

IkV2i-1[j](b)W2i[j](t)IkV˙k[j+1]V¨k[j+1]=0V2i[j](t) , i=1,2,,p2i-1-1

IkV2i-1[j](b)W2i[j](t)IkW˙i[j+1]W¨i[j+1]=W2i-1[j](b)0 , 

i=2,3,,p2i-1

与线性方程组式(12)类似,可以利用求解式(12)的方法来获得j+1次递归的尖峰矩阵的中间2k行。然后检索获得第i+1次递归的全部尖峰矩阵

I2jk0Vi[j+1]=-V2i-1[j]V¨i[j+1] , 0I2jkVi[j+1]=V2i[j]-W2i[j]V˙i[j+1],

以及

I2jk0Wi[j+1]=W2i-1[j]-V2i-1[j]W¨i[j+1] , 0I2jkWi[j+1]=-W2ijW˙ii+1

接着,通过求解式(12)的方法来求解式(18)的解向量x˜。最后,通过式(11)检索获得整个解向量x

2 数值实验

对两组带宽相同阶数不同的带状矩阵线性方程组进行数值实验,以证明递归SPIKE算法不仅能够得到预期的结果,而且相比传统的LU分解算法和QR分解算法,能够在求解速度上更具优越性。

数值实验环境配置:设备为LAPTOP-R6HU69BR;处理器为AMD Ryzen 7 6800H with Radeon Graphics,3.20 GHz;机带RAM为16.0 GB;系统为基于x64处理器的64位操作系统;平台为matlab R2022a。

LU分解算法和QR分解算法使用matlab内置函数来求解,以便将递归SPIKE算法与最优化的LU分解算法和QR分解算法进行比较。

例 117带宽为3的带状矩阵线性方程组,对应系数矩阵和右端向量分别为

A=4214114124n×n,  b=6666n×1

利用递归SPIKE算法、LU分解算法和QR分解算法分别求解系数矩阵阶数n=4 096 ,8 192 ,16 384时的带状矩阵线性方程组,且3种算法都能求得准确的结果x=(1,1,,1)1×nT。3种算法求解运行的时间如表 1 所示。

例2 带宽为5的带状矩阵线性方程组,对应系数矩阵和右端向量分别为

A=355151151535n×n, b=414647474641n×1

利用递归SPIKE算法、LU分解算法和QR分解算法分别求解系数矩阵阶数n=4 096,8 192,16 384时的带状矩阵线性方程组,且3种算法都能求得准确的结果x=(1,1,,1)1×nT。3种算法求解运行的时间如表 2 所示。

从上面两组实验的结果可以看出,对带宽分别为3和5,矩阵阶数为4 096的带状矩阵线性方程组求解时,递归SPIKE算法的求解速度相比LU分解算法并没有很大优势,但是明显优于QR分解算法。当带状矩阵阶数变大时,即矩阵阶数为8 192和16 384时,SPIKE算法的求解速度远快于LU分解算法和QR分解算法。因此,对于求解实际工程问题中经常碰到的大型带状矩阵线性方程组,递归SPIKE算法优于传统的LU分解算法和QR分解算法。

3 结束语

与传统的矩阵分解方式不同,本文提出的递归SPIKE算法是一种基于新的DS矩阵分解方式的算法,该算法通过提取规模更小的简化线性方程组来进行求解,降低了算法的计算复杂度。数值实验结果表明,对于大型带状矩阵线性方程组的求解,递归SPIKE算法不仅能够取得良好的结果,而且求解速度更快。在后续工作中,将在SPIKE的处理细节方面进行进一步优化,以期得到更好的效果。

参考文献

[1]

FREYTAG MSHAPIRO VTSUKANOV I.Finite element analysis in situ[J].Finite Elements in Analysis and Design201147(9):957-972.

[2]

OISHI AYAGAWA G.Computational mechanics enhanced by deep learning[J].Computer Methods in Applied Mechanics and Engineering2017327: 327-351.

[3]

HERFF SNIEMÖLLER AMEINKE Met al.LES of a turbulent swirl flame using a mesh adaptive level-set method with dynamic load balancing[J].Computers & Fluids2021221:104900.

[4]

SHAKEEL M RMOKHEIMER E M A.Swirl flow in annular geometry with varying cross-section[J].Engineering Applications of Computational Fluid Mechanics202216(1):1154-1172.

[5]

ZEIDAN DBÄHR PFARBER Pet al.Numerical investigation of a mixture two-phase flow model in two-dimensional space[J].Computers & Fluids2019181:90-106.

[6]

董建伟,娄光谱.量子流体动力学等温模型的拟中性极限[J].中北大学学报(自然科学版)201233(2):102-106.

[7]

DONG JianweiLOU Guangpu.Quasineutral limit of isothermalk quantum hydrodynamic model[J].Journal of North University of China(Natural Science Edition)201233(2):102-106.(in Chinese)

[8]

POLIZZI EABDALLAH N B.Subband decomposition approach for the simulation of quantum electron transport in nanostructures[J].Journal of Computational Physics2004202:150-180.

[9]

杨彦利,苗长云,亢伉,.输送带跑偏故障的机器视觉检测技术[J].中北大学学报(自然科学版)201233(6):667-671.

[10]

YANG YanliMIAO ChangyunKANG Kanget al.Machine vision inspection technique for conveyor belt deviation[J].Journal of North University of China(Natural Science Edition)201233(6):667-671.(in Chinese)

[11]

BARTELS R HGOLUB G H.The simplex method of linear programming using LU decomposition[J].Communications of the ACM196912(5): 266-268.

[12]

SHARMA APALIWAL K KIMOTO Set al.Principal component analysis using QR decomposition[J].International Journal of Machine Learning and Cybernetics20134(6):679-683.

[13]

SPRING B SPOLIZZI ESAMEH A H.A feature-complete spike dense banded solver[J].ACM Transactions on Mathematical Software202046(4):1-35.

[14]

SPRING B S.Enhanced capabilities of the spike algorithm and a new spike-openMP solver[D].Amherst: University of Massachusetts Amherst,2014.

[15]

SAMEH A HPOLIZZI E.A parallel hybrid banded system solver:the SPIKE algorithm[J].Parallel Computing200632(2):177-194.

[16]

SPRING B SPOLIZZI ESAMEH A H.A feature complete spike banded algorithm and solver[DB/OL].(2018-11-08)[2023-07-06].

[17]

POLIZZI ESAMEH A H.SPIKE:A parallel environment for solving banded linear systems[J].Computers & Fluids200736(1):113-120.

[18]

STYKEL TSIMONCINI V.Krylov subspace methods for projected Lyapunov equations[J].Applied Numerical Mathematics201262(1):35-50.

[19]

冉瑞生.一些矩阵计算问题及其在图像识别中的应用研究[D].成都:电子科技大学,2006.

基金资助

国家自然科学基金资助项目(11801281)

江苏省博士后科研资助项目(2020Z380)

AI Summary AI Mindmap
PDF (462KB)

506

访问

0

被引

详细

导航
相关文章

AI思维导图

/