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

基于神威太湖之光的AMBER軟件移植與優化

2020-12-16 02:18:02陳俊仕
計算機工程 2020年12期
關鍵詞:優化

彭 龍,陳俊仕,安 虹

(中國科學技術大學 計算機科學與技術學院,合肥 230031)

0 概述

我國自主研發的神威太湖之光超級計算機[1]共配置40 960個SW26010異構眾核處理器[2],內部包括1 040萬個計算核心,整機性能位居世界前列。SW26010異構眾核處理器由我國自主設計,采用主從硬件架構,共有4個核組,每個核組包含1個控制核心和64個從核組成的加速陣列,峰值性能高達每秒12.5億億次。由于神威太湖之光超級計算機特殊的硬件架構和編譯環境,現有商用平臺上的軟件需要經過重新實現與優化才能充分利用其計算資源。AMBER[3-4]是主流分子動力學(Molecular Dynamics,MD)模擬軟件之一,能夠有效描述蛋白質、核酸以及藥物小分子之間的相互作用,軟件自帶勢能模型,具有一系列與分子動力學模擬軟件相關的工具鏈。由于每個分子的相互作用都由分子力場描述,而AMBER包含60多個程序,根據模擬需要協調使用,因此其從AMBER11開始支持GPU平臺,并利用GPU加速卡加速軟件非鍵力的計算,同時支持Intel的MIC平臺。目前,AMBER在神威太湖之光超級計算機上的研究工作還處于空白狀態,并且國內對AMBER模擬軟件的并行化研究較少。中國科學院上海藥物研究所在開展老藥新制的過程中,使用AMBER軟件進行藥物分子的動力學模擬,為能更快地完成藥物分子的模擬計算,縮短新藥研制周期,對AMBER軟件性能的優化成為亟待解決的問題。

本文基于神威太湖之光國產超級計算機,開展AMBER分子動力學模擬軟件的移植與優化研究。通過調整AMBER軟件中熱點函數的數據結構,建立主從加速模型,并利用SW26010處理器從核陣列加速熱點函數計算。同時,結合SW26010眾核處理器的硬件特性,提出主從異步流水方案,使主核與從核協同計算,解決從核陣列訪存帶寬受限和從核訪存速度過慢的問題,以提升AMBER軟件性能。

1 相關工作

1.1 分子動力學模擬

分子動力學模擬[5-6]通過計算分子體系結構中原子的受力情況,利用經典牛頓力學或量子力學更新原子位置,從而得到原子運行軌跡的模擬過程。通過指定模擬步數不斷進行迭代計算,而單位迭代的時間步長通常在飛秒尺度上。一般科學研究或者實驗需要在微秒甚至更長的時間跨度上進行分析,因此需要上千萬甚至上億次的迭代計算,而且在每一次迭代過程中需要計算系統中每個原子的受力情況,計算量非常龐大[7-9]。在整個流程中需要先進行系統原子數據初始化,然后根據各原子位置等信息計算系統勢能,從而求出每個原子的受力情況,再由牛頓力學求出加速度進行速度和坐標更新,最后進行下一次迭代計算。AMBER力場勢能計算如式(1)所示:

(1)

在式(1)中:等式右邊的前3項表示通過鍵力項求鍵力勢能,分別為鍵的伸縮項、鍵角的彎曲項和二面角項,其中,Kr、req、Kθ、θeq、Vn和γ為力場相關參數,r、θ和φ為鍵長、鍵角和二面角;等式右邊的后2項表示范德華作用項和庫倫作用項,代表非鍵力項,其中,Rij為原子對之間的距離,qi和qj為原子i、j攜帶的電荷量,ε為介電常數。此處范德華作用項采用Lennard-Jones勢(簡稱為L-J勢),又稱12-6勢能[10],當Rij非常大時,該勢能趨近于0,因此在求得各原子i在該位置上的勢能Utotal后,通過對該勢能求梯度i得到原子i的受力情況,如式(2)所示:

Fi=-iUtotal

(2)

由牛頓第二定律得到原子i的加速度,如式(3)所示:

(3)

根據加速度al及原子初始位置和速度,在經過單位時間步長t下求出原子速度和位置(如式(4)和式(5)所示),更新速度和坐標后可以進行下一次的迭代計算。

(4)

(5)

