典型结构大型线性代数方程组的求解

文献综述
1 前言
典型结构大型线性代数方程组的求解是许多应用领域的基础,如:结构分析、电子工程、油藏模拟、计算机辅助几何设计、大气污染研究、化学工程和经济模型模拟、核物理和计算流体力学、数值天气预报等。在数学物理及工程技术领域,卡西族如微分方程的求解、多项式插值、网络、系统控制等方面也常会碰到的大型、分块三对角矩阵为系数阵的线性方程组的求解问题。一般,动态过程的数学模型由偏微分方程描述,而偏微分方程的离散化通常导出大型线性方程组,它们可能是对称或非对称的大型稀疏线性方程组,也可能是结构化的大型稀疏线性方程组。甚至于对于依赖于时间的非线性问题,其全局计算的中间步骤也需要对线性方程组的求解。长期以来,伴随着计算环境的不断变化,人们对于求解各类大型线性方程组的适应新的计算环境的新方法的探求从来也没有停止过。目前,分布式存储并行处理机系统己经成为许多科学和工程问题的计算环境,成为求解重大挑战性问题的首选工具;工作站机(NOWs)PC机作为具有良好性价比的分布式存储并行处理机系统已广泛应用于各类科学和工程计算问题。
典型结构大型线性方程组的解法从总体上说可分为直接法和迭代法两大类。求解具有结构化系数矩阵的大型线性方程组的研究近年主要集中在直接法,而迭代法近年来已发展为求解一般大型稀疏线性方程组的主要方法。
本文所研究的内容如下:
考虑大型线性方程组,其中为三对角或块三对角系数矩阵,探讨分布式存储环境下求解大型线性方程组的高效并行算法
在科学与工程问题中经常遇到的许多微分方程,经过适当差分或有限元离散而形成系数矩阵是块三对角的线性方程组,它们的求解是高性能并行计算的重要课题之一。目前针对求解块三对角线性方程组的并行算法的研究已经有了一些成果,通过对系数矩阵进行分解与近似处理,构造了具有良好的并行性的算法。借助现有的并行工具环境,进一步构造出了并行效率更高的并行求解算法。
2 研究现状
求解典型结构三对角线性代数方程组有多种方法,其解法总体可分为直接法和迭代法两大
类。迭代法(iterative methods[1,2]主要包括Jacobi迭代、央视新闻频道改版Gauss-Seidel迭代、逐次松弛迭代法(SOR),直接法包括高斯消元和几类并行算法。
迭代法
Jacobi迭代因各个分量的修正相互独立而具有十分明显的内在并行计算特性。其主要优点是方法简单,然而它并不常是收敛的,收敛时速度常较慢。在研究如何提高收敛速度的基础上,1983年,Missirlsi提出了并行Jacobi型方法,并讨论了它的收敛性。胡家赣等把它推广到两参数的情形,称之为两参数并行Jacobi型方法[3]
对于Gauss—Seidel迭代,因充分利用上次求出的新值,可加快收敛速度,正因为每次求值都要用到上次的新值,使它不容易并行。
对于SOR迭代法来说,由于各分量的计算是逐个相关的,因此,一般认为SOR迭代法不适合并行处理,其内在并行性远不如Jacobi迭代。由于SOR多用于有限差分或有限元方法导致的大型稀疏方程组的求解。因此,利用系数矩阵零元素或非零元素的特殊分布,采用红黑或多排序成为实现SOR并行处理的有效途径。然而,如何到合适的“彩模板”并保持自然排序下的收敛速度却是一个问题。蔡放等[4]SOR方法通过改造提出的向量化SOR算法,在一定条件下具有较好的并行化计算性能。后来,吕全义在文献[5]中对BSOR方法通过改进引入加速因子和松弛因子,使收敛速度相同,但降低了迭代次数。接着,崔喜宁[6]在此基础上,结合方法,将内迭代采用方法,使矩阵的分裂在一定程度上有大的改进,使算法更具灵活性,并行效率也很高。
以上几种基本迭代方法是进行并行迭代的基础,充分了解其并行再借鉴串行算法进行并行程序设计,在这些基础上研究新的算法并重新获得快速的收敛速度。肖曼玉和吕全义在文献[7]中,提出了一种基于Galerkin原理求解块三对角线性方程组的Arnoldi并行算法,通过选取适当的子空间,使算法只在相邻处理机间有通信,因而具有很好的并行性,而且证明了该算法的收敛性。在HPrx2600集上进行数值计算,结果表明,加速比呈线性增加,并行效率达到90%以上。
直接法
托马斯(Thomas)算法[8]是一种对于三对角线性方程组的特殊的高斯消元方法,也是求解三对角线性方程组首先想到的解法。force10Thomas算法的求解过程可以概括为两个步骤(removingbackward),首先从前往后依次消去对角线下方的非零元素;再反向回代解出的值,从后往前依次解出所有的未知变量。此算法也容易扩展到块三对角矩阵[9]的应用中。虽然托马斯算法是串行计算机上的最快算法,但由于后面的每一步都要依赖前一步的计算结果,它是不可并行的。
三对角线性方程组和块三对角线性方程组的并行算法,其研究始终非常活跃。总结以往算法,可将其归为以下几类:(1)循环递减算法(cyclic reduction),(2)递推倍增算法(recursive doubling),(3)矩阵分解算法(partition method)。虽然有Amodio[10]CR改进后用到超立方体结构机器,总体而言,递推倍增算法和循环递减算法(CR)是适应向量计算机或共享内存并行机的并行算法。Lambiotte and Voigt [1]提出了基于CDC STAR-100计算机的循环递减算法,按照这种算法,经过一次递减后,原来的线性方程组中的奇下标未知数都被消去了,而留下了所有偶下标的未知数变量,于是得到原有线性方程
组的一半规模的同结构三对角线性方程组[11]。对新得到的减半线性方程组重复采用循环递减算法,直到最后剩下只含两个未知数的线性方程组,并解出这两个未知数。后续步骤就是,回代解出的变量至其上一步递减的线性方程组,递归求解得到每个未知量的解值。如此,回代求解出整个三对角线性方程组的解值[12]。近年来,随着计算环境的发展,循环递减算法被许多人应用到GPU上实现[13,14]Stone[15,16]首次提出了递推倍增算法。在递推倍增算法中,涉及到系数矩阵的LU分解,以及顺向和逆向递推方法。Wang[17]提出的分裂法属于矩阵分解算法,适用于分布存储环境,受到关注,Michielsevan der Vorst[18]改进了Wang的分裂法。迟利华和李晓梅[19]Michielsevan der Vorst算法[18]的基础上,提出了双向并行分裂法(DPP算法)。另外,Bondeli[18]提出了一种基于分治思想的算法;Mu11erScheerer[21]1991年提出了一种将三对角方程组串行算法并行化的一般方法。
至于块三对角系统和带状系统方面,审核员Rodrigue[22]曾将奇偶约化法推广到带状系统的并行求解;Meier[23]Wang的划分算法[17]拓展到带状方程组;KapurBrown[24]提出了一种适用于可重构阵列计算机的块三对角线性方程组并行算法;van der Vorst[18]1987年基于不完全分解提出了一种向量并行机上求解大型三对角和块三对角方程组的方法;Rugg
iersGalligani[25]提出了一种基于迭代法和预条件子的块三对角方程组的并行解法。
对于循环块三对角线性方程组,文献[26]中讨论了适用于共享主存向量机的并行算法;胡庆丰、何新芳、李晓梅1791提出了以分块压缩存储形式直接求解的分块追赶法及其在向量机上的并行计算方案。Chung[27]给出了一种基于“分治”思想的并行算法,可用于分布存储计算环境。
Toeplitz系统在数学、数字信号处理和ARMA模型中均有广泛应用,Toeplitz三对角和Toeplitz循环三对角线性方程组的求解,是具有结构化系数矩阵的大型稀疏线性方程组求解中的重要课题。对于这类方程组,Evans提出了一种基于系数矩阵分解的快速算法[28],是目前求解这类方程组的最快的串行算法;Buckley给出了一种算法[29],它是由通常的高斯消去法改进而来的;关于Toeplitz循环三对角线性方程组,赵自春、李晓梅提出了一种适用于向量并行机的并行算法[30]。关于Toeplitz三对角线性方程组,赵自春、李晓梅提出了两种向量并行计算机上适用的并行算法[31]EvansYousif在文献[32]、文献[33]基础上提出了适用于共享存储多处理机的一种并行算法,它是循环奇偶约化法变化和改进而得的。成礼智和蒋增荣[34]对带状(块)Toeplitz方程组进行讨论,给出了向量机上的一个快速并行算法。
Poisson方程的求解,导致一类特殊的实对称块三对角线性方程组的求解,这一问题也曾受到广泛关注,它的串行算法和向量或共享共享存储计算机上的并行算法得到了充分的研究。Buzbee[35]讨论了求解这类方程组的直接解法:矩阵分解法(MD)和块循环递减法(BCR),以及结合MDBCRFACRl),Buzbee[35]在同一文献中还对MD方法和BCR方法应用于Poisson方程的情形进行了全面的讨论,涉及到基于FFTMD方法以及具有数值稳定性的Buneman算法[36]Sweet[37]推广Buneman的算法,提出了n为一般正整数时的循环递减法。Swarztrauber[38]提出了求解Poisson方程的近似循环递减(ACR)方法。在共享存储环境,上述方法都易于并行实现,文献[26]对基于FFTMD方法和Buneman算法的并行实现进行了讨论。
三角形矩阵是一种特殊结构的矩阵。高效率地并行求解三角形方程组具有非常重要的意义,这是因为系数矩阵A为一般稠密矩阵的大型线性方程组的各种直接解法大都基于化系数矩阵为三角形矩阵的思路来处理。分布式环境下求解三角形方程已有研究者进行过许多有益的探讨,如HeathRomine[39]Eisenstat[40]LiColeman[41,42]Fiebach[43]等。LiColeman海参圈1988年提出了一种求解系数矩阵以列(或行)卷帘方式分布时的三角形方程组并行解法[41]1989年他们又对算法进行了改进[42]Fiebach1996明光市教育局
年提出了一种适于网络拓扑为二维网格的分布存储多计算机系统上求解三角形方程组的循环块算法[43]
3 总结
许多计算问题都需要求解三对角线性方程组,这方面最为普通的例子当属椭圆型偏微分方程的差分格式求解了。三对角线性方程组的并行算法是数值并行算法研究中最重要的问题之一,其研究始终非常活跃。伴随着计算机体系结构的发展,人们不断地提出和改进了许多三对角线性方程组的并行算法,直接法中由Wang[17]提出的分裂法是贯彻分而治之原则的成功例子,受到广泛重视。Michielsevan der Vorst[18]改进了Wang的分裂法,减少了通信开销,提高了计算与通信的重叠程度。递推倍增算法(recursive doubling)和循环递减算法(cyclic reduction)同样是备受关注的典型并行方法,已经被多种并行计算技术实现。块(循环)三对角线性方程组的求解同样也是诸多应用问题的重要组成部分。例如,周期的样条插值就导致对角占优的循环三对角线性方程组的求解,当边界条件为周期边界条件时,一些偏微分方程的离散化也可能导致循环三对角线性方程组的求解。
4 参考文献
1. J. J. Lambiotte Jr., R. G. Voigt. The solution of tridiagonal linear systems on the CDC STAR-100 computer. ACM Trans. Math. Softw. 1, 308–329 (1975)

本文发布于:2024-09-21 20:27:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/75866.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:求解   算法   线性方程组   对角   并行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议