一种实现GMRES算法的方法和系统技术方案

技术编号:12294877 阅读:56 留言:0更新日期:2015-11-11 06:56
本发明专利技术公开了一种实现广义极小残量法(GMRES)的方法和系统,包括:主CPU控制主进程将线性方程组的系数矩阵和右端向量进行划分得到系数矩阵块和右端向量块;主CPU控制主进程将划分得到的系数矩阵块和右端向量块分配给自身的各进程和其他CPU的各进程;各CPU协同控制的各进程对应的MIC根据分配的系数矩阵块和右端向量块,采用GMRES算法进行求解获得线性方程组的解。通过本发明专利技术的方案,采用CPU集群控制多个MIC的方法来并行实现GMRES算法,提高了运算速度。

【技术实现步骤摘要】

本专利技术涉及数据处理技术,尤指一种实现广义极小残量法(GMRES,Generalized Minimal Residual)算法的方法和系统。
技术介绍
众所周知,数学物理模型的求解是众多工程生产与科研领域必不可少的工作之 一。随着计算机的发展,有限差分(FD,Finite Difference)、有限元方法(FEM,Finite Element Method)、边界元法(BEM,Boundary Element Method)、无网格方法(MM,Meshless Method)等一系列的数值计算方法相继诞生。特别是FEM,到目前为止理论体系已经比较完 善,并已在机械制造、材料加工、科学研究等各个领域中广泛应用,成为工程设计中的重要 工具。这些数值计算方法具有一个相同之处:将实际问题导出的数学物理模型通过特定的 方式离散成一个线性代数方程组。除此之外,结构分析、网络分析、天地测量、数据及最优化 问题等都常遇到线性方程组的求解问题。因此,可以毫不夸张的讲大部分科学与工程问题 都要归结为一个线性方程组的求解问题。然而,随着问题规模的增大,线性方程组的求解成 为工程生产和科研中的一大瓶颈。对于大规模乃至超大规模的线性方程组,求解变得十分 困难。特别当稀疏矩阵非对称且无特定结构时,求解几乎不可能完成。 GMRES是求解非对称的稀疏矩阵的常用方法,也是克雷洛夫(Krylov)子空间中 经典算法之一,它是通过Krylov子空间矢量的最小残量来迭代求解,收敛速度快,稳定性 好的优点。对线性方程组Ax = b ;其中,A为系数矩阵,b为右端向量,GMRES算法的m阶 Krylov 子空间为 Km= span (r。,Ar。,…,Am 1A),其中,r。= b-Ax Q,x。为 X 的初始向量,GMRES 通过求解使残量Axm-b最小的矢量xme Km来逼近Ax = b的精确解。 采用GMRES算法求解大规模线性方程组的基本过程大致包括: 初始化向量X得到X。,设置误差ε ; 按照公式r。= b-Ax。计算r。,按照公式β = I IrtiI |2计算β ;其中,I I I I 2为2范 数。 根据r。和A采用阿诺尔迪(Arnoldi)正交化过程计算标准正交基和上海森 伯格(Hessenberg)矩阵万,,, 求解yni使得:达到最小;其中,e1= (1,0,…,0); 按照公式Xm= X' 〇+Vmym计算xm;其中,X'。为上一次计算得到的Xm,第一次计算时取 X。,按照公式rm= b-Ax m计算r m,当I I rm I 12< ε时,xm即为Ax = b的解,当I I r m I 12彡ε 时,根据!^和A采用Arnoldi正交化过程得到新的标准正交基和新的上Hessenberg矩阵, 并继续后续过程。 现有的实现GMRES算法的方法大致包括:采用CPU来实现GMRES算法。 现有的实现GMRES算法的方法中,由于GMRES算法的运算量比较大,而CPU运算能 力有限,因此,运算速度比较慢。
技术实现思路
为了解决上述问题,本专利技术提出了一种实现GMRES算法的方法和系统,能够提高 运算速度。 为了达到上述目的,本专利技术提出了一种实现GMRES算法的方法,包括: 主CPU控制主进程将线性方程组的系数矩阵和右端向量进行划分得到系数矩阵 块和右端向量块; 主CPU控制主进程将划分得到的系数矩阵块和右端向量块分配给自身的各进程 和其他CPU的各进程; 各CPU协同控制的各进程对应的众核协处理器MIC根据分配的系数矩阵块和右端 向量块,采用GMRES算法进行求解获得线性方程组的解。 优选地,所述主CPU控制主进程将线性方程组的系数矩阵和右端向量进行划分得 到系数矩阵块和右端向量块包括: 所述主CPU控制所述主进程将所述线性方程组的系数矩阵和所述右端向量进行 按行划分得到所述系数矩阵块和所述右端向量块。 优选地,所述各CPU协同控制的各进程对应的MIC根据分配的系数矩阵块和右端 向量块,采用GMRES算法进行求解获得线性方程组的解包括: 各所述CPU控制各所述进程初始化所述线性方程的解,并设置误差; 各所述CPU控制各所述进程对应的MIC按照公式P。= b' -A' X。计算^ 。;其 中,b'为所述分配的右端向量块,A'为所述分配的系数矩阵块,X。为所述初始化的线性方 程组的解; 各所述CPU协同控制的各所述进程对应的MIC根据所述分配的系数矩阵块和 r'。,采用阿诺尔迪Arnoldi正交化过程计算标准正交基块和上海森伯格Hessenberg矩阵 块; 各所述CPU控制各所述进程对应的MIC按照公式β '= I Ir'。| |2计算β ',并 将计算得到的β '发送给所述主CPU进行整合得到β ; 各所述CPU根据所述标准正交基块和所述上Hessenberg矩阵块求解ym使得 I决1 -达到最小;其中,.馬为所述上Hessenberg矩阵块; 各所述CPU控制各所述进程对应的MIC按照公式X' m= X "mym计算X' m,将 计算得到的x'm发送给所述主CPU进行整合得到Xni;其中,x"。为上一次计算得到的x' ", t "为所述标准正交基块; 所述主CPU将所述Xni发送给自身的其他进程和其他CPU的各进程; 各所述CPU控制各进程按照公式r' m= b' -A' X m计算P m,并计算I I r'm | 12,将计 算得到的I Ir'」I2发送给所述主(PU进行整合计算得到I IrnJ |2; 所述主CPU判断出I IrnJ |2< ε,确定Xni为所述线性方程组的解;其中,ε为设置 的误差。 优选地,当所述主CPU判断出I IrlJ |2彡ε时,所述各CPU协同控制的各进程对应 的MIC根据分配的系数矩阵块和右端向量块,采用GMRES算法进行求解获得线性方程组的 解还包括: 各所述CPU协同控制的各所述进程对应的MIC根据所述分配的系数矩阵块和 r' m,继续执行采用Arnoldi正交化过程计算标准正交基和上海森伯格Hessenberg矩阵的 步骤。 优选地,所述各CPU协同控制的各进程对应的MIC根据分配的系数矩阵块和r'。, 采用Arnoldi正交化过程计算标准正交基块和上Hessenberg矩阵块包括: 各所述CPU控制各进程对应的MIC计算所述Arnoldi正交化过程中的高阶矩阵向 量相乘、高阶向量相减、高阶向量内积和高阶向量乘积,并将计算结果返回给所述主CPU进 行整合,或进行低阶矩阵向量相乘、低阶向量相减、低阶向量内积和低阶向量乘积、或其他 低阶运算。 本专利技术还提出了一种实现GMRES算法的系统,至少包括: 一个主CPU和一个或一个以上其他CPU,一个或一个以上众核协处理器MIC ; 其中,主CPU用于: 控制主进程将线性方程组的系数矩阵和右端向量进行划分得到系数矩阵块和右 端向量块;控制主进程将划分得到的系数矩阵块和右端向量块分配给自身的各进程和其他 CHJ的各进程; 主CPU和其他CPU用于: 协同控制的各进程对应的众核协处理器MIC根据分配的系数矩阵块和右端向量 块,采用GMRES算法进行求解获得线性方程组的解。 优选地,所述主CPU和其他CPU具体用本文档来自技高网
...

【技术保护点】
一种实现广义极小残量法GMRES算法的方法,其特征在于,包括:主CPU控制主进程将线性方程组的系数矩阵和右端向量进行划分得到系数矩阵块和右端向量块;主CPU控制主进程将划分得到的系数矩阵块和右端向量块分配给自身的各进程和其他CPU的各进程;各CPU协同控制的各进程对应的众核协处理器MIC根据分配的系数矩阵块和右端向量块,采用GMRES算法进行求解获得线性方程组的解。

【技术特征摘要】

【专利技术属性】
技术研发人员:王明清张清张广勇吴韶华
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1