經過不斷循環迭代計算,直到滿足迭代終止條件時為止。在不斷迭代計算的過程中,能得到每個單位時間步長下所有原子運動的勢能、位置和速度等信息。

1.2 神威太湖之光與SW26010處理器

神威太湖之光計算機系統是一臺10億億次量級的超大規模并行處理計算機系統。神威太湖之光的整體系統結構如圖1所示,其中整機包含40×4個超級節點,每個超級節點包含64個插件板,每個插件板包含4個計算節點,超級節點內部采用全連接的模式,可實現高效的消息廣播。每個計算節點內集成1個SW26010處理器,每個SW26010處理器包含256個核,因此共有40 960個SW26010處理器。SW26010處理器由我國自主研發,采用片上計算陣列從核和分布式共享存儲相結合的異構眾核系統結構。

圖1 神威太湖之光系統結構

如圖2所示,1個處理器由4個核組組成,每個核組包含1個主核和64個從核,核組間支持緩存(Cache)一致性。主核和從核的工作頻率為1.5 GHz,其中主核擁有32 KB的一級指令和數據Cache以及512 KB的二級Cache,從核擁有16 KB的指令Cache和64 KB的可重構局部數據存儲。SW26010集成了4路128位DDR3存儲控制器、8通道PCIe3.0和千兆以太網接口。

圖2 SW26010眾核處理器架構

1.3 AMBER軟件

AMBER是由加利福尼亞大學的KOLLMAN教授專門針對生物分子系統模擬而開發的分子動力學應用軟件。從1975年到現在,最新版本為AMBER2019。AMBER軟件由60多個程序組成,這些程序可以分類成模擬前的處理程序、模擬程序和模擬后的處理分析程序。此外,AMBER還包含多種分子的勢能力場,用來描述大分子或者小分子之間的相互作用。

AMBER軟件從AMBER2011開始支持GPU加速[11-13],由LEGRAND等人[14-16]共同開發和維護,從AMBER2014開始支持Intel Xeno Phi架構[17-19],由BHUIYAN等人基于MPI和OpenMP雙重分解策略進行研發,將計算熱點部分放置于Intel協處理器中進行加速,從而提升AMBER軟件性能[20-21]。AMBER2018的pmemd版本增強了整體性能,相比基于Pascal架構的AMBER2016性能提升25%~42%。截至2018年10月,AMBER2018已提供對Turing架構(RTX2060、RTX2070、RTX2080和RTX2080TI)的支持。

2 商用平臺上的熱點分析與測試

在移植與優化AMBER軟件前需先對其進行測試與分析,找出sander模擬程序的熱點計算部分[22]。本文通過在Intel商用平臺上模擬二氫葉酸還原酶(DHFR)得到熱點函數執行時間占比如表1所示。

表1 AMBER_sander模擬程序中熱點函數計算時間占比Table 1 The proportion of hotspot function calculation time in AMBER_sander simulation program

可以看出,sander模擬程序中模擬計算時間runmd占整體計算時間的92.05%,計算系統原子之間非鍵力的nonbond熱點函數占模擬計算時間runmd的93.11%,計算短程非鍵力的get_nb_energy熱點函數占非鍵力計算時間的77.06%,該函數調用short_ene函數來計算原子與其鄰居原子的短程非鍵力。因此,本文先將AMBER整個程序集移植到SW26010主核上,然后利用SW26010處理器的主從硬件特性來加速AMBER模擬軟件中短程非鍵力的計算部分,從而提升軟件整體性能。

3 AMBER在SW26010主核上的移植

本文移植工作是將AMBER軟件及其在編譯過程中依賴的第三方庫均移植到神威太湖之光超級計算機的主核上。SW26010主核能夠獨立執行完整的進程,而從核陣列作為加速核心,只能執行由主核進程創建的加速線程。因此,在將熱點函數的計算任務加載到從核前,需要先將AMBER移植到主核上,具體的編譯步驟為:1)修改configure,重新設置編譯器及相關參數,配置相關庫;2)設置并運行configure參數,生成環境配置腳本和configure頭文件;3)執行Makefile完成編譯安裝過程。由于SW26010處理器的架構和編譯環境與商用CPU有較大的區別,因此在configure時需要對代碼及若干參數進行調整。此外,AMBER在編譯過程中需要NETCDF、FFTW等第三方庫的支持,因此可提前將這些第三方庫進行交叉編譯移植到神威太湖之光超級計算機的主核上,以供AMBER編譯使用。

