CN104408019A - 一种基于mic平台实现gmres算法并行加速的方法 - Google Patents

一种基于mic平台实现gmres算法并行加速的方法 Download PDF

Info

Publication number
CN104408019A
CN104408019A CN201410591315.8A CN201410591315A CN104408019A CN 104408019 A CN104408019 A CN 104408019A CN 201410591315 A CN201410591315 A CN 201410591315A CN 104408019 A CN104408019 A CN 104408019A
Authority
CN
China
Prior art keywords
mic
cpu
gmres
parallel
arnodi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410591315.8A
Other languages
English (en)
Inventor
王明清
张清
张广勇
吴韶华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201410591315.8A priority Critical patent/CN104408019A/zh
Publication of CN104408019A publication Critical patent/CN104408019A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于MIC平台实现GMRES算法并行加速的方法,属于GMRES算法技术领域,本发明要解决如何通过MIC加速GMRES算法求解大规模线性方程组的技术问题,技术方案为:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;GMRES算法进行并行性分析,定位热点与性能瓶颈;根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;根据整体任务分配设计,将CPU端的OpenMP版本移植到MIC端。

Description

一种基于MIC平台实现GMRES算法并行加速的方法
技术领域
本发明涉及一种GMRES算法技术领域,具体地说是一种基于MIC平台实现GMRES算法并行加速的方法。
背景技术
(1)数学物理模型的求解是众多工程生产与科研领域必不可少的工作之一。随着计算机的发展,有限差分、有限元、边界元、无网格方法等一系列的数值计算方法相继诞生。这些数值计算方法具有一个相同之处:将实际问题导出的数学物理模型通过特定的方式离散成一个线性代数方程组。然而,随着问题规模的增大,线性方程组的求解成为工程生产和科研中的一大瓶颈。对于大规模乃至超大规模的线性方程组,求解变得十分困难。特别当稀疏矩阵非对称且无特定结构时,求解几乎不可能完成。
(2)GMRES算法(广义极小残量法)是求解非对称的稀疏矩阵的常用方法,也是Krylov子空间中经典算法之一,它是通过Krylov子空间矢量的最小残量来迭代求解,收敛速度快,稳定性好的优点。对线性方程组                                                ,GMRES算法的m阶Krylov子空间为,GMRES通过求使残量最小的矢量来逼近的精确解。
采用GMRES算法求解大规模线性方程组的基本过程如图1所示。对于线性方程组,GMRES算法的求解过程:①、选初始向量,给定误差;②、;③、Arnoldi过程得到的标准正交基,上Hessenberg矩阵;④、求,使得最小,即最小;⑤、求解使得达到最小;⑥、求得后,,计算,若,则停止,即得到所要求的方程的近似解。否则重复过程3~6。
(3)MIC(Many Integrated Cores)是Intel公司推出的,用于高性能并行计算的众核处理器。它是从已有的Xeon处理器产品基础上发展而来,它专为超高性能计算而生的新架构。MIC在计算机体系中并非欲取代CPU,而是作为协处理器存在的。MIC卡与与通用的多核处理器相比MIC具有更小的内核和硬件线程。MIC芯片通常有50个以上精简的x86核心,每个core支持4个硬件线程。此外,还具有512bite向量位宽,其双精峰值性能达到1TFlops。MIC技术将加快高性能计算的发展,快速解决高性能计算应用的性能瓶颈。
综上,随着问题规模的增大,线性方程组的求解成为工程生产和科研中的一大瓶颈。Intel MIC 具备高性能计算的特点,如何通过MIC加速GMRES算法求解大规模线性方程组,是目前迫切需要解决的问题。
发明内容  
  本发明的技术任务是提供一种通过MIC协处理器加速GMRES算法求解大规模线性方程组的一种基于MIC平台实现GMRES算法并行加速的方法。
