999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向異構(gòu)計算的高性能計算算法與軟件?

2021-11-09 02:45:24姜金榮遲學(xué)斌
軟件學(xué)報 2021年8期

徐 順 ,王 武 ,張 鑒 ,姜金榮 ,金 鐘,3 ,遲學(xué)斌

1(中國科學(xué)院 計算機網(wǎng)絡(luò)信息中心,北京 100190)

2(中國科學(xué)院 計算科學(xué)應(yīng)用研究中心,北京 100190)

3(廣東省生物醫(yī)藥計算重點實驗室(中國科學(xué)院 廣州生物醫(yī)藥與健康研究院),廣東 廣州 510530)

高性能計算應(yīng)用對國家工業(yè)、國家安全、生命健康和科學(xué)發(fā)現(xiàn)均具有重要的作用.作為信息科技政策制定咨詢權(quán)威組織,美國信息技術(shù)與創(chuàng)新基金會(Information Technology and Innovation Foundation,簡稱ITIF)早在2016 年就作了題為《高性能計算對美國競爭力至關(guān)重要》[1]的專題分析報告.近年來,我國也探索出了“天河”、“神威”和“曙光”三大國產(chǎn)高性能計算機的發(fā)展之路,均具備自主研制高性能處理器和加速器的能力;同時也計劃在2020~2021 年前后設(shè)計實現(xiàn)E 級(每秒百億億次浮點運算)計算機,在全球高性能計算性能Top500 排行榜上[2],可看到國產(chǎn)超級計算機性能處于全球前列水平.但不難看出,我國超算系統(tǒng)軟件和應(yīng)用軟件的研發(fā)步調(diào)相對落后,國產(chǎn)超算上的軟件生態(tài)沒有同步形成[3].一個客觀的困難是:國際上主流基于Intel x86 或Nvidia GPU 的科學(xué)計算軟件無法直接在部分國產(chǎn)超算上編譯運行,特別是面向異構(gòu)計算加速這方面,需要有大量的移植適配工作.對于神威超算這種特殊的主從核架構(gòu),大部分軟件需要修改甚至重寫以實現(xiàn)從核加速計算.

盡管高性能計算可應(yīng)用于工業(yè)、國防、生命健康等諸多領(lǐng)域,但這些應(yīng)用主要以科學(xué)計算為基礎(chǔ).隨著計算機軟硬件技術(shù)的高速發(fā)展,特別是對稱處理器核數(shù)、內(nèi)存容量、網(wǎng)絡(luò)帶寬的提升引發(fā)(并行)計算算法需要考慮新的平衡因素,促使在科學(xué)計算與數(shù)值模擬應(yīng)用方面提出了大量新的軟件架構(gòu)和理論算法.比如在高能物理領(lǐng)域,形成了美國USQCD[4]和MILC[5]、英國Grid[6]和日本Bridge++軟件等諸多代表性的格點量子色動力學(xué)(quantum chromodynamics,簡稱QCD)模擬軟件,這些軟件形成了自身特色的軟件架構(gòu),或者是面向特定體系結(jié)構(gòu)而優(yōu)化設(shè)計的.特別是USQCD 的Chroma 軟件構(gòu)建了一套多層次、松耦合的軟件架構(gòu)體系,取得了有效整合軟件模塊和增強硬件適應(yīng)性的顯著效果;他們也開發(fā)了基于GPU 加速計算的軟件包QUDA[7],充分利用了GPU異構(gòu)計算的優(yōu)勢.在分子模擬應(yīng)用領(lǐng)域,LAMMPS[8]和NAMD[9]軟件為代表的應(yīng)用軟件在高性能計算方面具有顯著的性能優(yōu)勢,但它們的軟件架構(gòu)完成不同,而兩者都具有代表性.LAMMPS 是典型的MPI 分布式并行程序,具有非常強的軟件功能和計算性能的可擴展性;NAMD 更是采用Charm++并行計算框架支持新的并行編程模式,數(shù)據(jù)通信采用遠程對象的函數(shù)調(diào)用方式實現(xiàn).此外,兼?zhèn)淞孔佑嬎慊瘜W(xué)研究的NWChem[10]軟件引入了Global Arrays 并行計算框架來支撐計算化學(xué)類的特殊問題,更多的是考慮高可伸縮的計算化學(xué)算法使用傳統(tǒng)的消息傳遞通信模型很繁瑣,而使用可移植共享內(nèi)存編程模型更簡便[11].以上這些高性能計算典型應(yīng)用軟件不僅著眼于科學(xué)問題的研究,而且通過其成功的應(yīng)用大大推動了高性能計算應(yīng)用技術(shù)的發(fā)展,在高性能異構(gòu)計算方面取得了諸多理論和應(yīng)用成果.比如格點QCD 應(yīng)用和NAMD 軟件均獲得過高性能計算應(yīng)用領(lǐng)域重要的“戈登?貝爾”獎(Gordon Bell Prize,簡稱GB 獎).美國的E 級計算計劃(Exascale Computing Project,簡稱ECP)[12]中均毫無懸念地將這些軟件作為重點發(fā)展的對象.

