顧宗靜 趙勛旺 劉瑩玉 林中朝 張玉 趙玉萍
摘要:基于Intel第二代Xeon Phi代號為Knights Landing(KNL)眾核處理器平臺,利用MPI+OpenMP混合編程策略對并行矩量法(Method of Moments,MoM)進(jìn)行了優(yōu)化.利用OpenMP編程技術(shù)和KNL的計算資源,提高了CPU(center Processing Unit)使用率;線程的引入,大幅度減少了矩陣填充過程中進(jìn)程間的冗余積分;為發(fā)揮KNL的512位矢量寬度優(yōu)勢,通過向量化優(yōu)化進(jìn)一步提高了循環(huán)結(jié)構(gòu)的執(zhí)行效率;對計算密集型、CPU利用率高的矩陣求解過程,通過引入的OpenMP編程策略,減少了MPI(Message Passing Interface)通信時間,加速了求解.數(shù)值結(jié)果表明,通過在KNL眾核處理器平臺上的優(yōu)化,可以極大地提升矩量法計算復(fù)雜電磁問題的效率.
關(guān)鍵詞:眾核處理器;MPI+OpenMP;
并行矩量法;
向量化
中圖分類號:TN820 文獻(xiàn)標(biāo)志碼:A DOI:10.3969/j.issn.1000-5641.2019.01.012
0引言
隨著計算機(jī)技術(shù)的飛速發(fā)展,針對高度并行工作負(fù)載而設(shè)計的一種新型處理器,即眾核處理器,依靠其集成的大量計算單元,展現(xiàn)出強(qiáng)大的數(shù)據(jù)處理能力,在高性能計算領(lǐng)域發(fā)揮著越來越重要的作用.與傳統(tǒng)通用多核處理器相比,眾核處理器具有成本低、功耗小等顯著優(yōu)勢.同時其優(yōu)勢還在于集成的核心數(shù)量超出同期通用多核處理器一個數(shù)量級,在處理計算密集型、數(shù)據(jù)密集型任務(wù)時,例如求解矩量法生成的復(fù)數(shù)稠密矩陣,能夠展現(xiàn)出強(qiáng)大的優(yōu)勢.
近年來,國內(nèi)已有若干利用眾核處理器加速矩量法的文獻(xiàn),并且取得了較好的成果.但是,這些文獻(xiàn)中利用的眾核處理器都是作為協(xié)處理器出現(xiàn)的,如CPU/MIC異構(gòu)并行矩量法的研究,由CPU控制任務(wù)分配和數(shù)據(jù)傳輸,同時也負(fù)責(zé)部分計算任務(wù),將高并發(fā)度的代碼段在MIC(Many Integrated Core)協(xié)處理器執(zhí)行,達(dá)到加速并行矩量法的目的.但是,CPU與MIC協(xié)處理之間的通信都是通過PCI-EfPeripheral Component Interconnect Express)接口實現(xiàn)的,通信速率較慢,限制了計算性能的提升;盡管MIC協(xié)處理器具有獨(dú)立的內(nèi)存和存儲,但容量一般都較小,因此異構(gòu)協(xié)同計算能解決的實際問題受到協(xié)處理器存儲容量的限制.針對上述問題,Intel于2016年推出了全新一代至強(qiáng)融核處理器,代號為“騎士登陸”(KNL),通過消除對PCI-E總線的依賴,提供更高的可擴(kuò)展性,應(yīng)對更廣泛的工作負(fù)載和配置.所以,并行矩量法在KNL眾核處理器平臺上的計算和優(yōu)化具有很高的研究價值.
KNL眾核處理器是Intel首款專門針對高度并行工作負(fù)載而設(shè)計的可獨(dú)立自啟動的主處理器:能效型集成架構(gòu)提供了比類似平臺高得多的單元計算能力,有效減少了計算成本;內(nèi)存和結(jié)構(gòu)的集成最大限度地提升了內(nèi)存容量,并首次實現(xiàn)了內(nèi)存與高速互連技術(shù)的集成,為大規(guī)模并行和矢量化服務(wù)提供了有效平臺.
為了充分利用KNL的眾核計算資源以及發(fā)揮其超寬的矢量寬度優(yōu)勢,本文基于KNL眾核處理器平臺對并行矩量法程序開展了優(yōu)化工作;通過與商業(yè)軟件計算結(jié)果的對比,驗證了優(yōu)化算法的正確性;利用KNL計算集群,仿真了未知量超過20萬的飛機(jī)模型的散射特性,程序優(yōu)化后的性能有較大提升.值得指出的是,并行矩量法在KNL眾核處理器平臺上的計算和優(yōu)化此前尚未見有公開的文獻(xiàn)報道.
1并行矩量法
1.1矩陣填充分析
本文中矩量法采用的基函數(shù)為RWGfRao-Wilton-Glisson)基函數(shù),是現(xiàn)今廣泛使用的一種矩量法基函數(shù),它被定義在具有公共邊的兩個相鄰三角形上,可模擬任意形狀物體的表面電、磁流分布,采用伽遼金方法可得到矩量法矩陣方程
2計算平臺簡介
本文使用的KNL眾核處理器編號為7210(簡稱KNL7210),采用Slivermont的微架構(gòu)和光刻14 am工藝,處理器基本頻率為1.3 GHz,擁有64核,每核支持四線程,即總計256個線程.每個處理器有32個核片,每個核片由兩個核組成,并共享1 MB二級緩存,每個核心內(nèi)搭載兩個512位寬的VPU(Vector Processing Units),可以同時處理8個雙精度浮點(diǎn)或者16個單精度浮點(diǎn)運(yùn)算,超寬的矢量寬度,提高了高度并行計算性能的標(biāo)準(zhǔn).
單個KNL7210能提供超過3 TFlops的雙精度浮點(diǎn)處理性能或大于6 TFlops的單精度浮點(diǎn)處理性能.最大內(nèi)存達(dá)到384 GB,內(nèi)存類型為DDR4-2133,最大內(nèi)存帶寬為102 GB/s,同時集成16 GB高帶寬內(nèi)存-MCDRAM(Multi-Channel DRAM),可為內(nèi)存訪問密集型的工作負(fù)載提供高達(dá)500 GB/s的可持續(xù)高內(nèi)存帶寬.
3優(yōu)化策略分析
3.1向量化優(yōu)化分析
為了充分發(fā)揮KNL7210超寬的矢量寬度優(yōu)勢,進(jìn)一步提高循環(huán)結(jié)構(gòu)的執(zhí)行效率,對公式(2)中的高斯數(shù)值積分過程進(jìn)行向量化優(yōu)化,加速矩陣填充過程.圖3給出了向量化過程的偽代碼.
并行矩量法向量化優(yōu)化前后,利用單個KNL7210,計算未知量為58 652的飛機(jī)模型的散射特性,性能的提升情況如表1所示.
由表1可以得出,向量化后矩陣填充效率提升11.09%.所以,在KNL眾核處理器平臺進(jìn)行向量化優(yōu)化對提升程序效率至關(guān)重要.
3.2 MPI+OpenMP混合編程
根據(jù)前文分析的矩陣填充算法以及存在的問題,綜合考慮實現(xiàn)數(shù)據(jù)的局部性、提高Cache命中率、降低冗余積分計算量以及充分利用KNL7210的計算資源等條件,在MPI進(jìn)程內(nèi)部利用OpenMP共享內(nèi)存的編程方式開啟超線程,獲取最優(yōu)性能.
在該算例中,表2給出了并行矩量法優(yōu)化前后其矩陣填充過程中的總積分次數(shù)和進(jìn)程間產(chǎn)生的冗余積分情況.由表2的數(shù)據(jù)可得,程序優(yōu)化前冗余比例為70.18%,明顯高于優(yōu)化后冗余積分所占比例,這會大大影響矩陣填充的速度.表3列出了并行矩量法優(yōu)化前后各部分的計算時間情況.由表3可以看出,采用4個MPI進(jìn)程、矩陣填充和矩陣求解分別開啟64和16個OpenMP線程時,仿真該模型的效率最佳,比優(yōu)化前加速了2.62倍,其中矩陣填充加速了5.81倍.由于該模型的計算規(guī)模較小,矩陣求解過程的通信時間較短,所以,仿真該模型時矩陣求解過程的加速效果不明顯.
4.2飛機(jī)模型Ⅱ的散射特性
飛機(jī)模型1I的仿真模型如圖7(a)所示,平面入射波頻率為450 MHz(沿機(jī)頭方向),極化方向為垂直極化,計算其雙站RCS.該模型被剖分為151 452個三角形,公共邊個數(shù)為227 178,故阻抗矩陣大小為227 178x227 178.計算得到飛機(jī)的3D雙站RCS如圖7(b)所示.圖8給出了飛機(jī)的xoy面和XOZ面的2D雙站RCS結(jié)果.
表4給出了該算例矩陣填充過程中的總積分次數(shù)和進(jìn)程間產(chǎn)生的冗余積分情況.由表4的數(shù)據(jù)可得,程序優(yōu)化前冗余比例為73.77%,均高于優(yōu)化后冗余積分所占的比例.矩陣求解部分開啟OpenMP線程后,減少了MPI進(jìn)程數(shù);根據(jù)公式(7)得出減少了通信時間,加速了矩陣求解過程.表5列出了并行矩量法優(yōu)化前后各部分的計算時間情況,其中矩陣填充和矩陣求解每個節(jié)點(diǎn)使用4個MPI進(jìn)程、分別開啟64和16個OpenMP線程,可以獲得最優(yōu)性能.該算例中進(jìn)程和線程的最優(yōu)分配策略和上例中的計算資源分配策略一致.所以,本文中的計算資源分配策略對今后矩量法在KNL系列上的優(yōu)化具有重要的借鑒和指導(dǎo)意義.由表5可得,優(yōu)化后矩陣填充速度加速13.27倍,矩陣求解速度加速1.26倍,總的仿真計算速度加速了3.62倍.程序優(yōu)化后在KNL7210集群上的運(yùn)行性能得到了明顯提升.
5結(jié)論
本文基于KNL7210眾核處理器計算平臺,對并行矩量法進(jìn)行了優(yōu)化,通過引入OpenMP共享內(nèi)存的并行編程策略,顯著減少了矩陣填充過程的冗余積分計算量,降低了矩陣求解過程的通信時間,向量化優(yōu)化進(jìn)一步提高了高斯數(shù)值積分過程中循環(huán)結(jié)構(gòu)的執(zhí)行效率.通過對飛機(jī)模型I和飛機(jī)模型II散射特性的仿真分析,驗證了優(yōu)化算法的正確性,并分析了并行矩量法優(yōu)化后其矩陣填充和求解的加速情況.測試結(jié)果表明,基于KNL7210眾核處理器平臺,優(yōu)化后的并行矩量法各部分計算均有較好的性能提升,對后續(xù)在KNL系列平臺開展矩量法研究和優(yōu)化,解決更多具有實際意義的電磁問題奠定了基礎(chǔ).