本发明的技术任务是按以下方式实现的,
一种基于MIC平台实现GMRES算法并行加速的方法,所应用到的硬件包括CPU端与MIC端,其中:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;
所述方法包括如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈;
(2)、根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;
(3)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;
(4)、根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端。
所述方法包括如下:
(1)GMRES算法分为前期预处理、迭代部分、结果输出三大部分,其中迭代部分为GMRES算法的主体,其运算量占整体的95%以上。前期预处理、结果输出部分以I/O操作为主,不适于并行处理。迭代部分的单次迭代操作流程主要包括Arnodi正交化、Givens变换求解最小二乘问题及构造近似解三部分,其中Arnodi正交化过程以o(n)阶矩阵、向量计算为主,这里n为大规模线性方程组系数矩阵的阶数,Givens变换求解最小二乘问题及构造近似解均在m维(m<<n)的子空间中,为o(m)阶矩阵向量的计算;因此,单次迭代中的Arnodi正交化过程为程序最大热点;
(2)Arnodi正交化过程进行OpenMP并行设计,Arnodi正交化主要由o(n)阶矩阵与向量相乘、向量内积(范数)、向量数乘以及向量减法四种运算组成,将四种运算作为内核函数,基于OpenMP开启多线程并行;
(3)基于内容(1),对CPU端或者MIC端异构平台进行整体任务分配,前期预处理、Givens变换求解最小二乘问题、构造近似解的串行部分交予CPU端计算;算法的主体部分——Arnodi正交化生成子空间的标准正交积同时生成上Hessenberg矩阵由MIC端计算;
(4)根据内容(1)、(2)、(3),采用以CPU端为主,MIC端为辅的offload模式将程序移植到MIC端上。
把数据读取、设定初始值的预处理操作以及由不适宜并行化的低阶矩阵、向量运算为主的Givens变换、近似解的构造交予CPU端处理,把耗时最多,且可并行性良好的Arnodi正交化过程利用OpenMP技术进行并行优化设计,并将程序移植到MIC端;CPU端与MIC端协同计算,最终实现GMRES算法的加速,具体步骤如下:
(1)GMRES算法进行并行性分析,定位热点与性能瓶颈:
首先,将GMRES算法分为预处理、Arnodi正交换生成Krylov子空间与上Hessenberg矩阵、求解最小二乘问题、构造近似解、后处理五部分;
其次,利用较大规模的线性方程组求解测试;
最后,运行GMRES算法的串行程序发现95%以上的运算时间用于算法迭代部分,即Arnodi正交换、最小二乘问题求解以及构造近似解,其中90%以上的时间用于Arnodi正交化过程,说明GMRES算法的热点与瓶颈为Arnodi正交化过程;
(2)进行并行性及热点分析:
将GMRES算法的串行程序迭代过程抽取出来研究其并行性,发现Arnodi正交化过程主要基于o(n)阶矩阵、向量运算,n为大规模稀疏矩阵的阶数,数量级大于107,适合大规模并行;最小二乘问题求解以及构造近似解主要基于o(m)阶矩阵、向量运算,m为Krylov子空间的维数,取值通常为101-102,不适合大规模并行;因此,下一步主要对Arnodi正交化过程并行设计;
(3)实现基于CPU端的OpenMP并行程序版本:
Arnodi正交化过程主要由矩阵向量乘、向量内积(范数)、向量数量乘法以及向量减四种操作构成;设置为四个OpenMP内核函数,通过在循环编译指导语句“ #pragma omp parallel for num_threads(…) private(…) schedule(…)”对内核函数并行;
(4)根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计:
GMRES算法整体逻辑结构采用CPU端为1颗CPU,MIC端为1块MIC卡,CPU负责进程调度、预处理、求解最小二乘问题、构造近似解以及后处理等操作;MIC卡负责Arnodi正交化的过程;CPU开启1个进程,预处理操作时可开启Nc个线程,Nc为CPU的核数,0号线程为主线程,负责CPU多线程的控制、调度、销毁以及控制MIC卡的计算;MIC卡计算调用内核函数时,开启4*(Nm-1)个线程,Nm为MIC卡核心数量,0号线程为主线程,负责MIC线程的调度、销毁操作;当Arnodi正交化完成后,MIC端将数据传输到CPU端,CPU端开启Nc个线程完成求解最小二乘问题、构造近似解以及判断迭代是否停止操作;从而完成一次完整的迭代过程;
(5)根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端:
采用以CPU端为主,MIC端为辅的offload模式进行设计,当程序运行到并行内核程序时,CPU端将任务卸载到MIC端上。主要包括线程数目的设置以及数据的传输,其实现方式为:
(1)、# pragma offload target(mic:mic_number)\;
(2)、in(A,B:length(n*n))\;
(3)、out(C:length:(n*n));
(4)、{...}。
MIC端程序的并行优化包括:数据传输优化及内核优化;其中数据传输优化是为减少CPU端与MIC端的数据传递带来的花费,采用nocopy的方法来减少不必要的数据传输;内核优化是通过调节循环结构改善内核并行度与cache miss对性能的限制,通过自动向量化方式提生MIC的处理性能。
本发明的一种基于MIC平台实现GMRES算法并行加速的方法,有益效果是:不仅缩短了GMRES算法求解大规模线性方程组的时间,而且降低了能耗,减少了机房管理、运维的成本,且加速方法简单易于实现,降低开发成本。
附图说明
下面结合附图对本发明进一步说明。
附图1为GMRES算法求解线性方程组的流程图;
  附图2为一种基于MIC平台实现GMRES算法并行加速的方法的CPU/MIC平台整体任务分配图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于MIC平台实现GMRES算法并行加速的方法作以下详细地说明。