相形之下,我國在相關(guān)的科學(xué)計算應(yīng)用領(lǐng)域的自研程序代碼普遍依托于相應(yīng)領(lǐng)域的課題組開發(fā)和繼承、大多是以科學(xué)問題研究為主,缺乏專業(yè)的開發(fā)人員來維護軟件.更是缺乏前瞻性的軟件頂層設(shè)計,也難以形成規(guī)?;目赏茝V使用的軟件成果,軟件的并行計算性能更是難以保證.近年來,GPU 異構(gòu)計算和國產(chǎn)自主處理器的興起使得軟件框架和軟件模塊不斷推陳出新,導(dǎo)致軟件程序無法跟上硬件架構(gòu)和軟件應(yīng)用環(huán)境快速發(fā)展的腳步,并行計算設(shè)計優(yōu)化加大了困難.慶幸的是,莫則堯團隊針對以上問題探索出了一條創(chuàng)新的技術(shù)路徑.其基本方法是凝練數(shù)值模擬應(yīng)用領(lǐng)域的共性需求來建模,并設(shè)計模型驅(qū)動的并行算法和采用了并行編程技術(shù)[13].他們提出了面向結(jié)構(gòu)網(wǎng)格和非結(jié)構(gòu)網(wǎng)格的標(biāo)準(zhǔn)化網(wǎng)格數(shù)據(jù)模型,分別開發(fā)了結(jié)構(gòu)網(wǎng)格的編程框架JASMIN[14]和非結(jié)構(gòu)網(wǎng)格的編程框架JAUMIN[15],均一定程度支持并行算法和并行編程的軟件復(fù)用.雖然我國科學(xué)計算軟件的開發(fā)積累了不少經(jīng)驗,但從串行程序到大規(guī)模并行程序、從算法程序到軟件產(chǎn)品還有相當(dāng)長的道路要走.從《國家高性能計算環(huán)境發(fā)展報告》[16]可得,在我國各大超級計算中心的超級計算系統(tǒng)上所運行應(yīng)用軟件大部分來自國外,一旦出現(xiàn)“斷供”,我國計算科學(xué)研究即顯現(xiàn)出被“卡脖子”的被動局面.

因此,為了發(fā)展國產(chǎn)超級計算系統(tǒng)的應(yīng)用生態(tài)并適應(yīng)未來E 級計算的需求,融合國際主流軟件的優(yōu)點并實現(xiàn)支撐科學(xué)計算應(yīng)用研究的最終目的,非常有必要梳理適配國產(chǎn)高性能計算系統(tǒng)的科學(xué)計算應(yīng)用軟件的發(fā)展情況.本文將從高性能計算應(yīng)用算法和軟件的角度,闡述一些典型應(yīng)用軟件核心算法的并行計算特征,并討論面對國產(chǎn)異構(gòu)系統(tǒng)的算法對策及其發(fā)展思路.

1 典型高性能計算應(yīng)用的核心算法與軟件特征

