[发明专利]针对电路仿真的自适应并行LU分解方法有效
申请号: | 201110337789.6 | 申请日: | 2011-10-31 |
公开(公告)号: | CN102426619A | 公开(公告)日: | 2012-04-25 |
发明(设计)人: | 陈晓明;汪玉;杨华中 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 楼艮基 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 电路 仿真 自适应 并行 lu 分解 方法 | ||
技术领域
本发明涉及一种针对电路仿真的自适应并行LU分解方法,属于电子设计自动化(EDA)技术领域。
背景技术
在电路仿真中,求解线性方程组Ax=b是一个非常耗费时间的步骤,因为这一步在电路仿真的牛顿——拉夫森迭代和瞬态迭代中会重复执行很多次;而且随着集成电路的规模跟随摩尔定律发展,使得电路仿真所建立的矩阵A的阶数达到万以上的量级,在后仿真中可以达到几百万甚至上千万量级。这使得求解Ax=b变得异常耗时。目前正常规模的AD、PLL等电路进行后仿真通常需要几天到几个月的时间。因此,如何加速Ax=b的求解成为电路仿真中一个迫切的问题。
线性方程组Ax=b的求解方法主要可分为两大类:迭代法和直接法。迭代法如雅可比迭代法、高斯——赛德尔迭代法、超松驰迭代法等。迭代法通常对矩阵A的要求较高,在一般的计算问题中可能难以满足。相比于迭代法,直接法的适用性更强,稳定性更好。因此直接法在各类科学计算中用得更为普遍。传统的直接法如高斯消元法、LU分解法(也称为三角分解法)、乔里斯基分解法等。在各类直接解法中,运用最多的是LU分解法。LU分解法指的是将一个n×n的方矩阵A分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU,其中L和U是n×n的下三角和上三角矩阵。从而求解线性方程组Ax=b的问题转化成求解两个三角方程组Ly=b和Ux=y。图1显示了LU分解的基本形式,其中L和U未写数值的地方都是0。
在电路仿真中,通常电路矩阵中每行的非零元个数仅为5个左右,而且与矩阵规模无关。因此电路所建立的矩阵A是非常稀疏的。针对稀疏矩阵特别设计的求解算法,可以大大降低运算复杂度而减少运算时间。
一般而言,一个稀疏矩阵的完整LU分解包括三大步骤:预处理、LU分解、以及回代求解。其中,预处理指的是使用一定的方法对矩阵进行行列交换以达到在数值分解过程中减少运算量的目的。不管采用哪种预处理方法,预处理之后的矩阵只是对原矩阵进行了一些行、列的交换,而没有其他的变化。本发明并不局限于某种特定的预处理方法,对于所有预处理方法都能适用。LU分解即指的是将矩阵A分解成下三角矩阵L和上三角矩阵U的乘积。回代求解指的是求解两个三角方程组Ly=b和Ux=y。本发明主要针对这三步中的第二步,即LU分解。
针对稀疏矩阵的LU分解方法大致可分为向左看方法(Left-looking Algorithm)和向右看方法(Right-looking Algorithm)两大类,其中向左看方法由于对稀疏矩阵存储结构有着很好的适应性,在LU分解软件中得到的广泛的应用。目前加州大学伯克利分校(University of California,Berkeley)Sherry Li开发的SuperLU和弗罗里达大学(University of Florida)Tim Davis开发的KLU等软件的LU分解部分都是以向左看方法为基础,针对大规模稀疏矩阵特点进行了优化。
带有部分选主元的串行的向左看LU分解方法介绍如下,该方法的过程在[Davis2010]T.A.Davis and E.P.Natarajan,″Algorithm 907:KLU,a direct sparse solver for circuitsimulation problems″,ACM Trans.Math.Softw.,vol.37,pp.36:1-36:17,September2010中有详细描述。该方法的流程显示于图3中,从第1列到第n列,依次计算每一列(下文中都将以正在计算第k列为例说明),对于计算第k列,依次执行3个步骤:
(1)符号预测:符号预测在J.R.Gilbert,“Predicting structure in sparse matrixcomputations,”SIAM J.Matrix Anal.Appl.,vol.15,pp.62-79,January 1994中也有介绍,这一步的目的是预测第k列的L和U的符号结构,其中符号结构处于对角线上方的部分(即U)同时也指明了第k列数值积累(数值积累在下面介绍)时会用到哪些列的数值积累结果,具体而言,第k列数值积累如果要用到第m列的数值积累结果,当且仅当U(m,k)≠0(U(m,k)表示U矩阵第m行第k列的值,m<k),称第k列数值积累时要用到第m列的数值积累结果为第k列“依赖于”第m列;
符号预测的方法通过如下4个小步骤完成:
①取A矩阵的第k列中的所有非零元所在行的行号为集合B;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110337789.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数字图像秘密分享及恢复方法
- 下一篇:一种适用于旋翼无人机的地面控制系统