实施例1:
本发明的一种基于MIC平台实现GMRES算法并行加速的方法,所应用到的硬件包括CPU端与MIC端,其中:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;
所述方法包括如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈;
(2)、根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;
(3)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;
(4)、根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端。
所述方法具体包括如下:
(1)、GMRES算法分为前期预处理、迭代部分、结果输出三大部分,其中迭代部分为GMRES算法的主体,其运算量占整体的95%以上。前期预处理、结果输出部分以I/O操作为主,不适于并行处理。迭代部分的单次迭代操作流程主要包括Arnodi正交化、Givens变换求解最小二乘问题及构造近似解三部分,其中Arnodi正交化过程以o(n)阶矩阵、向量计算为主,这里n为大规模线性方程组系数矩阵的阶数,Givens变换求解最小二乘问题及构造近似解均在m维(m<<n)的子空间中,为o(m)阶矩阵向量的计算;因此,单次迭代中的Arnodi正交化过程为程序最大热点;
(2)、Arnodi正交化过程进行OpenMP并行设计,Arnodi正交化主要由o(n)阶矩阵与向量相乘、向量内积(范数)、向量数乘以及向量减法四种运算组成,将四种运算作为内核函数,基于OpenMP开启多线程并行;
(3)、基于内容(1),对CPU端或者MIC端异构平台进行整体任务分配,前期预处理、Givens变换求解最小二乘问题、构造近似解的串行部分交予CPU端计算;算法的主体部分——Arnodi正交化生成子空间的标准正交积同时生成上Hessenberg矩阵由MIC端计算;
(4)、根据内容(1)、(2)、(3),采用以CPU端为主,MIC端为辅的offload模式将程序移植到MIC端上。
实施例2:
本发明的一种基于MIC平台实现GMRES算法并行加速的方法,所应用到的硬件包括CPU端与MIC端,其中:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;
所述方法包括如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈;
(2)、根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;
(3)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;
(4)、根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端。
把数据读取、设定初始值的预处理操作以及由不适宜并行化的低阶矩阵、向量运算为主的Givens变换、近似解的构造交予CPU端处理,把耗时最多,且可并行性良好的Arnodi正交化过程利用OpenMP技术进行并行优化设计,并将程序移植到MIC端;CPU端与MIC端协同计算,最终实现GMRES算法的加速,具体步骤如下:
(1)GMRES算法进行并行性分析,定位热点与性能瓶颈:
首先,将GMRES算法分为预处理、Arnodi正交换生成Krylov子空间与上Hessenberg矩阵、求解最小二乘问题、构造近似解、后处理五部分;
其次,利用较大规模的线性方程组求解测试;
最后,运行GMRES算法的串行程序发现95%以上的运算时间用于算法迭代部分,即Arnodi正交换、最小二乘问题求解以及构造近似解,其中90%以上的时间用于Arnodi正交化过程,说明GMRES算法的热点与瓶颈为Arnodi正交化过程;
(2)进行并行性及热点分析:
将GMRES算法的串行程序迭代过程抽取出来研究其并行性,发现Arnodi正交化过程主要基于o(n)阶矩阵、向量运算,n为大规模稀疏矩阵的阶数,数量级大于107,适合大规模并行;最小二乘问题求解以及构造近似解主要基于o(m)阶矩阵、向量运算,m为Krylov子空间的维数,取值通常为101-102,不适合大规模并行;因此,下一步主要对Arnodi正交化过程并行设计;
(3)实现基于CPU端的OpenMP并行程序版本:
Arnodi正交化过程主要由矩阵向量乘、向量内积(范数)、向量数量乘法以及向量减四种操作构成;设置为四个OpenMP内核函数,通过在循环编译指导语句“ #pragma omp parallel for num_threads(…) private(…) schedule(…)”对内核函数并行;
(4)根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计:
GMRES算法整体逻辑结构采用CPU端为1颗CPU,MIC端为1块MIC卡,CPU负责进程调度、预处理、求解最小二乘问题、构造近似解以及后处理等操作;MIC卡负责Arnodi正交化的过程;CPU开启1个进程,预处理操作时可开启Nc个线程,Nc为CPU的核数,0号线程为主线程,负责CPU多线程的控制、调度、销毁以及控制MIC卡的计算;MIC卡计算调用内核函数时,开启4*(Nm-1)个线程,Nm为MIC卡核心数量,0号线程为主线程,负责MIC线程的调度、销毁操作;当Arnodi正交化完成后,MIC端将数据传输到CPU端,CPU端开启Nc个线程完成求解最小二乘问题、构造近似解以及判断迭代是否停止操作;从而完成一次完整的迭代过程;
(5)根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端:
采用以CPU端为主,MIC端为辅的offload模式进行设计,当程序运行到并行内核程序时,CPU端将任务卸载到MIC端上。主要包括线程数目的设置以及数据的传输,其实现方式为:
(1)、# pragma offload target(mic:mic_number)\;
(2)、in(A,B:length(n*n))\;
(3)、out(C:length:(n*n));
(4)、{...}。
MIC端程序的并行优化包括:数据传输优化及内核优化;其中数据传输优化是为减少CPU端与MIC端的数据传递带来的花费,采用nocopy的方法来减少不必要的数据传输;内核优化是通过调节循环结构改善内核并行度与cache miss对性能的限制,通过自动向量化方式提生MIC的处理性能。
由以上可知,本发明通过将GMRES算法预处理、低阶矩阵向量的运算及后处理操作放在CPU端操作,将计算比重大,可并行性良好的高阶矩阵向量预算交给计算能力更强的MIC计算,实现了CPU/MIC异构协同计算,加快了GMRES算法求解大规模线性方程组的速度,降低计算能耗,从而减少了机房构建、管理及运维成本。
实施例3:
本发明的一种基于MIC平台实现GMRES算法并行加速的方法,所应用到的硬件包括CPU端与MIC端,其中:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;
所述方法包括如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈;
(2)、根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;
(3)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;
(4)  根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端。
CPU端数据的读取,程序串行部分的计算,根据MIC卡核心数量设置并行执行的线程数,具体包括:读取大规模线性方程组的系数矩阵A、常数项向量b,设定线性方程组的初始解x0; GMRES迭代之前的数据处理与计算,最小二乘问题求解,构造新的近似解x0;根据MIC卡的核心数设置并行执行构造Hessenberg矩阵的线程数量。
MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算,具体包括:MIC端根据所述线程执行配置使用相应的多线程并行地使用矩阵向量乘、向量内积、向量减及向量与数量乘积等4个内核函数实施Arnoldi过程,构造Krylov子空间Km的标准正交基,从而得到Hessenberg矩阵Hm,传递到CPU端内存。
MIC根据核心数量Nm,开启4*(Nm-1)个线程并行地根据CPU端传输过来的上一次迭代的近似解xi执行Arnodi正交化过程,得到用以计算下一个近似解xi+1的Krylov子空间的标准正交基{vi}m以及Hessenberg矩阵Hm
CPU端控制GMRES算法的迭代次数,其中:CPU端通过计算残量rm=A*xm是否小于预设定的精度e来控制迭代次数Iter。
CPU将残量rm< e时的xm作为结果写入内存。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的3种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