高性能計算應(yīng)用軟件種類眾多,不可能一一羅列.現(xiàn)以美國國家能源研究科學(xué)計算中心(National Energy Research Scientific Computing Center,簡稱NERSC)的計算資源使用情況作為代表來分類.NERSC 是美國能源部科學(xué)局的旗艦科學(xué)計算單位,在通過計算加速科學(xué)發(fā)現(xiàn)的領(lǐng)域處于世界領(lǐng)先地位.圖1 是2018 年NERSC 超級計算機時使用量按學(xué)科分布圖(數(shù)據(jù)來源:https://www.nersc.gov/assets/Uploads/2018NERSCAnnualReport.pdf),可見其超算應(yīng)用主要集中在地球與環(huán)境、化學(xué)、材料科學(xué)、高能物理、天文/宇宙學(xué)等學(xué)科領(lǐng)域.

Fig.1 Usage amount in subjects on NERSC supercomputer in 2018圖1 2018 年NERSC 超級計算機按學(xué)科分的使用量

本文也大致選擇以上主要計算應(yīng)用領(lǐng)域來討論其中的應(yīng)用軟件核心算法和軟件特征.這些領(lǐng)域的研究對象具有不同的計算問題研究尺度,按尺度量級從大到小排序見表1.“計算模擬”較“實驗”和“理論”兩大科學(xué)研究手段有很多優(yōu)勢:可以對不同尺度問題建模,可以對不同數(shù)據(jù)維度建模,也可以對確定性問題(如偏微分方程)或非確定性問題(如概率統(tǒng)計問題)建模.以下列舉的幾大類領(lǐng)域應(yīng)用將說明相關(guān)的建模方式.

Table 1 Scale size of different scientific subjects表1 不同科學(xué)研究對象的尺度大小

1.1 宇宙N體模擬

N 體問題又稱“多體問題”,兼具數(shù)據(jù)密集和計算密集的特點,是物理科學(xué)高端模擬中7 個主要問題之一[17].此類問題在天體物理學(xué)、分子動力學(xué)等領(lǐng)域處于核心的地位.天文學(xué)的一些關(guān)鍵現(xiàn)象(如星系成團及演化、暗物質(zhì)暈等)需采用大尺度、高解析度的大規(guī)模N 體模擬結(jié)果來解釋和指導(dǎo)天文觀測;宇宙模型和理論也通過計算結(jié)果得以驗證和完善.隨著先進快速算法和高性能計算技術(shù)發(fā)展,萬億量級規(guī)模N 體問題的高效大規(guī)模并行計算模擬已成為可能.

基于樹遍歷的算法如快速多極子方法(fast multipole method,簡稱FMM),不僅具有近似線性的復(fù)雜度和較高的精度,而且適合并行.其中短程力的求解具有計算密集的特征,可有效利用高性能異構(gòu)平臺加速器件(如GPU、MIC 或眾核處理器等)的超強計算能力.基于快速傅里葉變換(fast Fourier transform,簡稱FFT)的粒子網(wǎng)格方法(particle-mesh method,簡稱PM)雖速度更快,但由于受限于精度,只適用于計算長程力,而且將帶來全局通信.為兼顧計算速度和精度,重疊短程力的計算與長程力的通信,混合算法成為高性能并行N 體模擬的主流[18,19].如圖2 所示,虛線內(nèi)為FMM 計算區(qū)域,其中粒子間的短程力相互作用(P2P)占FMM 計算時間的90%以上,適合在加速卡上實現(xiàn);虛線外的區(qū)域采用PM 計算長程力,可在CPU端調(diào)用FFT 實現(xiàn).

Fig.2 A schematic diagram of FMM-PM algorithm圖2 FMM-PM算法示意圖

中國科學(xué)院國家天文臺和計算機網(wǎng)絡(luò)信息中心團隊合作,在國產(chǎn)高性能異構(gòu)計算平臺上采用FMM 與PM耦合算法實現(xiàn)了大規(guī)模的N 體問題高效并行模擬.計算的并行效率達80%,浮點峰值效率達30%以上,為實現(xiàn)更高分辨率的超大規(guī)模天文應(yīng)用模擬奠定了基礎(chǔ).

1.2 大氣與地球系統(tǒng)模式

大氣與地球系統(tǒng)模式中,Stencil 計算是核心算法,也是物理科學(xué)高端模擬中7 個主要問題之一[17]并廣泛存在與科學(xué)與工程計算中.Stencil 計算(如圖3 所示)絕大部分是訪存密集型計算,計算訪存比低,主存帶寬受限嚴(yán)重[20].已經(jīng)有很多 Stencil 計算優(yōu)化方面的工作:如 Strumpen 等人[21]利用時間局部性優(yōu)化三級存儲系統(tǒng);Micikevicus 等提出了GPU 平臺上的高階Stencil 優(yōu)化方法.此外,也有一些基于Stencil 計算的應(yīng)用在國產(chǎn)機器上的移植優(yōu)化工作,如Fu 等人[22]將大氣模式CAM 和大型非線性地震模擬系統(tǒng)移植到“神威·太湖之光”超級計算機上.

與大氣模式CAM 類似,中國科學(xué)院地球系統(tǒng)模式中的有限差分Stencil 計算的運行時間占比超過90%,但是其浮點計算效率僅有不到5%.而且這些Stencil 計算包含更多更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),Stencil 的種類和差分格式、算法求解過程和特點也各不相同.其主要特點有:通信和同步多、復(fù)雜計算多、變量多而計算網(wǎng)格點少、計算訪存比和主存帶寬受限問題更突出.這對當(dāng)前的國產(chǎn)并行計算平臺的計算和訪存能力提出了新需求.而在高性能計算機普遍采用異構(gòu)架構(gòu)的當(dāng)下,性能調(diào)優(yōu)顯得尤其重要.代碼的移植優(yōu)化工作是一項具有挑戰(zhàn)性的工作.主要的優(yōu)化策略有:通過通信優(yōu)化手段減少通信占比,提高程序的可擴展性;通過計算子區(qū)域規(guī)模劃分,調(diào)節(jié)計算資源和高速寄存器及緩存使用率,達到較好的均衡;通過改進算法或算法實現(xiàn),減少數(shù)據(jù)依賴和分支計算,提高數(shù)據(jù)訪問連續(xù)性和cache 命中率;提高程序的向量化率等.

