一种基于mic平台实现gmres算法并行加速的方法
【专利摘要】本发明公开了一种基于MIC平台实现GMRES算法并行加速的方法,属于GMRES算法【技术领域】,本发明要解决如何通过MIC加速GMRES算法求解大规模线性方程组的技术问题,技术方案为:CPU端负责数据读取,程序串行部分的计算,逻辑控制,同时设定内核的线程执行配置,启动MIC端计算,并接受MIC端的迭代结果;MIC端根据内核线程执行配置启用相应的线程对程序中的并行部分实施计算;GMRES算法进行并行性分析,定位热点与性能瓶颈;根据并行性及热点分析,实现基于CPU端的OpenMP并行程序版本;根据GMRES算法的特点,基于CPU端或者MIC端异构平台进行整体任务分配设计;根据整体任务分配设计,将CPU端的OpenMP版本移植到MIC端。
【专利说明】-种基于MIC平台实现GMRES算法并行加速的方法
【技术领域】
[0001] 本发明涉及一种GMRES算法【技术领域】,具体地说是一种基于MIC平台实现GMRES 算法并行加速的方法。
【背景技术】
[0002] (1)数学物理模型的求解是众多工程生产与科研领域必不可少的工作之一。随着 计算机的发展,有限差分、有限元、边界元、无网格方法等一系列的数值计算方法相继诞生。 这些数值计算方法具有一个相同之处:将实际问题导出的数学物理模型通过特定的方式离 散成一个线性代数方程组。然而,随着问题规模的增大,线性方程组的求解成为工程生产和 科研中的一大瓶颈。对于大规模乃至超大规模的线性方程组,求解变得十分困难。特别当 稀疏矩阵非对称且无特定结构时,求解几乎不可能完成。
[0003] (2) GMRES算法(广义极小残量法)是求解非对称的稀疏矩阵的常 用方法,也是Krylov子空间中经典算法之一,它是通过Krylov子空间矢 量的最小残量来迭代求解,收敛速度快,稳定性好的优点。对线性方程组
【权利要求】
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正交化过程主要基于〇 (n)阶矩阵、向量运算,n为大规模稀疏矩阵的阶数,数量 级大于1〇7,适合大规模并行;最小二乘问题求解以及构造近似解主要基于〇(m)阶矩阵、向 量运算,m为Krylov子空间的维数,取值通常为lOLlO2,不适合大规模并行; 、实现基于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的处理性能。
【文档编号】G06F17/10GK104408019SQ201410591315
【公开日】2015年3月11日 申请日期:2014年10月29日 优先权日:2014年10月29日
【发明者】王明清, 张清, 张广勇, 吴韶华 申请人:浪潮电子信息产业股份有限公司