Claims (4)

1.一种基于MIC平台实现GMRES算法并行加速的方法,其特征在于所应用到的硬件包括CPU端与MIC端,其中:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;
所述方法包括如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈;
(2)、根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;
(3)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;
(4)、根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端。
2.根据权利要求1所述的一种基于MIC平台实现GMRES算法并行加速的方法,其特征在于所述方法包括如下:
(1)、GMRES算法分为前期预处理、迭代部分、结果输出三大部分,其中迭代部分为GMRES算法的主体,前期预处理、结果输出部分以I/O操作为主,迭代部分的单次迭代操作流程主要包括Arnodi正交化、Givens变换求解最小二乘问题及构造近似解三部分;
(2)、Arnodi正交化过程进行OpenMP并行设计,Arnodi正交化主要由o(n)阶矩阵与向量相乘、向量内积、向量数乘以及向量减法四种运算组成,将四种运算作为内核函数,基于OpenMP开启多线程并行;
(3)、基于内容(1),对CPU端或者MIC端异构平台进行整体任务分配,前期预处理、Givens变换求解最小二乘问题、构造近似解的串行部分交予CPU端计算;算法的主体部分——Arnodi正交化生成子空间的标准正交积同时生成上Hessenberg矩阵由MIC端计算;
(4)、根据内容(1)、(2)、(3),采用以CPU端为主,MIC端为辅的offload模式将程序移植到MIC端上。
3.根据权利要求1所述的一种基于MIC平台实现GMRES算法并行加速的方法,其特征在于把数据读取、设定初始值的预处理操作以及由低阶矩阵、向量运算为主的Givens变换、近似解的构造交予CPU端处理,把Arnodi正交化过程利用OpenMP技术进行并行优化设计,并将程序移植到MIC端;CPU端与MIC端协同计算,最终实现GMRES算法的加速,具体步骤如下:
(1)、GMRES算法进行并行性分析,定位热点与性能瓶颈:
首先,将GMRES算法分为预处理、Arnodi正交换生成Krylov子空间与上Hessenberg矩阵、求解最小二乘问题、构造近似解、后处理五部分;
其次,利用较大规模的线性方程组求解测试;
最后, GMRES算法的热点与瓶颈为Arnodi正交化过程;
、进行并行性及热点分析:
Arnodi正交化过程主要基于o(n)阶矩阵、向量运算,n为大规模稀疏矩阵的阶数,数量级大于107,适合大规模并行;最小二乘问题求解以及构造近似解主要基于o(m)阶矩阵、向量运算,m为Krylov子空间的维数,取值通常为101-102,不适合大规模并行; 
、实现基于CPU端的OpenMP并行程序版本:
Arnodi正交化过程主要由矩阵向量乘、向量内积、向量数量乘法以及向量减四种操作构成;设置为四个OpenMP内核函数,通过在循环编译指导语句对内核函数并行;
(4)、根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计:
GMRES算法整体逻辑结构采用CPU端为1颗CPU,MIC端为1块MIC卡,CPU负责进程调度、预处理、求解最小二乘问题、构造近似解以及后处理等操作;MIC卡负责Arnodi正交化的过程;CPU开启1个进程,预处理操作时可开启Nc个线程,Nc为CPU的核数,0号线程为主线程,负责CPU多线程的控制、调度、销毁以及控制MIC卡的计算;MIC卡计算调用内核函数时,开启4*(Nm-1)个线程,Nm为MIC卡核心数量,0号线程为主线程,负责MIC线程的调度、销毁操作;当Arnodi正交化完成后,MIC端将数据传输到CPU端,CPU端开启Nc个线程完成求解最小二乘问题、构造近似解以及判断迭代是否停止操作;从而完成一次完整的迭代过程;
(5)、根据整体任务分配设计,将CPU端的 OpenMP版本移植到MIC端:
采用以CPU端为主,MIC端为辅的offload模式进行设计,当程序运行到并行内核程序时,CPU端将任务卸载到MIC端上。
4.根据权利要求3所述的一种基于MIC平台实现GMRES算法并行加速的方法,其特征在于MIC端程序的并行优化包括:数据传输优化及内核优化;其中数据传输优化是为减少CPU端与MIC端的数据传递带来的花费,采用nocopy的方法来减少不必要的数据传输;内核优化是通过调节循环结构改善内核并行度与cache miss对性能的限制,通过自动向量化方式提生MIC的处理性能。
CN201410591315.8A 2014-10-29 2014-10-29 一种基于mic平台实现gmres算法并行加速的方法 Pending CN104408019A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410591315.8A CN104408019A (zh) 2014-10-29 2014-10-29 一种基于mic平台实现gmres算法并行加速的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410591315.8A CN104408019A (zh) 2014-10-29 2014-10-29 一种基于mic平台实现gmres算法并行加速的方法