Fig.3 Discrete structure in Stencil computation圖3 Stencil 計算的離散結(jié)構(gòu)

1.3 相場模擬微結(jié)構(gòu)演化

合金材料的微觀組織對材料的諸多性能起到?jīng)Q定性的影響,因此深入研究其微觀組織的演化機理具有重要的意義.相場方法是模擬合金材料微觀組織演化的主要手段,主要通過求解關(guān)于相場、成分場等變量的一組偏微分方程來進行微組織演化過程的模擬.方程具有強剛性和強非線性的特點,大體系長時間的模擬是非常具有挑戰(zhàn)性的課題.傳統(tǒng)的有限差分顯式算法雖可在當(dāng)代高性能計算平臺上有較高效的實現(xiàn)[23],但由于時間步長受到算法穩(wěn)定性條件的限制而無法滿足長時間模擬的需求.而隱格式的設(shè)計則面臨著相場模型方程強非線性以及相應(yīng)的大規(guī)模線性和非線性代數(shù)方程組并行求解等問題.中國科學(xué)院計算機網(wǎng)絡(luò)信息中心和金屬研究所團隊合作,針對國產(chǎn)異構(gòu)高性能計算平臺設(shè)計了可擴展指數(shù)時間差分算法,可高效地進行相場模型的大體系長時間模擬.2016 年在“神威·太湖之光”超級計算機上使用全機約1 000 萬計算核心實現(xiàn)了持續(xù)性能為50 PFLOPS(每秒5 億億次浮點運算)的超大規(guī)模相場模擬[24].基于“神威”超級計算機的“申威”處理器的主從核架構(gòu),數(shù)據(jù)通信使用主核DMA 方式,而七點Stencil 計算則在從核上計算.最終應(yīng)用測試(如圖4 所示)的并行效率達到70%,浮點性能達到峰值的41%,遠超同類的計算軟件.

Fig.4 Configuration coarsening evolution of two-phase system governed by the Cahn-Hilliard equation圖4 兩相體系由Cahn-Hilliard 方程控制在粗化過程中的構(gòu)型演化

1.4 分子動力學(xué)模擬

分子動力學(xué)模擬(molecular dynamics,簡稱MD)是在原子水平上利用經(jīng)典牛頓力學(xué)方程研究分子狀態(tài)的計算機模擬方法[25].隨著計算機計算能力的提高,可實現(xiàn)全原子模型的動力學(xué)模擬,在原子結(jié)構(gòu)層次揭示某些現(xiàn)象隨時間的發(fā)展過程,已廣泛應(yīng)用于計算化學(xué)、生物化學(xué)、納米材料和藥物分子設(shè)計等領(lǐng)域.

分子動力學(xué)模擬的計算核心在于力場的計算,具體可細分為長程作用力計算、短程力計算與近鄰列表的計算、成鍵作用力計算等多種形式;除了核心的力場計算,還存在著一些物理系統(tǒng)約束需要實現(xiàn),比如分子結(jié)構(gòu)約束方法SHAKE 和LINCS、周期性邊界條件和統(tǒng)計系綜理論約束等.加速分子動力學(xué)模擬,在方法上可采用增強抽樣算法,在實現(xiàn)上則可借助大規(guī)模并行計算.在并行計算時任務(wù)劃分常采用體系空間分解法,可采用MPI+X的多級并行計算設(shè)計,其中X 可為多核CPU 計算或GPU 異構(gòu)計算等形式.比如美國能源部主導(dǎo)開發(fā)的MD 軟件LAMMPS(large-scale atomic/molecular massively parallel simulator),可利用多核CPU、GPU 和Intel Xeon Phi等多種方式加速其計算性能.該軟件提供了GPU package 和KOKKOS package 可利用GPU 部件加速計算,使用MPI 計算任務(wù)下的GPU 任務(wù)offload 工作方式[26].這種方式將計算密集性任務(wù)交給GPU 來計算完成,并獲得返回結(jié)果,充分利用了異構(gòu)計算環(huán)境來提高并行效率.結(jié)合區(qū)域空間分解和MPI 并行技術(shù),可進行數(shù)萬核以上的超大規(guī)模并行計算.GPU 作為異構(gòu)計算設(shè)備用來加速分子動力學(xué)模擬的一種實現(xiàn)流程如圖5 所示,不同軟件在實現(xiàn)上可能存在差異,但基本用于加速分子作用力計算以及相關(guān)的近鄰列表構(gòu)建等計算密集型任務(wù).

Fig.5 A flowchart for an implementation of GPU accelerated molecular dynamics simulation[27]圖5 一種實現(xiàn)GPU 加速分子動力學(xué)模擬的流程圖[27]

1.5 量子化學(xué)

