[发明专利]一种基于PETSc的GCRO-DR算法并行处理方法有效
申请号: | 201410427589.3 | 申请日: | 2014-08-27 |
公开(公告)号: | CN104182209A | 公开(公告)日: | 2014-12-03 |
发明(设计)人: | 刘芳芳;杨超 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;孟卜娟 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于PETSc的GCRO-DR算法并行处理方法,(1)并行进行m步Arnoldi迭代,生成子空间Vm+1和hessenberg矩阵(2)串行求解最小二乘问题特征值问题和Reduced QR分解;(3)开始进行迭代,并行进行m-k步Arnoldi过程;(4)并行求解(5)串行求解最小二乘问题和Reduced QR分解;(6)进行下一个迭代步,直至收敛;(7)当求解第二个及以后的系统时,先并行更新回收矩阵Ck和Uk,然后开始迭代,直至收敛。本发明提出的并行实现方法通过调用PETSc库能实现多个节点协同计算,进而可以提高GCRO-DR算法的整体性能。 | ||
搜索关键词: | 一种 基于 petsc gcro dr 算法 并行 处理 方法 | ||
【主权项】:
一种基于PETSc的GCRO‑DR算法并行处理方法,所述方法主要用于并行求解稀疏线性系统,其特征在于包括如下步骤:(1)求解第一个稀疏线性系统时,设重启(restart)步数为m,回收(recylen)步数为k,先并行进行m步Arnoldi迭代,生成子空间Vm+1和hessenberg矩阵(2)通过将hessenberg矩阵转换成上三角矩阵来求解最小二乘问题的解,其中min表示求解最小值,y为最小二乘解,c为初始残量的2范数与单位向量e1的乘积,该步骤在每个处理器分别进行求解,最后每个处理器都存储了一份y;(3)利用步骤(2)求解得到的y,并行计算线性系统的解x,并利用公式计算残量r的值,其中r为残量;(4)利用国际开源线性代数软件包LAPACK中函数dgeev,求解的特征值和特征向量,并利用recylen个相应于最小特征值的特征向量形成Pk,该步在每个处理器上分别进行求解,最后每个处理器均存储一份Pk;(5)利用步骤(4)得到的Pk,采用PETSc函数多向量更新VecMAXPY计算回收矩阵利用国际开源稠密矩阵计算软件包BLAS函数dgemm计算此时,每个处理器可分别计算Reduced QR分解,并更新回收矩阵Ck和Uk;(6)开始进行迭代,当时残量的2范数小于设定好的阀值时,一直进行迭代,每次先进行m‑k步Arnoldi过程,生成子空间以及生成Bk时,可重复利用Arnoldi过程中稀疏矩阵向量乘的结果,这样减少整个算法稀疏矩阵向量乘次数,进而优化性能;(7)通过PETSc函数向量拷贝VecCopy、向量扩展VecScale、向量范数VecNorm得到(8)求解的解时,其中min表示求解最小值,W和G是子空间矩阵,r是残量,y是最小二乘解,先按照步骤(2)中类似的方式求解ym‑k,然后采用公式计算yk,并组成整体的y,通过上述过程中得到的残量2范数来验证收敛条件;该步骤在每个处理器分别进行;(9)当求解第二个及以后的稀疏线性系统时,先采用修正的Gram‑Schmidt算法由各个处理器协同计算Reduced QR分解,然后进行Ck和Uk的更新,然后进行上述(6)‑(9)步,直至收敛。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所;,未经中国科学院软件研究所;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410427589.3/,转载请声明来源钻瓜专利网。