Publications (1)

Publication Number Publication Date
CN104408019A true CN104408019A (zh) 2015-03-11

Family

ID=52645651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410591315.8A Pending CN104408019A (zh) 2014-10-29 2014-10-29 一种基于mic平台实现gmres算法并行加速的方法

Country Status (1)

Country Link
CN (1) CN104408019A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045768A (zh) * 2015-09-01 2015-11-11 浪潮(北京)电子信息产业有限公司 一种实现gmres算法的方法和系统
CN105893151A (zh) * 2016-04-01 2016-08-24 浪潮电子信息产业股份有限公司 一种基于cpu+mic异构平台的高维数据流的处理方法
CN106598913A (zh) * 2016-12-23 2017-04-26 郑州云海信息技术有限公司 一种knl集群加速求解方法及装置
CN109522127A (zh) * 2018-11-19 2019-03-26 西安交通大学 一种基于gpu的流体机械仿真程序异构加速方法
CN109558888A (zh) * 2017-09-27 2019-04-02 武汉嫦娥信息科技有限公司 一种高光谱遥感图像分类的并行化加速算法
CN109635493A (zh) * 2018-12-28 2019-04-16 北京工业大学 一种基于并行运算的高效一阶摄动展开渐进均匀化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945566A (zh) * 2012-10-19 2013-02-27 浪潮电子信息产业股份有限公司 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法
CN103049329A (zh) * 2012-11-22 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu/mic异构体系结构的高效能系统
CN103530132A (zh) * 2013-10-29 2014-01-22 浪潮电子信息产业股份有限公司 一种cpu串行程序移植到mic平台的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945566A (zh) * 2012-10-19 2013-02-27 浪潮电子信息产业股份有限公司 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法
CN103049329A (zh) * 2012-11-22 2013-04-17 浪潮电子信息产业股份有限公司 一种基于cpu/mic异构体系结构的高效能系统
CN103530132A (zh) * 2013-10-29 2014-01-22 浪潮电子信息产业股份有限公司 一种cpu串行程序移植到mic平台的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SATOSHI OHSHIMA ET AL.: "Performance optimization of SpMV using CRS format by considering OpenMP scheduling on CPUs and MIC", 《2014 IEEE 8TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANYCORE SOCS》 *
柳有权 等: "大规模稀疏线性方程组的GMRES-GPU快速求解算法", 《计算机辅助设计与图形学学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045768A (zh) * 2015-09-01 2015-11-11 浪潮(北京)电子信息产业有限公司 一种实现gmres算法的方法和系统
CN105893151A (zh) * 2016-04-01 2016-08-24 浪潮电子信息产业股份有限公司 一种基于cpu+mic异构平台的高维数据流的处理方法
CN105893151B (zh) * 2016-04-01 2019-03-08 浪潮电子信息产业股份有限公司 一种基于cpu+mic异构平台的高维数据流的处理方法
CN106598913A (zh) * 2016-12-23 2017-04-26 郑州云海信息技术有限公司 一种knl集群加速求解方法及装置
CN109558888A (zh) * 2017-09-27 2019-04-02 武汉嫦娥信息科技有限公司 一种高光谱遥感图像分类的并行化加速算法
CN109522127A (zh) * 2018-11-19 2019-03-26 西安交通大学 一种基于gpu的流体机械仿真程序异构加速方法
CN109522127B (zh) * 2018-11-19 2021-01-19 西安交通大学 一种基于gpu的流体机械仿真程序异构加速方法
CN109635493A (zh) * 2018-12-28 2019-04-16 北京工业大学 一种基于并行运算的高效一阶摄动展开渐进均匀化方法
CN109635493B (zh) * 2018-12-28 2023-02-07 北京工业大学 一种基于并行运算的高效一阶摄动展开渐进均匀化方法