量子化學(xué)源自理論化學(xué),應(yīng)用量子力學(xué)的基本原理和方法來研究化學(xué)問題.經(jīng)過多年的發(fā)展,已經(jīng)有多種量子化學(xué)計算軟件被開發(fā)出來.科學(xué)家們用這些工具計算和求解分子結(jié)構(gòu)問題,不斷地擴大其可解問題的深度和廣度.

自洽場(self-consistent field,簡稱SCF)迭代計算是量子化學(xué)計算軟件的核心方法.它主要包括計算雙電子積分、構(gòu)造Fock 矩陣和求解廣義特征值方程,兼具計算密集型和訪存密集型的特點.計算雙電子積分一般采用解析的方法,是計算密集型的,計算量與體系大小的4 次方成正比.在引入了prescreening 方法后,可以有效降低積分計算的scaling,同時利用分子劃片的方法,可以得到近似線性的scaling 結(jié)果.構(gòu)造Fock 矩陣是訪存密集型的,有大量的隨機不連續(xù)訪存.如何協(xié)調(diào)處理計算積分和構(gòu)造矩陣是異構(gòu)優(yōu)化自洽場計算的難點.2008年,Yasuda[28]首先提出利用GPU 計算雙電子積分.同年利用積分公式自動展開的方法將積分的計算轉(zhuǎn)化為適合GPU 運行的方式,取得了較好的結(jié)果.后來,Ufimtsev 等人[29,30]提出了預(yù)先排序的方法,實現(xiàn)了在GPU 上構(gòu)造Fock 矩陣(如圖6 所示).盡管算法相對于傳統(tǒng)的CPU算法在計算量上有一定的損失,但仍然取得了近百倍的加速效果(相對于1 個CPU 核).

Fig.6 A flowchart of GPU accelerated SCF calculation圖6 GPU 加速SCF 計算流程圖

后自洽場(post-SCF)計算在提高量子化學(xué)計算結(jié)果精度和研究前沿科學(xué)問題上有著非常重要的作用.作為多參考方法起點的多組態(tài)(multi-configurational)自洽場的計算熱點非常類似Hartree-Fock 的計算,區(qū)別之處是在多組態(tài)自洽場使用的積分常為分子軌道下的積分,自洽迭代過程中積分的多個指標(biāo)需要進行持續(xù)的變換操作.此部分計算同樣兼具訪存密集型和計算密集型的特點.基于多行列式的微擾計算則是成功地實現(xiàn)了GPU 加速,極具代表性的有NWchem 軟件中的CCSD(T)方法.該法中的CCSD 計算復(fù)雜,由CPU 處理;后續(xù)基于CCSD波函數(shù)的微擾計算(即T 部分)則交由計算能力較強的GPU 來實現(xiàn),需針對偶合簇波函數(shù)中的每一個行列式表示的系數(shù)進行微擾校正,計算熱點為密度矩陣同電子積分的乘積運算.

1.6 格點量子色動力學(xué)

量子色動力學(xué)(即QCD)是一種強相互作用的規(guī)范理論,它和電弱統(tǒng)一理論(EW)通稱為標(biāo)準(zhǔn)模型,是高能物理研究的基本理論體系.QCD 描述了組成強作用粒子(強子)的夸克和與色量子數(shù)相聯(lián)系的規(guī)范場的相互作用,可統(tǒng)一地描述強子的結(jié)構(gòu)和它們之間的強相互作用,被認為是有希望的強作用基本理論.格點量子色動力學(xué)(格點QCD)是從第一性原理出發(fā)的研究QCD 的非微擾方法[31],對于高能物理中的重大物理問題,如夸克禁閉、宇宙早期演化、標(biāo)準(zhǔn)模型精確檢驗及超出標(biāo)準(zhǔn)模型新物理需尋找等研究有不可替代的作用.格點QCD 方法的計算模擬過程對高性能計算資源需求巨大,其計算過程體現(xiàn)出計算密集型特征,而其數(shù)據(jù)分析則體現(xiàn)出數(shù)據(jù)密集型特征.計算精度和數(shù)據(jù)分析效率直接反映了格點QCD 計算方法的應(yīng)用水平.大規(guī)模計算應(yīng)用中通常采用空間區(qū)域分解的并行計算方式(如圖7 所示),格點子區(qū)域上的計算任務(wù)分配到不同的處理器上計算,各處理器核負責(zé)格點邊界上的數(shù)據(jù)通信,總體上使得數(shù)值模擬計算具有高可并行性和高可擴展性等特點,是高性能科學(xué)計算的典型應(yīng)用領(lǐng)域[32],曾獲得1988、1998、2006 年的Gordon Bell 獎,2018 年也入圍該獎項的決賽[33].

