一種基于mic平臺(tái)實(shí)現(xiàn)gmres算法并行加速的方法
【專利摘要】本發(fā)明公開了一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法,屬于GMRES算法【技術(shù)領(lǐng)域】,本發(fā)明要解決如何通過MIC加速GMRES算法求解大規(guī)模線性方程組的技術(shù)問題,技術(shù)方案為:CPU端負(fù)責(zé)數(shù)據(jù)讀取,程序串行部分的計(jì)算,邏輯控制,同時(shí)設(shè)定內(nèi)核的線程執(zhí)行配置,啟動(dòng)MIC端計(jì)算,并接受MIC端的迭代結(jié)果;MIC端根據(jù)內(nèi)核線程執(zhí)行配置啟用相應(yīng)的線程對(duì)程序中的并行部分實(shí)施計(jì)算;GMRES算法進(jìn)行并行性分析,定位熱點(diǎn)與性能瓶頸;根據(jù)并行性及熱點(diǎn)分析,實(shí)現(xiàn)基于CPU端的OpenMP并行程序版本;根據(jù)GMRES算法的特點(diǎn),基于CPU端或者M(jìn)IC端異構(gòu)平臺(tái)進(jìn)行整體任務(wù)分配設(shè)計(jì);根據(jù)整體任務(wù)分配設(shè)計(jì),將CPU端的OpenMP版本移植到MIC端。
【專利說明】-種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種GMRES算法【技術(shù)領(lǐng)域】,具體地說是一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES 算法并行加速的方法。
【背景技術(shù)】
[0002] (1)數(shù)學(xué)物理模型的求解是眾多工程生產(chǎn)與科研領(lǐng)域必不可少的工作之一。隨著 計(jì)算機(jī)的發(fā)展,有限差分、有限元、邊界元、無網(wǎng)格方法等一系列的數(shù)值計(jì)算方法相繼誕生。 這些數(shù)值計(jì)算方法具有一個(gè)相同之處:將實(shí)際問題導(dǎo)出的數(shù)學(xué)物理模型通過特定的方式離 散成一個(gè)線性代數(shù)方程組。然而,隨著問題規(guī)模的增大,線性方程組的求解成為工程生產(chǎn)和 科研中的一大瓶頸。對(duì)于大規(guī)模乃至超大規(guī)模的線性方程組,求解變得十分困難。特別當(dāng) 稀疏矩陣非對(duì)稱且無特定結(jié)構(gòu)時(shí),求解幾乎不可能完成。
[0003] (2) GMRES算法(廣義極小殘量法)是求解非對(duì)稱的稀疏矩陣的常 用方法,也是Krylov子空間中經(jīng)典算法之一,它是通過Krylov子空間矢 量的最小殘量來迭代求解,收斂速度快,穩(wěn)定性好的優(yōu)點(diǎn)。對(duì)線性方程組
【權(quán)利要求】
1. 一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法,其特征在于所應(yīng)用到的硬件包 括CPU端與MIC端,其中:CPU端負(fù)責(zé)數(shù)據(jù)讀取,程序串行部分的計(jì)算,邏輯控制,同時(shí)設(shè)定 內(nèi)核的線程執(zhí)行配置,啟動(dòng)MIC端計(jì)算,并接受MIC端的迭代結(jié)果;MIC端根據(jù)內(nèi)核線程執(zhí) 行配置啟用相應(yīng)的線程對(duì)程序中的并行部分實(shí)施計(jì)算; 所述方法包括如下: (1) 、GMRES算法進(jìn)行并行性分析,定位熱點(diǎn)與性能瓶頸; (2) 、根據(jù)并行性及熱點(diǎn)分析,實(shí)現(xiàn)基于CPU端的OpenMP并行程序版本; (3) 、根據(jù)GMRES算法的特點(diǎn),基于CPU端或者M(jìn)IC端異構(gòu)平臺(tái)進(jìn)行整體任務(wù)分配設(shè)計(jì); (4) 、根據(jù)整體任務(wù)分配設(shè)計(jì),將CPU端的OpenMP版本移植到MIC端。
2. 根據(jù)權(quán)利要求1所述的一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法,其特征 在于所述方法包括如下: (1) 、GMRES算法分為前期預(yù)處理、迭代部分、結(jié)果輸出三大部分,其中迭代部分為 GMRES算法的主體,前期預(yù)處理、結(jié)果輸出部分以I/O操作為主,迭代部分的單次迭代操作 流程主要包括Arnodi正交化、Givens變換求解最小二乘問題及構(gòu)造近似解三部分; (2) 、Arnodi正交化過程進(jìn)行OpenMP并行設(shè)計(jì),Arnodi正交化主要由o(n)階矩陣與向 量相乘、向量內(nèi)積、向量數(shù)乘以及向量減法四種運(yùn)算組成,將四種運(yùn)算作為內(nèi)核函數(shù),基于 OpenMP開啟多線程并行; (3) 、基于內(nèi)容(1),對(duì)CPU端或者M(jìn)IC端異構(gòu)平臺(tái)進(jìn)行整體任務(wù)分配,前期預(yù)處理、 Givens變換求解最小二乘問題、構(gòu)造近似解的串行部分交予CPU端計(jì)算;算法的主體部 分-Arnodi正交化生成子空間的標(biāo)準(zhǔn)正交積同時(shí)生成上Hessenberg矩陣由MIC端計(jì) 算; (4) 、根據(jù)內(nèi)容(1)、(2)、(3),采用以CPU端為主,MIC端為輔的offload模式將程序移 植到MIC端上。
3. 根據(jù)權(quán)利要求1所述的一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法,其特 征在于把數(shù)據(jù)讀取、設(shè)定初始值的預(yù)處理操作以及由低階矩陣、向量運(yùn)算為主的Givens變 換、近似解的構(gòu)造交予CPU端處理,把Arnodi正交化過程利用OpenMP技術(shù)進(jìn)行并行優(yōu)化設(shè) 計(jì),并將程序移植到MIC端;CPU端與MIC端協(xié)同計(jì)算,最終實(shí)現(xiàn)GMRES算法的加速,具體步 驟如下: (1 )、GMRES算法進(jìn)行并行性分析,定位熱點(diǎn)與性能瓶頸: 首先,將GMRES算法分為預(yù)處理、Arnodi正交換生成Krylov子空間與上Hessenberg矩 陣、求解最小二乘問題、構(gòu)造近似解、后處理五部分; 其次,利用較大規(guī)模的線性方程組求解測試; 最后,GMRES算法的熱點(diǎn)與瓶頸為Arnodi正交化過程; 、進(jìn)行并行性及熱點(diǎn)分析: Arnodi正交化過程主要基于〇 (n)階矩陣、向量運(yùn)算,n為大規(guī)模稀疏矩陣的階數(shù),數(shù)量 級(jí)大于1〇7,適合大規(guī)模并行;最小二乘問題求解以及構(gòu)造近似解主要基于〇(m)階矩陣、向 量運(yùn)算,m為Krylov子空間的維數(shù),取值通常為lOLlO2,不適合大規(guī)模并行; 、實(shí)現(xiàn)基于CPU端的OpenMP并行程序版本: Arnodi正交化過程主要由矩陣向量乘、向量內(nèi)積、向量數(shù)量乘法以及向量減四種操作 構(gòu)成;設(shè)置為四個(gè)OpenMP內(nèi)核函數(shù),通過在循環(huán)編譯指導(dǎo)語句對(duì)內(nèi)核函數(shù)并行; (4) 、根據(jù)GMRES算法的特點(diǎn),基于CPU端或者M(jìn)IC端異構(gòu)平臺(tái)進(jìn)行整體任務(wù)分配設(shè)計(jì):GMRES算法整體邏輯結(jié)構(gòu)采用CPU端為1顆CPU,MIC端為1塊MIC卡,CPU負(fù)責(zé)進(jìn)程調(diào) 度、預(yù)處理、求解最小二乘問題、構(gòu)造近似解以及后處理等操作;MIC卡負(fù)責(zé)Arnodi正交化 的過程;CPU開啟1個(gè)進(jìn)程,預(yù)處理操作時(shí)可開啟Nc個(gè)線程,Nc為CPU的核數(shù),0號(hào)線程為 主線程,負(fù)責(zé)CPU多線程的控制、調(diào)度、銷毀以及控制MIC卡的計(jì)算;MIC卡計(jì)算調(diào)用內(nèi)核函 數(shù)時(shí),開啟4* (Nm-1)個(gè)線程,Nm為MIC卡核心數(shù)量,0號(hào)線程為主線程,負(fù)責(zé)MIC線程的調(diào) 度、銷毀操作;當(dāng)Arnodi正交化完成后,MIC端將數(shù)據(jù)傳輸?shù)紺PU端,CPU端開啟Nc個(gè)線程 完成求解最小二乘問題、構(gòu)造近似解以及判斷迭代是否停止操作;從而完成一次完整的迭 代過程; (5) 、根據(jù)整體任務(wù)分配設(shè)計(jì),將CPU端的OpenMP版本移植到MIC端: 采用以CPU端為主,MIC端為輔的offload模式進(jìn)行設(shè)計(jì),當(dāng)程序運(yùn)行到并行內(nèi)核程序 時(shí),CPU端將任務(wù)卸載到MIC端上。
4.根據(jù)權(quán)利要求3所述的一種基于MIC平臺(tái)實(shí)現(xiàn)GMRES算法并行加速的方法,其特征 在于MIC端程序的并行優(yōu)化包括:數(shù)據(jù)傳輸優(yōu)化及內(nèi)核優(yōu)化;其中數(shù)據(jù)傳輸優(yōu)化是為減少 CPU端與MIC端的數(shù)據(jù)傳遞帶來的花費(fèi),采用nocopy的方法來減少不必要的數(shù)據(jù)傳輸;內(nèi) 核優(yōu)化是通過調(diào)節(jié)循環(huán)結(jié)構(gòu)改善內(nèi)核并行度與cache miss對(duì)性能的限制,通過自動(dòng)向量化 方式提生MIC的處理性能。
【文檔編號(hào)】G06F17/10GK104408019SQ201410591315
【公開日】2015年3月11日 申請(qǐng)日期:2014年10月29日 優(yōu)先權(quán)日:2014年10月29日
【發(fā)明者】王明清, 張清, 張廣勇, 吳韶華 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司