Similar Documents

Publication Publication Date Title
CN104408019A (zh) 一种基于mic平台实现gmres算法并行加速的方法
Hao et al. FPGA/DNN co-design: An efficient design methodology for IoT intelligence on the edge
Lu et al. Evaluating fast algorithms for convolutional neural networks on FPGAs
Zaruba et al. Manticore: A 4096-core RISC-V chiplet architecture for ultraefficient floating-point computing
He et al. In-cache query co-processing on coupled CPU-GPU architectures
EP3343383A1 (en) Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies
Giles et al. Trends in high-performance computing for engineering calculations
CN102981807A (zh) 一种基于cuda并行环境的gpu程序优化方法
CN109002659B (zh) 一种基于超级计算机的流体机械仿真程序优化方法
CN102750150B (zh) 基于x86架构的稠密矩阵乘法汇编代码自动生成方法
CN103226487A (zh) 面向异构众核多级存储结构的数据分布与局部性优化方法
Laanait et al. Exascale deep learning for scientific inverse problems
Li et al. Warp-consolidation: A novel execution model for gpus
Flegar et al. Adaptive precision block-Jacobi for high performance preconditioning in the Ginkgo linear algebra software
Jiang et al. Boyi: A systematic framework for automatically deciding the right execution model of OpenCL applications on FPGAs
Arcas-Abella et al. Hardware acceleration for query processing: leveraging FPGAs, CPUs, and memory
Fabregat-Traver et al. Computing petaflops over terabytes of data: The case of genome-wide association studies
Moustafa et al. 3D cartesian transport sweep for massively parallel architectures with PARSEC
Du et al. Feature-aware task scheduling on CPU-FPGA heterogeneous platforms
CN109522126A (zh) 面向共享内存多核结构中线程级并行的数据优化方法及装置
Chen et al. Graph-opu: A highly integrated fpga-based overlay processor for graph neural networks
Turkington et al. FPGA based acceleration of the LINPACK benchmark: A high level code transformation approach
CN104679521B (zh) 一种精确计算任务高速缓存wcet的分析方法
Muraraşu et al. Workload balancing on heterogeneous systems: A case study of sparse grid interpolation
CN108776586B (zh) 基于gpdsp的大点数fft向量化汇编代码生成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150311