4 AMBER在SW26010從核上的并行實現

本文利用從核對get_nb_energy熱點函數的計算過程進行并行實現,首先應用OpenACC將熱點函數從核化,然后采用Athread線程庫設計主從加速和主從異步流水方案,最后通過從核訪存優化進一步加速AMBER模擬軟件熱點函數的計算。

4.1 算法數據結構調整

通過對AMBER模擬程序sander熱點計算部分的分析可知,計算短程非鍵力的get_nb_energy熱點函數需要并行加速熱點部分,其中get_nb_energy熱點函數會在循環中調用short_ene函數,然后計算每個系統原子i受到的短程非鍵力,具體算法如下:

算法1短程非鍵力計算算法

輸入系統原子及其鄰居原子的參數信息

輸出系統原子短程非鍵力

1.do cell index = myindexlo to myindexhi

2.計算原子索引ncell_lo and ncell_hi

3.do i = ncell_lo to ncell_hi

4.計算原子i的鄰居原子個數ntot;

5.對ntot為原子i的所有鄰居原子分配存儲中間結果的內存空間;

6.調用shor_ene函數計算原子i對其所有鄰居原子的非鍵力作用;

7.釋放為原子i的鄰居原子分配的內存空間;

8.更新鄰居列表ipairs的偏移指針numpack

9.end do

10.end do

如算法1所示,整個計算過程由兩重循環組成。在外層循環中,所有網格單元index通過內層循環遍歷每個網格單元中的所有原子i,并對遍歷到的每個原子i調用short_ene函數計算其與所有鄰居原子的非鍵力,同時釋放已為原子i分配的內存空間且更新鄰居列表ipairs的偏移指針numpack。在內層循環中,根據原子i的鄰居列表大小為該原子申請臨時內存空間存放中間數據,為減少內存消耗,AMBER軟件自身維護一個stack模塊,用于在計算原子i與其鄰居原子的非鍵力前動態分配內存,在數據更新后釋放已分配的內存空間。在申威編譯器支持下的Fortran語言中,使用SW26010處理器從核并行時需要將核心計算相關的數據通過Common區進行共享,即主核和從核均可以直接訪問和修改共享存儲空間的數據。然而,通過該方式實現數據共享需要確保Common區的數組大小固定,而AMBER采用動態內存分配方式,根據原子參數的不同分配不同大小的內存空間,顯然該內存空間分配方式并不適用于從核并行化。

另外,在計算原子非鍵力時,由于某些原子的鄰居原子存在重疊,如果使用從核并行計算就會產生寫寫數據依賴,導致錯誤的計算結果,因此在并行計算前需要解決動態內存和寫寫依賴的問題。本文通過調整數據結構的方式來解決這兩個問題,首先將stack動態內存分配方式調整為固定內存分配方式,將分配的內存設置為Common區以供從核并行計算訪問,然后分配一個全局force_sw數組用來存放并行計算時所有鄰居原子的非鍵力信息,在從核計算結束后,通過主核串行的方式更新到全局force數組中,從而解決相同鄰居原子的寫寫依賴問題。采用固定內存分配方式的主存Common區和Global區數據分配如圖3所示。

圖3 主存數據分配

由圖3可以看出,在計算非鍵力前,首先將AMBER自身維護的動態內存分配方式改為固定內存分配方式,分為存放常量參數的Constant區(包含用于輸入的3個整型(integer)數據和3個實型(real)數據)和存放系統原子參數的System區以及存放鄰居原子參數的Neighbor區(包含系統總原子個數(num_atoms)和ipairs鄰居列表長度(lastatom)的若干integer和real數據,用于相關輸入和輸出),這些內存空間均被標識為Common,以供從核計算訪問。在從核并行計算前,由主核訪問主存中的Global區從而對input標記的Common區的部分內存進行數據初始化,Global區中包含存儲最后結果的force數組、鄰居列表ipairs及其他相關參數信息。在從核并行計算完成后,從核將計算結果更新到output標記的Common區。在調整算法中的數據結構后,將進行熱點計算部分的從核并行化。

4.2 OpenACC從核并行實現

