首页/文章/ 详情

PCG预共轭梯度法的加速策略

2年前浏览1192

        对于大规模稀疏矩阵,由于采用Krylov系列的迭代法(CG,Bicgstab及Gmres等)整个求解过程基本上只涉及矩阵与向量乘法,向量点积等运算,因此采用CSC,CSR等稀疏矩阵的存储格式十分方便,在存储后基本上只需要对CSR定义矩阵和向量的乘法运算及向量的点积,就可以很方便地完成整个计算过程。

        以CSR存储格式为例,矩阵向量乘法算法如下:

      

        而CG迭代法的具体算法如下:

        

        由于A中的非0元素通常远超向量r的元素,因此实际上整个过程大量运算集中在Apj这一步。如果能够将这一步的计算效率提高,通常整个算法求解速度也会有较大提高。实际上,MKL的Blas库提供了CSR稀疏矩阵与向量的高效并行乘法运算,因此在实际进行Krylov迭代方法的编程时,这一步可通过调用Blas库完成:

     mkl_cspblas_dcsrgemv(&transa, &m, Ax, ia, ja, x, y);

        经过上述处理,5w未知数的求解时间从原来的66s减少为36s。

                                                 【完】



来源:有限元术
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-08
最近编辑:2年前
寒江雪_123
硕士 | cae工程师 签名征集中
获赞 49粉丝 106文章 56课程 9
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