Fig.7 A schematic diagram of domain decomposition in parallel computing lattice QCD圖7 格點QCD 區(qū)域劃分并行計算示意圖

在格點QCD 軟件設(shè)計上,抽象分層軟件架構(gòu)的設(shè)計方法得到了重要應(yīng)用,比如美國的USQCD 軟件框架分為4 層:最上層應(yīng)用層包括Chroma,之下3 層為支撐庫層,分別進行消息通信、數(shù)據(jù)結(jié)構(gòu)定義和基本算法實現(xiàn).再如英國的Grid 軟件[6]也是抽象了數(shù)據(jù)并行計算模型,針對格點QCD 的熱點計算抽象了統(tǒng)一的數(shù)據(jù)并行模型,支持多種平臺的SIMD 矢量化計算,如AVX2 和AVX512 等形式.這種數(shù)據(jù)并行模型可以有效支撐上層應(yīng)用的開發(fā),保證較高的高性能計算效率.軟件框架的這種分層抽象的設(shè)計方法極大地提高了代碼的開發(fā)效率和運行效率,大大地促進了整個格點QCD 研究領(lǐng)域的高速發(fā)展.針對異構(gòu)計算環(huán)境,美國為主的團隊開發(fā)了針對GPU加速的格點QCD 軟件包QUDA,軟件包主要采用C++模版類支持不同數(shù)據(jù)類型的加速計算,已在美國Summit超級計算機上實現(xiàn)大規(guī)模GPU 加速的格點QCD 計算,取得了顯著的加速效果.基于CUDA 設(shè)計的QUDA 軟件如要移植到曙光國產(chǎn)超算平臺,需要經(jīng)過轉(zhuǎn)碼為ROCm 支持的HIP 代碼形式.

2 共性問題的提煉及解決對策

2.1 共性算法

2004 年著名高性能計算專家Colella[17]從計算物理問題中提出了科學(xué)計算的7 種算法模型,即結(jié)構(gòu)性網(wǎng)格、非結(jié)構(gòu)性網(wǎng)格、快速傅里葉變換(FFT)、稠密線性代數(shù)(dense linear algebra)、稀疏線性代數(shù)(sparse linear algebra)、粒子動力學(xué)(particles)、蒙特卡洛(Monte Carlo).這7 種算法模型還可以進一步歸類為求解數(shù)值微分法方程類和求解數(shù)值線性代數(shù)類,實現(xiàn)形式上有顯性計算方式和隱性計算方式.這些核心的共性計算模型對高性能計算機提出了不同方面和層次的需求,也基本覆蓋了常見高性能計算應(yīng)用.如N 粒子相互作用中等設(shè)計FFT計算長程相互作用,粒子動力學(xué)是一個微分方程的求解,格點QCD 計算也會涉及大量的線性系統(tǒng)求解,通常為千萬到億級矩陣維度的巨大計算量,同時存在海量3x3 低維向量矩陣乘法.提煉以上共性算法特征,有利于集中研發(fā)力量開發(fā)可共享使用的軟件算法包;也有利于突破計算關(guān)鍵技術(shù)問題,提高高性能計算軟件研發(fā)的效率.

國產(chǎn)軟件編程框架JASMIN[14]和JAUMIN[15]核心正是從共性算法提煉出發(fā),對大量物理模型計算問題進行抽象和提煉共性特征,形成編程框架的核心.編程框架底層以網(wǎng)格數(shù)據(jù)模型為基礎(chǔ),提供數(shù)值算法構(gòu)件,中間層實現(xiàn)并行計算模式和負載平衡建模,頂層為數(shù)值代數(shù)解法器庫或者獨立于編程框架的第三方解法器庫接口.

2.2 浮點計算精度

不論何種科學(xué)計算應(yīng)用,浮點計算精度的問題均扮演著重要的角色.從應(yīng)用問題的角度來看,數(shù)值結(jié)果精度往往越高越好,但高精度浮點計算較低精度浮點計算需要更多的時間.一般64 位的雙精度計算所需時間是32位的單精度浮點計算時間的兩倍,因此常常遇到在高精度和高計算性能之間的取舍問題.高低精度混合計算是一般的處理方式,但大型科學(xué)計算模擬中浮點運算過程非常復(fù)雜,很難從理論上推導(dǎo)出合理的精度位,不得不憑經(jīng)驗判斷,但這不可靠更不科學(xué).一個相對科學(xué)的方式是先評估科學(xué)計算應(yīng)用算法中最少需要多少位數(shù)值有效位數(shù),而這個有效位數(shù)能滿足對結(jié)果需求精度.這可以借助軟件工具Verificarlo[34]來推算出計算算法中保持結(jié)果所需的最低有效位,然后選擇相匹配的浮點數(shù)表示精度.另外,在某些體系結(jié)構(gòu)支持多個低精度浮點拼湊為高精度浮點的運算,但這增加了算法實現(xiàn)的復(fù)雜度.在通用處理器中一般只提供浮點精度計算,對應(yīng)于C 語言中的double 和float 精度;而專用FPGA 加速模塊卻可以自定義浮點計算精度;最近的Nvidia GPU 也支持半精度的運算.科學(xué)計算中浮點運算追求的目標(biāo)之一是所謂的“高準(zhǔn)確率低精度(high-accuracy low-precision,簡稱HALP)”[35].