在調整熱點函數的數據結構后,使用OpenACC實現主核與從核協作計算的執行模型,從而充分利用SW26010的主從硬件資源加速熱點函數?;贠penACC編寫程序將數據管理和傳輸設置為隱式,由編譯器根據編譯指示信息,自動生成空間管理、數據傳輸等控制代碼,并且通過調整數據結構解決熱點函數并行時產生的寫寫依賴問題后并行計算原子之間的短程非鍵力,OpenACC實現算法具體如下:

算法2OpenACC并行化短程非鍵力計算算法

輸入Common區數據參數

輸出系統原子短程非鍵力

1.主核進行Common區數據初始化

2.!$ACC parallel loop/local/copyin/copyout/reduction/annotate(參數變量)//從核化

3.do atom i = gstart to gend

4.!$ACC data copyin/copy//加速數據區指示

5.從Common區/LDM中獲取原子數據

6.從核并行計算ki與其鄰居原子的非鍵力

7.Update force_sw data

8.!$ACC end data

9.end do

10.!$ACC END parallel loop//從核計算結束

11.Update nonbond force data

將整個系統原子的短程非鍵力計算循環外加OpenACC指示,當主核運行到該函數時,按照相關指示將整個循環交給從核并行完成,從核完成計算后,按照相關指示將計算結果拷貝或者歸約到主存Common區。在從核局部數據緩存(Local Data Memory,LDM)中為循環中的一些變量分配存儲空間,主要是從核計算過程中需要用到的存儲中間數據的變量,這些變量要足夠小且在從核計算過程中被頻繁訪問,如原子電荷、相對距離等,通過local指示在LDM中分配存儲空間。

local中的部分變量需要作為結果在計算完成后拷貝到主存中,這些變量通過copyout指示。copy和copyin指示變量在計算前由主存讀入LDM中,在默認情況下根據循環劃分方式將對應數據進行分割拷貝到LDM中,主要為原子索引數組、存儲結果的非鍵力數組以及原子坐標數組等全局數組。copy指示的變量在計算結束后需要將LDM中的值拷貝到主存中,而copyin指示的變量在計算結束后并不將值拷貝到主存中。在循環中通過加速數據區指示data定義加速計算的數據區,用來描述變量在LDM內的屬性,指示在計算完成后是否需要將值從LDM中更新回主存,其中使用reduction規約子句完成部分變量在各從核計算結束后的加法規約操作,具體代碼如下:

reduction(+:vxx_si,eelt,evdw,vzz_si,vyz_si,vyy_si,vxz_si,vxy_si,ee_vir_iso_si)

編譯器會在每個線程上為reduction指示的變量創建一個私有副本,并根據加法操作以及變量數據類型對該私有副本進行初始化。在循環結束后,使用加法操作對同一變量的所有私有副本進行一次并行規約的加法操作,并將規約結果寫回原始變量中。至此,根據循環中的變量及其計算特點通過添加OpenACC編譯指示使得整個循環計算在64個從核中并行執行,完成熱點函數在從核上的并行計算。

4.3 Athread主從加速實現

本文通過調用神威定制的Athread加速線程庫函數接口編寫從核代碼,利用主從加速模型加速AMBER軟件的熱點函數計算。根據SW26010處理器特殊的主從硬件架構,并將從核作為加速核心,用于加速AMBER軟件熱點函數的計算,通過64個從核的并行計算提升軟件整體性能,主從加速模型的計算流程如圖4所示。

圖4 熱點函數的主從加速模型

主核在完成Common區內存分配后,循環遍歷系統中所有原子,由原子索引號訪問Global區獲得原子及其鄰居原子的參數信息,進而對Common區的部分內存進行數據初始化。Common區常量參數部分包括系統原子的索引號、第一次分配的標志號以及短程力的截斷半徑等。系統原子參數部分包括該原子的鄰居原子個數、電荷量以及在全局鄰居列表中的偏移量等。鄰居原子參數部分包括原子間的相對距離、evdw參數和用于存儲中間計算結果的force數組等。主核在完成Common區數據初始化工作后,會通過Athread接口函數來調用從核代碼,64個從核通過訪問Common區分配的數據,并行計算原子的短程非鍵力。

