[发明专利]一种基于MPI的分布式共轭梯度法的调优计算方法有效
申请号: | 201110053792.5 | 申请日: | 2011-03-07 |
公开(公告)号: | CN102110079A | 公开(公告)日: | 2011-06-29 |
发明(设计)人: | 张纪林;徐向华;万健;蒋从锋;张伟;任永坚 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mpi 分布式 共轭 梯度 计算方法 | ||
技术领域
本发明涉及一种基于共轭梯度法的计算方法,尤其涉及一种基于MPI的分布式共轭梯度法的调优计算方法。
背景技术
传统的共轭梯度法演算计算方法为串行方法,该方法是共轭梯度法在计算机上的一种简单实现。共轭梯度法是求解特定线性系统的数值解的方法,其中的系数矩阵为对称和正定的实数阵。共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统通过类似乔莱斯基分解这样的直接方法去计算量太大。而这类系统在数值求解偏微分方程时是很常见的。
共轭梯度法主要用于求解下列线性系统:
,其中矩阵是对称的(即),正定的(即对于所有非0向量属于,)实系数矩阵。经过一些简化,可以得到求解的算法,如图1所示。其中是实对称正定矩阵。
传统的串行计算方法严格按照以上的算法流程进行演算,并能够得到正确的演算结果。然而由于串行计算本身存在的瓶颈,当计算量相对较大,计算机本身的性能将大大制约其进行演算的效率。并且当实对称正定矩阵维数过大,计算机也无法对其数据进行有效的存储与管理。
近年来,随着计算机硬件的不断发展,越来越多的计算机采用了多核的平台构架,传统的串行计算方法的演算流程不能有效地利用多核平台的优势,其对机器本身性能的利用也不充分。随着分布式计算技术的不断推广,也使得集群并行计算成为提高计算性能的有效方法。相比而言,传统的串行计算方法则表现出计算上极大的局限性。
发明内容
针对上述传统的串行计算方法存在的问题,本发明提出一种能充分利用计算机性能以及硬件平台,组织进行分布式计算的方法。该方法应拥有自动调优的功能,使之能根据所部署计算机的特性进行调整,从而使其作为节点所参与的并行计算体现出更高的计算性能。通过利用集群以及多核平台的优势,提升共轭梯度法的演算效率,充分利用计算机硬件与网络资源,进行高性能计算,解决传统串行计算方法资源利用不足,演算效率低下的问题。
传统的串行计算方法如下方伪代码所示:
其中向量用于判断是否满足演算的精度需要,若满足则演算结束。
本发明关注于传统的串行计算方法在演算中极为活跃的计算热点——矩阵与向量乘,设计了一种基于MPI的分布式共轭梯度法的调优计算方法,该方法的优化工作包括:当有新的节点加入计算集群时,采用预调优算法确定该节点的计算线程数并得到适用于集群计算的最优矩阵分块大小;读入系数矩阵时,将矩阵数据结构按最优分块大小,转换为方便灵活的分块压缩结构;在计算任务执行之前,根据各个节点的预调优数据为每个节点的线程分配计算量;当共轭梯度法演算流程执行矩阵与向量乘时,利用MPI自动将计算任务分配到集群中的计算节点,当计算完成后将结果主动归约到主节点,以多线程集群的工作方式提高运算效率。
本发明方法的具体步骤是:
(1) 准备节点
1-1.首先进行各节点的硬件部署;
1-2.判断是否有新节点加入,如果有,则进行步骤1-3的预调优过程,否则转入步骤2进行数据格式化过程。
1-3.所涉及的预调优过程,利用选取的个矩阵所构成的基准矩阵集,对集群计算性能进行调优,其具体过程如下:
设为的基准矩阵,其中与分别为相应基准矩阵的行数与列数,对其生成的随机向量,选用所有的矩阵分块方式,将基准矩阵按分块方式格式化为相应的BCSR结构,利用计算量分配算法进行节点部署,根据进行节点部署时得到的计算量分配方案,通过MPI控制集群中的各计算节点进行并行的矩阵向量乘运算,从而统计出集群在不同分块方式下的运算开销。
在完成基准矩阵集的运算开销的统计之后,对于不同的分块方式分别计算出集群运算的平均开销,选取其中平均开销最小的分块方式作为集群进行矩阵向量乘的最终分块方式。
其中基准矩阵按分块方式格式化为相应的BCSR结构的具体流程如下:
1. 首先按照行主序依次读入待划分矩阵中的非零元素,并按先后顺序将其列号记录于向量内,数值记录于向量内。
2. 将待划分矩阵按分块方式的行高,对行进行平均划分,并对每个划分内的元素按列主序重新排序存储,此次排序将重新调整向量与向量中元素的分布。
3. 在当前划分区间内,不断以第一个未被划分进向量所在区间的非零元素所在列为起始列,按分块方式的列宽划分出子矩阵块,并用向量控制当前块中非零元素在向量与向量内所处的区间,直到所有的非零元素均被成功划分,此时用向量记录该划分内所形成的块在向量内的索引区间。
计算量分配算法其流程如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110053792.5/2.html,转载请声明来源钻瓜专利网。