2.3 海量數(shù)據(jù)存儲及可視化

高性能計算應(yīng)用在大規(guī)模模擬中,往往會遇到大量數(shù)據(jù)存儲的問題.比如分子模擬常規(guī)100 萬原子體系中,每個原子單精度浮點數(shù)僅存儲三維的速度和位移數(shù)據(jù),大約需要24MB 存儲空間,如果需要1 萬幀軌跡數(shù)據(jù)則需要240GB 文件,如果再需要不同溫度和壓強的組合條件下的軌跡數(shù)據(jù),對存儲空間需求劇增.另外,數(shù)據(jù)格式在異構(gòu)系統(tǒng)上不兼容,直接數(shù)據(jù)傳輸存儲會產(chǎn)生問題.當(dāng)前可以借助專門的HDF(hierarchical data format)文件格式接口來避免,它可存儲不同類型的圖像和數(shù)碼數(shù)據(jù)的文件格式,并可在不同類型的機器上傳輸,同時還有統(tǒng)一處理這種文件格式的函數(shù)庫.

數(shù)值模擬數(shù)據(jù)的可視化特點見表2,數(shù)據(jù)源可以按網(wǎng)格特征進行劃分,數(shù)據(jù)的可視化也具有一般的流程.大規(guī)模數(shù)值模擬數(shù)據(jù)對其可視化也帶來了困難,主要體現(xiàn)在空間表示和空間存儲方面.比如粒子數(shù)超過了32 位整數(shù)可表示的范圍可能導(dǎo)致軟件崩潰,渲染時GPU 顯存一次性無法容納一個數(shù)據(jù)文件時,導(dǎo)致數(shù)據(jù)分批導(dǎo)入顯存,增加了算法的復(fù)雜度也往往降低了計算性能.

Table 2 Visualization features in numerical simulation表2 數(shù)值模擬數(shù)據(jù)可視化特點

2.4 軟件框架設(shè)計

軟件框架決定了軟件的生命力,其最主要特征是軟件功能的適應(yīng)性,具體包括理論建模支撐、計算模塊、邏輯流程控制和數(shù)據(jù)分析等模塊.隨著計算機硬件特性和軟件編程語言的發(fā)展,許多科學(xué)計算軟件已不能很好地適應(yīng)應(yīng)用需求,大部分問題是軟件的原框架受到?jīng)_擊導(dǎo)致的.如原有程序采用Fortran 語言編寫,后來為了適應(yīng)新的運行環(huán)境改用C++實現(xiàn)大規(guī)模設(shè)計,又需要新的C++11 改進編程效率,導(dǎo)致軟件框架不穩(wěn)定.其次早期采用OpenMP 為主的多CPU 核計算模型,需要轉(zhuǎn)為異構(gòu)OpenCL 計算模式;另外由于新的加速設(shè)備,原來的CUDA 程序可能需要改造為OpenACC 并行編程方式.以上問題在高性能計算軟件的設(shè)計中普遍存在,內(nèi)在原因為軟件并行計算模式較多,硬件體系結(jié)構(gòu)差異大.

對于高性能計算軟件來說,優(yōu)秀的軟件框架可提高編程開發(fā)效率,適應(yīng)新的軟件需求和用戶服務(wù)推廣.如何以不變的設(shè)計原則應(yīng)對多變的軟件需求是一個關(guān)鍵問題.對于軟件框架來說,分層式設(shè)計常用方式如通用并行軟件JASMIN 和格點QCD 應(yīng)用軟件Chroma.但從異構(gòu)計算這方面考慮,面向異構(gòu)計算環(huán)境有機統(tǒng)一計算模擬的各方面是根本性解決問題,如統(tǒng)一處理器核計算、主存和加速內(nèi)存管理和網(wǎng)絡(luò)通信等三大模塊,屏蔽異構(gòu)計算帶來的差異性可以使上層軟件設(shè)計保持不變性;當(dāng)前Khronos 組織發(fā)表的SYCL 規(guī)范[36]和Intel oneAPI[37]正在建立面向異構(gòu)計算環(huán)境的統(tǒng)一編程接口,SYCL 底層基于OpenCL 跨平臺異構(gòu)API 規(guī)范,基于SYCL 的DPC++作為Intel oneAPI 的主體,已經(jīng)實現(xiàn)了Intel GPU 和Nvidia GPU 的異構(gòu)加速計算;針對AMD GPU 常用選擇ROCm 框架下的HIP 編程方式,而HIP 實際上能夠兼容CUDA 在Nvidia GPU 上編譯運行,另外,值得注意的是,基于HIP 也可以實現(xiàn)SYCL 統(tǒng)一規(guī)范[38].