本文將系統原子均勻地分配給64個從核進行計算,保證每個從核的計算量相同,這樣在若干計算周期后所有從核能同時完成數據計算。在從核計算過程中主核處于阻塞狀態,等待全部從核完成計算后,主核開始進行最終數據的更新,此時從核處于空閑狀態,通過訪問Common區的output部分更新Global區的force數組。至此,利用Athread完成熱點函數計算的從核化。在主從加速并行方案下,從核計算過程中的主核處于阻塞狀態,需要等待從核計算完成后才能進行數據更新。另外,主核在從核并行計算前需要循環遍歷系統原子進行Common區數據初始化,增加了額外的時間開銷。因此,本文將利用主從異步并行方案,最大限度地減少額外的時間開銷,實現熱點函數的性能加速。

5 并行化AMBER的性能優化

5.1 主從異步流水設計

本文采用主從異步并行方案實現主核和從核并行計算,通過流水化設計隱藏主核Common區數據初始化帶來的額外時間開銷。該流水化方案是在從核進行并行計算的同時,使主核不等待,而是進行數據初始化。流水化前后的主核算法具體如下:

算法3流水化前的主核算法

功能主從加速方案

1.內存分配allocate(參數)

2.do i = gstart,gend

3.查找Global區

4.Common區數據初始化

5.end do

6.call athread_spawn(sw_fun,1)//調用從核代碼

7.call athread_join()//從核計算結束

8.全局數據更新force

算法4流水化后的主核算法

功能主從異步方案

1.內存分配allocate(參數)

2.Call athread_spawn(sw_fun,1)//調用從核代碼

3.do i=gstart,gend//主核循環遍歷系統原子

4.查找Global區

5.Common區數據初始化

6.標志Flage()更新//設置全局標記

7.end do

8.call athread_join()//從核計算結束

9.全局數據更新force//主核進行全局數據更新

在流水化前的主核算法中,由主核分配Common區并對其進行數據初始化,然后調用從核代碼執行從核計算。在流水化后的主核算法中,在主核進行數據初始化前,使用athread_spawn函數接口創建從核線程組開始執行從核代碼。與此同時,主核進行主存Common區的數據初始化,接著調用athread_join等待所有從核完成短程非鍵力的計算,最后由主核進行數據更新。為實現主核數據初始化與從核計算的并行化,本文設置一個Flage全局數組作為標志放在Common區,用來判斷為原子i分配的Common區數據是否初始化完成。主核循環遍歷系統所有原子,通過原子索引訪問主存Global區為原子i的Common區初始化,同時從核檢測到原子i-1初始化完成后開始計算短程非鍵力,具體流程如圖5所示。

圖5 主從流水化并行執行

當主核為原子i的Commoni區初始化完成后,該區標志為真,從核檢測到標志為真即可開始計算Computei,而當從核計算Computei時,主核進行Common(i+1)區的數據初始化。因此,主核Common(i+1)區數據初始化可與從核計算Computei并行執行,實現主核數據初始化與從核計算兩個模塊的流水化操作,從而消除部分等待時間。

5.2 從核訪存優化

在進行主從異步流水化設計后,使主核和從核并行工作,從而消除主從加速方案導致的額外時間開銷,進一步提升熱點函數的性能加速。下文將針對從核訪存進行測試與分析,由于AMBER_sander模擬程序在模擬分子時,根據模擬步數不斷迭代計算,因此需要不斷地從內存中讀取和更新數據。在從核并行計算時,64個從核并行訪存主存,這樣會導致主存帶寬壓力過大,而且在上述實現中,從核通過Global方式直接訪問主存,訪存速度很慢,因此本文針對訪存帶寬和訪存速度進行以下優化:

1)針對從核訪存速度過慢的問題,本文選擇將從核計算中需要用到的部分數據暫存在從核LDM中。首先這些數據要在從核計算過程中被頻繁訪問,從核訪問LDM要比直接訪問主存快很多,如果被頻繁訪問的數據放到從核LDM中,則在從核計算過程中可以直接從LDM中讀取數據,無需多次訪問主存。其次這些數據要足夠小,從核LDM只有64 KB,不足以存儲從核計算過程中的所有數據,因此選擇數據量較小且在計算過程中被頻繁訪問的數據存放到從核LDM中,從而加速訪存時間,提升程序性能。這些數據主要包括原子電荷(cgi和cgj)和系統原子坐標參數(Xk、Yk和Zk),其中電荷以real類型、坐標以integer類型存儲在Common區,在計算短程非鍵力的過程中被訪問的次數與系統原子總個數(atoms)成正比,如表2所示。

表2 存放在從核LDM中的數據Table 2 Data stored in the LDM of slave core

