一种基于KNL平台的代数系统求解方法及系统技术方案

技术编号:15724300 阅读:51 留言:0更新日期:2017-06-29 09:51
本申请公开了一种基于KNL平台的代数系统求解方法,包括:将线性方程组的系数矩阵和常数矩阵分别划分为L组计算矩阵;主进程将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;主进程接收每个从进程计算出的最终结果。可见,本申请基于KNL平台按照预设的划分方法,将线性方程组的系数矩阵和常数矩阵分别划分为L组计算矩阵,并将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果,利用多进程运算优势,将线性方程组分块并行计算,提高了计算速度,实现了对线性方程组的快速运算。另外,本申请还相应公开了一种基于KNL平台的代数系统求解系统。

【技术实现步骤摘要】
一种基于KNL平台的代数系统求解方法及系统
本专利技术涉及高性能计算领域,特别涉及一种基于KNL平台的代数系统求解方法及系统。
技术介绍
随着科技的进步,线性方程组的求解问题在20世纪中叶随着计算机的发展大型线性方程租的求解才成为可能。求解线性方程组的数值方法大体上可分为直接法和迭代法两种。迭代法适合求解规模较大的稀疏线性方程组,采取逐次逼近的方法,按照一定的计算格式,构造一个向量的无穷序列,其极限才是线性方程组的精确解,有限次计算得到的是近似解。但是无论哪种迭代方式基本上由矩阵向量乘、向量相加(减)、数乘以向量以及向量内积等四种运算构成。KNL(KnightsLanding)是英特尔公司推出的第二代至强融核芯片,用于高性能并行计算的众核处理器。KNL芯片可以单独做中央主处理器,其采用了Silvermont架构的改进定制版和14nm新工艺,核心数量多达64-72个,每个核心最多可开启4个线程,最多拥有288个线程,双精度浮点性能超过3TFlops,单精度则超过6TFlops。现有技术中,有限差分、有限元、边界元、无网格方法等一系列的数值计算方法相继诞生。这些数值计算方法具有一个相同之处:将实际问题导出的数学物理模型通过特定的方式离散成一个线性代数方程组。不同领域的问题或运用不同数值方法求解的问题得到矩阵的形态或特性往往是不相同的,针对不同形态或特性的矩阵选取不同的求解方法,因此,这些数学物理问题总会转化成一个线性代数系统的求解问题。然而,随着问题规模的增大,现有硬件设备和方法,在面对复杂的线性方程组求解问题时,需要耗费大量时间,难以进一步提高计算速度,因此,线性方程组的求解成为工程生产和科研中的一大瓶颈。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于KNL平台的代数系统求解方法及系统,以提高对线性方程组的计算速度。其具体方案如下:一种基于KNL平台的代数系统求解方法,包括:主进程读取线性方程组,按照预设的划分方法,将所述线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数;所述主进程将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;其中,N为小于等于L的正整数;所述主进程接收每个从进程计算出的最终结果;其中,每个从进程对接收到的计算矩阵进行任一次迭代计算的过程,包括:从进程对接收到的计算矩阵进行计算,得到第一计算结果,并将所述第一计算结果反馈给所述主进程,所述主进程接收所述从进程的第一计算结果,并将所述从进程的第一计算结果发送给其他从进程。优选的,所述按照预设的划分方法,所述将线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块的过程,包括:将所述线性方程组的系数矩阵和常数矩阵,分别按行划分成L块,每块系数矩阵与每块常数矩阵相互一一对应。优选的,所述从进程对接收到的计算矩阵进行计算的过程,包括:所述从进程利用矩阵向量乘函数、向量数乘函数、向量内积函数和向量相加函数对接收到的所述计算矩阵进行计算。优选的,各进程间通信方式为集合通信。优选的,还包括:所述主进程将L组计算矩阵分配到N个从进程和主进程中。优选的,所述所述主进程将L组计算矩阵分配到N个从进程中的过程,包括:所述主进程将L组计算矩阵平均分配到N个从进程中。一种基于KNL平台的代数系统求解系统,包括:划分模块,用于主进程读取线性方程组,按照预设的划分方法,将所述线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数;分配模块,用于所述主进程将L组计算矩阵分配到N个从进程中;计算模块,用于每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;其中,N为小于等于L的正整数;收集模块,用于所述主进程接收每个从进程计算出的最终结果;其中,所述计算模块中对每个从进程对接收到的计算矩阵进行任一次迭代计算的过程,包括:从进程对接收到的计算矩阵进行计算,得到第一计算结果,并将所述第一计算结果反馈给所述主进程,所述主进程接收所述从进程的第一计算结果,并将所述从进程的第一计算结果发送给其他从进程。优选的,所述划分模块,具体用于将所述线性方程组的系数矩阵和常数矩阵,分别按行划分成L块,每块系数矩阵与每块常数矩阵相互一一对应。优选的,所述计算模块,包括:计算单元,用于所述从进程利用矩阵向量乘函数、向量数乘函数、向量内积函数和向量相加函数对接收到的所述计算矩阵进行计算。优选的,所述分配模块,具体用于所述主进程将L组计算矩阵平均分配到N个从进程中。本专利技术中,基于KNL平台的代数系统求解方法,包括:主进程读取线性方程组,按照预设的划分方法,将线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数;主进程将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;其中,N为小于等于L的正整数;主进程接收每个从进程计算出的最终结果;其中,每个从进程对接收到的计算矩阵进行任一次迭代计算的过程,包括:从进程对接收到的计算矩阵进行计算,得到第一计算结果,并将第一计算结果反馈给主进程,主进程接收从进程的第一计算结果,并将从进程的第一计算结果发送给其他从进程。可见,本专利技术基于KNL平台通过主进程读取线性方程组,按照预设的划分方法,将线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,并将L组计算矩阵分配到N个从进程中,保障了多进程并行运算,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果,利用多进程运算优势,将线性方程组分块并行计算,提高了计算速度,实现了对线性方程组的快速运算。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种基于KNL平台的代数系统求解方法流程示意图;图2为本专利技术实施例提供的另一种基于KNL平台的代数系统求解方法流程示意图;图3为本专利技术实施例提供的一种基于KNL平台的代数系统求解系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种基于KNL平台的代数系统求解方法,参见图1所示,该方法包括:步骤S11:主进程读取线性方程组,按照预设的划分方法,将线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数。具体,KNL平台接收到需要计算的线性方程组,KNL平台中的主进程读取线性方程组的信息,例如,系数矩阵和常数矩阵的行列数,矩阵中的每个数值等信息,按照用户预先设定的划分方法,将线性方程组的系数矩阵和常数矩阵划分为多块,且系数矩阵块与常数矩阵块一一对应,得到L组计算矩阵,可以理解的是,一组计算矩阵本文档来自技高网
...
一种基于KNL平台的代数系统求解方法及系统

