一种基于MPI的分布式共轭梯度法的调优计算方法技术

技术编号:6080663 阅读:528 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于MPI的分布式共轭梯度法的调优计算方法。传统的串行计算方法的演算流程不能有效地利用多核平台的优势。本发明专利技术当有新的节点加入计算集群时,采用预调优算法确定该节点的计算线程数并得到适用于集群计算的最优矩阵分块大小;将矩阵数据结构按最优分块大小,转换为分块压缩结构;在计算任务执行之前,根据各个节点的预调优数据为每个节点的线程分配计算量;当共轭梯度法演算流程执行矩阵与向量乘时,利用MPI自动将计算任务分配到集群中的计算节点,当计算完成后将结果主动归约到主节点。本发明专利技术采用高度压缩及灵活方便的BCSR结构针对稀疏矩阵进行分块处理,降低了计算时间复杂度中的常数,节省了存储空间。

A distributed optimization method for conjugate gradient method based on MPI

The invention relates to a method for optimizing calculation of a distributed conjugate gradient method based on MPI. The flow of traditional serial computing methods can not effectively utilize the advantages of multi-core platforms. The present invention when new nodes join the cluster computing, using pre tuning algorithm to determine the node number of computational threads and had been used in the cluster computing the optimal matrix block size; the matrix data structure according to the optimal block size, converted to block compressed structure; in the calculation task before, according to the data of all the pre tuning node computation thread allocation for each node; when the conjugate gradient method perform matrix vector multiplication algorithm, using MPI automatic computing tasks assigned to the computing nodes in the cluster, when calculating the results after the completion of active reduction to the master node. The invention adopts a high compression and flexible and convenient BCSR structure to block the processing of the sparse matrix, thereby reducing the constant in the computation time complexity and saving the storage space.

【技术实现步骤摘要】

本专利技术涉及一种基于共轭梯度法的计算方法,尤其涉及一种基于MPI的分布式共 轭梯度法的调优计算方法。
技术介绍
传统的共轭梯度法演算计算方法为串行方法,该方法是共轭梯度法在计算机上的 一种简单实现。共轭梯度法是求解特定线性系统的数值解的方法,其中的系数矩阵为对称 和正定的实数阵。共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统 通过类似乔莱斯基分解这样的直接方法去计算量太大。而这类系统在数值求解偏微分方程 时是很常见的。共轭梯度法主要用于求解下列线性系统』ζ = ,其中矩阵4是对称的(即# = 2 ),正定的(即对于所有非0向量χ属于民,Μ/>0 )实系数矩阵。经过一些简化,可以得到求解= 的算法,如附图说明图1所示。 其中2是实对称正定矩阵。传统的串行计算方法严格按照以上的算法流程进行演算,并能够得到正确的演算 结果。然而由于串行计算本身存在的瓶颈,当计算量相对较大,计算机本身的性能将大大制 约其进行演算的效率。并且当实对称正定矩阵2维数过大,计算机也无法对其数据进行有 效的存储与管理。近年来,随着计算机硬件的不断发展,越来越多的计算机采用了多核的平台构架, 传统的串行计算方法的演算流程不能有效地利用多核平台的优势,其对机器本身性能的利 用也不充分。随着分布式计算技术的不断推广,也使得集群并行计算成为提高计算性能的 有效方法。相比而言,传统的串行计算方法则表现出计算上极大的局限性。
技术实现思路
针对上述传统的串行计算方法存在的问题,本专利技术提出一种能充分利用计算机性 能以及硬件平台,组织进行分布式计算的方法。该方法应拥有自动调优的功能,使之能根 据所部署计算机的特性进行调整,从而使其作为节点所参与的并行计算体现出更高的计算 性能。通过利用集群以及多核平台的优势,提升共轭梯度法的演算效率,充分利用计算机硬 件与网络资源,进行高性能计算,解决传统串行计算方法资源利用不足,演算效率低下的问 题。 传统的串行计算方法如下方伪代码所示权利要求1.一种基于MPI的分布式共轭梯度法的调优计算方法,其特征在于该方法包括以下步骤步骤1.准备节点,具体是 1-1.进行各节点的硬件部署;1-2.判断是否有新节点加入,如果有新节点加入,则进行步骤1-3的预调优,否则转入 步骤2 ;1-3.利用选取的《个矩阵所 构成的基准矩阵集胞啡\matn^mainirmain ,...m—i^main込,对集群计算性能进行调 优,其具体过程如下⑩腿叫c Matnx为R-Ci的基准矩阵,其中Ri与Ci分别为相应基准矩阵的行数与列数,对其生成C; Xl的随机向量R,选用所有PxP的矩阵分块方式,将基准矩阵按分块方式格式化为相应的BCSR结构,利用计算量分配算法进行节点部署,根据进行节点部署 时得到的计算量分配方案,通过MPI控制集群中的各计算节点进行并行的矩阵向量乘运算,从而统计出集群在不同分块方式下的运算开销,其中揪Llog2i J], e;在完成基准矩阵集的运算开销的统计之后,对于不同的分块方式分别计算出集群运 算的平均开销,选取其中平均开销最小的分块方式作为集群进行矩阵向量乘的最终分块方 式;步骤2.准备数据,具体是2-1.判断是否有计算任务,若无计算任务,则结束,否则对矩阵进行读取; 2-2.对读取的矩阵按步骤1得到的最终分块方式格式化为相应的BCSR结构;步骤3.分配部署,具体是通过计算量分配算法针对当前计算任务进行节点的部署, 来获得计算量的分配方案; 步骤4.进行演算,具体是 4-1.开始共轭梯度法的迭代;4-2.判断演算流程是否涉及到矩阵向量乘,若涉及到矩阵向量乘,则根据步骤3中得 到的分配方案,对子矩阵在集群节点上的进行分配;否则跳转至步骤4-4 ;4-3.通过MPI控制集群中的各计算节点进行并行计算,然后跳转至步骤4-5 4-4.利用主节点进行演算,按照计算量的分配,开启计算线程,并与CPU核一一绑定, 从而使得各CPU核之间的运算以及各自cache的命中与刷新互不干扰; 4-5.判断迭代是否结束,未结束则跳转至步骤4-2,否则转入步骤4-6 ; 4-6.判断是否满足演算终止条件,若满足,则演算结束,否则转入步骤4-1重新开始迭代。2.根据权利要求1所述的一种基于MPI的分布式共轭梯度法的调优计算方法,其特征 在于步骤1-3中基准矩阵按分块方式格式化为相应的BCSR结构的具体流程如下A.按照行主序依次读入待划分矩阵中的非零元素,并按先后顺序将其列号记录于 向量内,数值记录亍 i 向量内;B.将待划分矩阵按分块方式的行高,对行进行平均划分,并对每个划分内的元素按列主序重新排序存储,此次排序将重新调整VJ向量与ffli向量中元素的分布;C.在当前划分区间内,不断以第一个未被划分进向量所在区间的非零元素所在 列为起始列,按分块方式的列宽划分出子矩阵块,并用Wai向量控制当前块中非零元素在 ^ ^向量与 向量内所处的区间,直到所有的非零元素均被成功划分,此时用row向量记 录该划分内所形成的块在block向量内的索引区间。3.根据权利要求1所述的一种基于MPI的分布式共轭梯度法的调优计算方法,其特征 在于步骤1-3中计算量分配算法其流程如下1)从腦’向量中获得待划分矩阵所划分的总块数;2)根据集群节点数将计算子矩阵的块数平均分配到各节点;3)各节点根据自身CPU的核数,将计算量再平均分配到相应的CPU核上。全文摘要本专利技术涉及一种基于MPI的分布式共轭梯度法的调优计算方法。传统的串行计算方法的演算流程不能有效地利用多核平台的优势。本专利技术当有新的节点加入计算集群时,采用预调优算法确定该节点的计算线程数并得到适用于集群计算的最优矩阵分块大小;将矩阵数据结构按最优分块大小,转换为分块压缩结构;在计算任务执行之前,根据各个节点的预调优数据为每个节点的线程分配计算量;当共轭梯度法演算流程执行矩阵与向量乘时,利用MPI自动将计算任务分配到集群中的计算节点,当计算完成后将结果主动归约到主节点。本专利技术采用高度压缩及灵活方便的BCSR结构针对稀疏矩阵进行分块处理,降低了计算时间复杂度中的常数,节省了存储空间。文档编号G06F17/16GK102110079SQ20111005379公开日2011年6月29日 申请日期2011年3月7日 优先权日2011年3月7日专利技术者万健, 任永坚, 张伟, 张纪林, 徐向华, 蒋从锋 申请人:杭州电子科技大学本文档来自技高网...