2)針對從核并行訪存的帶寬競爭問題,采用直接內存存取(Direct Memory Access,DMA)通道的方式實現主存與從核LDM間的數據交換。一方面,由于DMA可以控制主從與從核LDM之間的數據交換,在數據交換的同時從核可以分配一些與所傳輸數據無關的計算操作,實現從核通信與計算的重疊。另一方面,由于AMBER_sander在求解短程非鍵力時需依次遍歷系統中所有的原子,數據空間局部性大,而在DMA數據傳輸時是將一塊連續數據段從主存讀取到LDM中,在數據更新時也是更新一塊連續的數據段到主存中,因此通過DMA的異步性和連續性可以加快從核訪問主存的速度。

5.3 SIMD優化

神威太湖之光超級計算機支持256 bit向量指令,1次可以加載4個double類型。為進一步提升熱點函數的加速性能,本文使用向量指令集對從核計算過程中的部分無依賴且規整的代碼進行手動向量化操作。在計算從核的原子非鍵力作用后,得到原子在x、y和z方向上的作用分量dumx、dumy和dumz,利用這3個部分的作用分量更新臨時變量force_sw。這部分計算是一個3×3的雙重循環,為對其進行向量化操作加速,需要為dum和force_sw數組添加一個維度,該維度的值沒有意義,其不進行主核的全局force數組更新,但參與從核計算。通過添加一個維度將該迭代計算變為4×4的兩層for循環,然后使用4個向量取代兩層for循環?;谙蛄炕瘜崿F,從核的執行效率得到進一步提升,其中參與向量化的部分從核代碼的運行速度在理論上能達到4倍的線性加速,對于整個程序的計算性能也有所提升。

6 測試與性能對比

6.1 測試平臺與測試算例

本文完成AMBER軟件在神威太湖之光平臺上的并行實現與性能優化工作。本節將針對神威太湖之光平臺上移植與優化后的AMBER軟件與Intel商用平臺上的AMBER軟件做性能測試對比。測試平臺的配置信息如表3和表4所示。

表3 神威太湖之光測試平臺配置信息Table 3 Configuration information of Sunway TaihuLighttest platform

表4 Intel商用測試平臺的配置信息Table 4 Configuration information of Intel commercial test platform

測試算例選擇AMBER軟件的DHFR測試基準,結構如圖6所示,包含23 558個原子,單位迭代時間步長為2 fs,短程非鍵力截斷半徑為8 angstrom。

圖6 DHFR結構

6.2 測試結果與分析

本文測試了AMBER軟件的熱點函數在神威太湖之光平臺的SW26010處理器上采取不同優化方案后的執行時間,并對比其在Intel Xeon Platinum 8163上的執行時間,具體測試數據如表5所示。

表5 AMBER熱點函數在神威太湖之光與Intel商用平臺上的測試數據Table 5 Test data of AMBER hotspot function on theSunway TaihuLight and Intel commercial platform s

在神威太湖之光平臺的SW26010處理器上采取不同優化方案后的熱點函數加速情況,如圖7所示。可以看出,優化前AMBER_sander熱點函數在主核上的執行時間為15.57 s。在實現熱點函數主從加速并行方案后,由于未進行訪存優化且在從核計算過程中主核處于阻塞狀態,因此函數執行時間增加至32.23 s。在實現主從異步流水并行方案后,由于主核和從核之間存在并行協作計算,使得熱點函數的執行時間下降至19.04 s,然后進行訪存優化后,熱點函數的執行時間下降至1.25 s。通過上述所有優化方案后,本文使用SW26010單核組的64個從核將AMBER_sander的熱點函數計算性能約提升了15倍。

圖7 熱點函數性能加速

由于不同優化方案對AMBER_sander有不同的優化效果,因此本文統計了不同優化方案對熱點函數性能加速的執行時間占比,測試數據如表6所示。在實現主從加速并行化后,采用主從異步流水、訪存優化(LDM和DMA通道)以及SIMD向量化對并行化版本的AMBER做性能優化,使得AMBRE軟件的熱點函數執行時間降低至31.20 s(主從+訪存+SIMD)。

表6 優化方案對AMBER_sander的性能加速情況Table 6 Performance acceleration of AMBER_sander by optimization schemes