3 總結(jié)

本文基于高性能計算應(yīng)用軟件的現(xiàn)狀趨勢,對宇宙N 體模擬、大氣與地球系統(tǒng)模式、計算材料相場動力學(xué)、分子動力學(xué)、量子計算化學(xué)和格點量子色力學(xué)等應(yīng)用開展了并行計算特征分析,提煉了應(yīng)用的典型算法和軟件的共性問題,并開展了解決的對策討論.

在國產(chǎn)異構(gòu)計算高性能計算環(huán)境下,由于國產(chǎn)架構(gòu)不同于主流的體系架構(gòu),其算法實現(xiàn)和軟件設(shè)計有很大差異.另外我國自主的硬件體系架構(gòu)設(shè)計起步較晚,所構(gòu)建的軟件生態(tài)環(huán)境包括系統(tǒng)工具和程序調(diào)試工具等等還遠不成熟,給應(yīng)用程序開發(fā)團隊開發(fā)程序增加了現(xiàn)實難度.為了有效開展基于國產(chǎn)高性能異構(gòu)計算算法和軟件設(shè)計,現(xiàn)給出兩點發(fā)展建議:

(1) 盡快建立我國高性能計算的統(tǒng)一軟硬件標(biāo)準(zhǔn).可從指令集、API 接口、軟件架構(gòu)、網(wǎng)格環(huán)境對接等方面建立統(tǒng)一規(guī)范.

(2) 兼容已有國際主流標(biāo)準(zhǔn)并積極參與國際規(guī)范標(biāo)準(zhǔn)的制定,提高國產(chǎn)超級計算平臺與開源軟件的兼容性.

主站蜘蛛池模板: 国产成熟女人性满足视频| 亚洲精品在线影院| 40岁成熟女人牲交片免费| 谁有在线观看日韩亚洲最新视频| 日韩免费中文字幕| 国产精品精品视频| 日韩东京热无码人妻| 99久久国产自偷自偷免费一区| 偷拍久久网| 九色视频最新网址| 喷潮白浆直流在线播放| 丁香六月激情综合| 亚洲精品欧美日本中文字幕| 91国内在线视频| 欧美成人精品一级在线观看| 亚洲av日韩av制服丝袜| 亚洲欧洲日韩综合色天使| 国产成人一区二区| 成年人久久黄色网站| 久久综合九色综合97网| 亚洲av无码专区久久蜜芽| 国产精品久线在线观看| 免费视频在线2021入口| 国产亚洲精品自在久久不卡| 野花国产精品入口| 亚洲第一天堂无码专区| 日本三级精品| 欧美亚洲网| 亚洲视频免费在线| 真人免费一级毛片一区二区| 2022国产91精品久久久久久| 日韩经典精品无码一区二区| 在线观看国产一区二区三区99| 色综合色国产热无码一| 日韩毛片免费| 欧美无专区| 91蜜芽尤物福利在线观看| 国产欧美日韩另类| 国产小视频免费观看| 国产一区二区三区免费| 国产麻豆aⅴ精品无码| 久久精品女人天堂aaa| 99re66精品视频在线观看| 欧美v在线| 精品福利一区二区免费视频| 欧美另类视频一区二区三区| h视频在线播放| 久久精品波多野结衣| 热久久综合这里只有精品电影| 国产成人综合久久| 国产欧美视频综合二区| 国产经典免费播放视频| 色亚洲成人| 亚洲欧洲一区二区三区| 亚洲天堂免费在线视频| 精品国产成人av免费| 91无码人妻精品一区二区蜜桃| 秘书高跟黑色丝袜国产91在线| 91福利一区二区三区| 91在线播放国产| 国产原创演绎剧情有字幕的| 精品视频免费在线| 国产v精品成人免费视频71pao | 精品国产Av电影无码久久久| 国产精品欧美日本韩免费一区二区三区不卡| 中文精品久久久久国产网址| 奇米精品一区二区三区在线观看| 国产精品微拍| 五月综合色婷婷| 亚洲人成影院午夜网站| 无码精油按摩潮喷在线播放| 波多野结衣亚洲一区| 一级毛片在线播放| 亚洲丝袜中文字幕| 亚洲日韩日本中文在线| 免费a级毛片视频| 四虎精品国产AV二区| 国产午夜无码片在线观看网站| 亚洲中文字幕手机在线第一页| 色偷偷一区| 97免费在线观看视频| 国产制服丝袜91在线|