【技术保护点】
1.一种基于MPI的分布式共轭梯度法的调优计算方法,其特征在于该方法包括以下步骤:步骤1.准备节点,具体是:1-1.进行各节点的硬件部署;1-2.判断是否有新节点加入,如果有新节点加入,则进行步骤1-3的预调优,否则转入步骤2;1-3.利用选取的                                                个矩阵所构成的基准矩阵集,对集群计算性能进行调优,其具体过程如下:设为的基准矩阵,其中与分别为相应基准矩阵的行数与列数,对其生成的随机向量,选用所有的矩阵分块方式,将基准矩阵按分块方式格式化为相应的BCSR结构,利用计算量分配算法进行节点部署,根据进行节点部署时得到的计算量分配方案,通过MPI控制集群中的各计算节点进行并行的矩阵向量乘运算,从而统计出集群在不同分块方式下的运算开销,其中;在完成基准矩阵集的运算开销的统计之后,对于不同的分块方式分别计算出集群运算的平均开销,选取其中平均开销最小的分块方式作为集群进行矩阵向量乘的最终分块方式;步骤2.准备数据,具体是:2-1.判断是否有计算任务,若无计算任务,则结束,否则对矩阵进行读取;2-2.对读取的矩阵按步骤1得到的最终分块方式格式化为相应的BCSR结构;步骤3.分配部署,具体是:通过计算量分配算法针对当前计算任务进行节点的部署,来获得计算量的分配方案;步骤4.进行演算,具体是:4-1.开始共轭梯度法的迭代;4-2.判断演算流程是否涉及到矩阵向量乘,若涉及到矩阵向量乘,则根据步骤3中得到的分配方案,对子矩阵在集群节点上的进行分配;否则跳转至步骤4-4;4-3.通过MPI控制集群中的各计算节点进行并行计算,然后跳转至步骤4-54-4.利用主节点进行演算,按照计算量的分配,开启计算线程,并与CPU核一一绑定,从而使得各CPU核之间的运算以及各自cache的命中与刷新互不干扰;4-5.判断迭代是否结束,未结束则跳转至步骤4-2,否则转入步骤4-6;4-6.判断是否满足演算终止条件,若满足,则演算结束,否则转入步骤4-1重新开始迭代。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张纪林徐向华万健蒋从锋张伟任永坚
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:86

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

1