可以看出,不同優化方案對性能的加速效果不同,如圖8所示,針對從核訪存(LDM+DMA)的優化占了總優化時間(31.20 s)的50%以上,通過測試分析可以為后續在神威太湖之光平臺上移植與優化其他軟件提供借鑒與指導。

圖8 優化方案對AMBER_sander的性能加速占比

本文將AMBER_sander在神威太湖之光平臺上單核組的單進程性能與Intel商用平臺上單進程性能進行對比,如圖9所示。

圖9 AMBER_sander在神威太湖之光與Intel商用平臺上的性能對比

可以看出,AMBER_sander熱點函數在SW26010單核組上優化后的性能相比Intel Xeon Platinum 8163上約提升了4.6倍。值得注意的是,優化后AMBER_sander熱點函數在單核組上的整體性能略高于Intel商用平臺上的性能。這是因為隨著優化過程的不斷深入,熱點函數的執行時間越來越短,非熱點函數的執行時間在程序總執行時間中所占的比重越來越大,根據Amdahl定律熱點函數執行效率提升所帶來的整體性能收益也變得越來越小。

7 結束語

本文基于神威太湖之光處理器的主從硬件結構,建立主從加速模型,并實現AMBER軟件的從核并行化設計。在并行化版本的基礎上,提出主從異步流水化方案,針對從核的并行訪存進行一系列性能優化,極大提升AMBER軟件在神威太湖之光平臺上的計算性能。應用所有優化方案后,AMBER熱點函數性能較優化前約提升15倍,其單核組性能相比Intel Xeon Platinum 8163約提升4.6倍。隨著計算節點的增多,節點間的數據傳輸將成為性能瓶頸,因此后續將開展AMBER軟件在神威太湖之光平臺上的強擴展性研究,解決節點間的消息傳輸帶寬限制問題。

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 久久一日本道色综合久久| 精品人妻无码中字系列| 成人va亚洲va欧美天堂| 五月天福利视频| 黄色国产在线| 日韩精品无码免费一区二区三区 | 久久一色本道亚洲| 亚洲色图另类| 久久人体视频| 久久毛片免费基地| 无码中文字幕乱码免费2| 亚洲男人的天堂在线| 免费可以看的无遮挡av无码| 国产麻豆精品在线观看| 狠狠综合久久| 91探花在线观看国产最新| 天天做天天爱天天爽综合区| 亚洲视频免费在线看| 88国产经典欧美一区二区三区| 在线毛片免费| 9cao视频精品| 欧美综合成人| 黄色网址免费在线| 九九热视频精品在线| 久久黄色一级视频| 日本午夜精品一本在线观看 | 红杏AV在线无码| 在线免费看黄的网站| 国产午夜福利亚洲第一| 亚洲精品无码av中文字幕| 91九色视频网| 最新日本中文字幕| 青青草原国产av福利网站| 一级毛片网| 精品福利视频导航| 国产成人精品男人的天堂| 亚洲Av综合日韩精品久久久| 伊人久久精品无码麻豆精品| 国产精品成| 亚洲中文制服丝袜欧美精品| 国产九九精品视频| 爆操波多野结衣| 亚洲一区二区三区在线视频| 亚洲人成网站18禁动漫无码| 97人妻精品专区久久久久| 国产国模一区二区三区四区| 日韩天堂视频| 欧美精品v日韩精品v国产精品| 狼友av永久网站免费观看| 久热99这里只有精品视频6| 国产精品久久久久久影院| 免费av一区二区三区在线| 成人一区在线| 青青草原偷拍视频| 69国产精品视频免费| 精品久久777| 欧美日韩国产综合视频在线观看| 国产精品久久久久久久久久久久| 影音先锋丝袜制服| 亚洲,国产,日韩,综合一区 | 就去色综合| 青青草91视频| 欧美97欧美综合色伦图| 亚洲精品无码不卡在线播放| 欧美性猛交xxxx乱大交极品| 日韩区欧美国产区在线观看| 国产精欧美一区二区三区| 欧美一区二区三区国产精品| 亚洲区第一页| 欧洲高清无码在线| 在线观看国产黄色| 久久国产av麻豆| www.亚洲一区| 国产三区二区| 99人妻碰碰碰久久久久禁片| 国产黄网永久免费| 欧美狠狠干| 日韩欧美国产成人| 在线精品亚洲一区二区古装| 亚洲视频免费在线看| a毛片在线播放| 日韩国产欧美精品在线|