【技术保护点】
一种基于KNL平台的代数系统求解方法,其特征在于,包括:主进程读取线性方程组,按照预设的划分方法,将所述线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数;所述主进程将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;其中,N为小于等于L的正整数;所述主进程接收每个从进程计算出的最终结果;其中,每个从进程对接收到的计算矩阵进行任一次迭代计算的过程,包括:从进程对接收到的计算矩阵进行计算,得到第一计算结果,并将所述第一计算结果反馈给所述主进程,所述主进程接收所述从进程的第一计算结果,并将所述从进程的第一计算结果发送给其他从进程。

【技术特征摘要】
1.一种基于KNL平台的代数系统求解方法,其特征在于,包括:主进程读取线性方程组,按照预设的划分方法,将所述线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块,得到L组计算矩阵,其中,L为正整数;所述主进程将L组计算矩阵分配到N个从进程中,每个从进程对接收到的计算矩阵进行多次迭代计算,得到最终结果;其中,N为小于等于L的正整数;所述主进程接收每个从进程计算出的最终结果;其中,每个从进程对接收到的计算矩阵进行任一次迭代计算的过程,包括:从进程对接收到的计算矩阵进行计算,得到第一计算结果,并将所述第一计算结果反馈给所述主进程,所述主进程接收所述从进程的第一计算结果,并将所述从进程的第一计算结果发送给其他从进程。2.根据权利要求1所述的基于KNL平台的代数系统求解方法,其特征在于,所述按照预设的划分方法,所述将线性方程组的系数矩阵和常数矩阵分别划分为相互一一对应的L块的过程,包括:将所述线性方程组的系数矩阵和常数矩阵,分别按行划分成L块,每块系数矩阵与每块常数矩阵相互一一对应。3.根据权利要求1所述的基于KNL平台的代数系统求解方法,其特征在于,所述从进程对接收到的计算矩阵进行计算的过程,包括:所述从进程利用矩阵向量乘函数、向量数乘函数、向量内积函数和向量相加函数对接收到的所述计算矩阵进行计算。4.根据权利要求1所述的基于KNL平台的代数系统求解方法,其特征在于,各进程间通信方式为集合通信。5.根据权利要求1所述的基于KNL平台的代数系统求解方法,其特征在于,还包括:所述主进程将L组计算矩阵分配到N个从进程和主进程中。6.根据权利要求1至5任一项所述的基于KNL...

【专利技术属性】
技术研发人员:王明清黄雪董昊刘姝
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1