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

ARM計算環境下堆芯程序CORTH和KYLIN2的移植1)

2021-03-13 07:17:36明平洲余紅星
中國核電 2021年1期
關鍵詞:效率

明平洲,蘆 韡,劉 東,曾 輝,余紅星

(1.中國核動力研究設計院,四川 成都 610213;2.中國核動力研究設計院核反應堆系統設計技術重點實驗室,四川 成都 610213)

中國核動力研究設計院開展的軟件自主化項目已進入到第三期,其成果形式主要是NESTOR軟件包等涵蓋核反應堆多個學科所需的計算程序。堆芯計算涉及的學科主要有反應堆物理、熱工水力、力學以及燃料性能等,它們的單學科計算或者多學科耦合計算均用于論證和分析堆芯內部存在的大量異質現象[1]。由于真實堆芯的解析解極難獲得,不同的數值離散方法對各種物理數學方程的工程求解成為計算相關研究人員的核心工作[2]?,F階段中國核動力研究設計院引進的基礎集群計算設施采用Intel商用處理器和國產飛騰處理器混合組成的結構,能夠通過SLURM集群資源管理系統進行計算作業的分區投遞。目前國內高端處理器市場主要有龍芯、飛騰和兆芯等品牌,其中飛騰研制的CPU已加入開放的ARM生態系統,指令集兼容ARMv8-A[3]。區別于Intel商用處理器使用的X86復雜指令集體系,ARM是典型的精簡指令集體系。這使得集群計算機有不同特點的計算資源可供使用。不同指令集體系下的處理器存在著不同特點[4],在商用處理器受限或計算資源緊張的情況下,ARM計算資源有可能成為一種補充的數值計算資源。

研究涉及移植的兩個軟件描述為[5]:

1)CORTH是用于堆芯熱工水力分析的子通道程序,可用于分析研究反應堆及其回路系統中冷卻劑的流動特性、熱量傳輸特性和燃料元件的傳熱特性,正在持續進行開發和改進。

2)反應堆物理涉及穩態計算和動態計算兩大類,它們根據某一層面的均勻化處理結果進行全堆芯的中子物理參數求解。KYLIN2程序現階段在組件級別為堆芯程序提供組件庫的計算,其核心為使用特征線方法的中子輸運求解器,具備多種計算功能。

1 計算環境說明

現階段中國核動力研究設計院引進的集群計算機具備多個計算節點,分為多個分布式內存計算區域,兩個主要類別對應于Intel商業處理器環境和國產飛騰處理器環境。前者在運行穩定性和配套軟件上較為成熟;后者面向通用計算,但計算效率和運行穩定性略為不同,通常ARM處理器結構主要應用于嵌入式數字設備等領域,在數值分析計算領域尚處于局部應用狀態。

硬件描述:飛騰FT-1500 A是基于ARM64位架構的服務器芯片,面向計算服務器市場。在集群計算機上,每個邏輯上的飛騰計算節點使用了一個飛騰FT-1500 A處理器,具備16個處理器核心,每個處理器核心運行單個線程。處理器打開了FP和ASIMD、SHA1,SHA2等標志位。每個飛騰計算節點上的內存為64 GB;

軟件描述:操作系統為麒麟操作系統,開發環境主要為GCC 4.9.3,安裝Glibc 2.19、make 4.0和開發工具鏈Binutils 2.24.90[6]。

子通道計算軟件CORTH和堆芯組件程序KYLIN2作為專業應用軟件在開發過程中依賴于第三方數值函數庫等。因此,移植過程需要圍繞兩類軟件進行移植和測試,一類是底層系統軟件,用于為軟件自主化的上層應用軟件提供通用計算功能的接口,并在ARM計算環境下擺脫對商業函數庫的依賴;另一類是堆芯計算本身的內容,需要進行程序代碼改寫和修訂,適應新的計算環境。在本文中將對CORTH和KYLIN2展開分析和計算。

表1 待移植軟件Table 1 Software to be ported

研究首先驗證飛騰處理器所在ARM環境下移植的可行性和正確性,然后給出移植堆芯程序的過程和實驗來展開討論??紤]集群計算機商用計算節點配置參數的涉密性,這里選取的商用處理器對比對象為HP Z800服務器計算環境,其處理器為Intel Xeon X5540,共計12個核心,處理器頻率為2.53 GHz,約為飛騰處理器的兩倍。

2 移植和測試

整個移植工作采用自底向上的流程以適應ARM計算環境,測試過程則將對比Intel處理器環境(HP Z800服務器)和ARM計算環境(集群系統的飛騰計算節點)的效率、數值穩定性和正確性。

2.1 系統軟件的移植

參與數據前后處理的DATA和HDF5函數庫直接使用ARM計算環境提供的C/C++編譯器進行編譯和軟件提供的基準程序進行測試,確保文本文件或二進制文件的正確讀寫。

參與數值計算的PETSc、SparseLib++、Lapack和SuperLU在移植過程中重點用于求解線性方程組和參與特征值計算等數值問題。各個函數庫由多個模塊組成,底層依賴于向量、矩陣和索引集等數據結構,內部采用C/C++語言和Fortran語言混合編程。這里移植到飛騰計算節點后使用GNU編譯器(gcc,g++和gfortran)以及基于GNU編譯器生成的并行編譯器(mpicc,mpicxx和mpifort)進行編譯,能夠正常生成靜態庫和動態庫。與此同時,基于已有的熱工分析內的守恒控制方程和特征線方法內的提取的全局粗網加速線性方程組的研究工作[7],使用移植的庫進行例題測試。ARM計算環境能夠正常完成數值計算,且收斂精度均達到預期的需求。

2.2 CORTH

CORTH程序實現全堆芯柵元級別的子通道計算,僅使用C/C++編程。移植過程中需要去掉MKL函數庫的依賴和改寫Fortran語言部分,例如將線性方程組的求解改用SparseLib++進行求解。此外在ARM64平臺上重新編譯DATA類和熱工物性函數庫Thermal_lib,移植過程涉及Fortran和C++在ARM環境下的相互調用,例如熱工物性函數庫中的func函數,在書寫GNU編譯器對應的頭文件聲明為:

#ifdef __cplusplus

extern"C"

{

#endif

extern double func_(double*,double*,double*);

#ifdef __cplusplus

}

#endif

移植完成后針對ACP1000壓水堆四種子通道劃分的例題進行串行計算效率的測試。兩種硬件環境下均使用GNU編譯器,編譯優化等級統一設置為O2。

表2 CORTH運行時間統計Table 2 Runtime statistics of CORTH

串行計算情況下Intel商用節點的效率明顯高于ARM計算節點,隨著子通道劃分的數量增加,ARM計算節點的效率與Intel計算環境的差距由7.8倍變為4.7倍。經過測試之后可以明確子通道分析程序的運行特點:隨著問題規模的提升,ARM計算節點與Intel計算環境的效率差距在減小。

2.3 KYLIN2

KYLIN2用于生成組件截面庫,內部的燃耗計算提供不同工況點,因此KYLIN2的核心計算功能體現為二維特征線輸運計算和點燃耗計算。KYLIN2程序的主要計算步驟為:

1)計算參數的初始化和分配內存空間;

2)讀取輸入文件;

3)獲取基干數據庫文件;

4)判斷計算類型,執行組件基干計算或燃料分支計算;

5)燃耗步是否結束,結束則整個計算完成,否則轉回步驟2)。

串行KYLIN2程序的移植過程主要涉及替換燃耗計算的線性方程組求解部分,即使用SuperLU函數庫提供的直接消去法函數進行線性方程組的求解。

表3 組件例題Table 3 Assembly examples

以上兩個例題將在HPZ800服務器和內部集群計算機的飛騰計算節點運行。數值穩定性和正確性將對比按照燃耗深度與有效增殖因子值的關系圖形給出(限于篇幅,每個燃耗步下的功率分布和燃耗分布不在論文中給出)。計算效率方面則給出同一例題在HP Z800服務器和飛騰計算節點的各自串行總計算時間。

(1)31016B例題

該例題增殖因子隨燃耗深度的變化趨勢如圖1所示。

圖1 31016B問題的燃耗變化趨勢圖Fig.1 Burn-up change trend of 31016B example

從圖1中可以看到,兩種硬件平臺下增殖因子隨燃耗深度的變化趨勢保持吻合,數值穩定性在誤差范圍內。該例題在兩類硬件環境中的串行計算時間統計如表4所示,兩者相差約在6倍左右。

表4 31016B問題的計算時間Table 4 Calculation time of 31016B example

(2)42000_Grey例題

該例題增殖因子隨燃耗深度的變化趨勢如圖2所示。

圖2 42000_Grey問題的燃耗變化趨勢圖Fig.2 Burn-up change trend of 24000_Grey example

從圖2中可以看到,兩種硬件平臺下增殖因子隨燃耗深度的變化趨勢保持吻合,數值穩定性在誤差范圍內。另外該例題在兩類硬件環境中的串行計算時間統計如表5所示,兩者相差約在7倍左右。

表5 42000_Grey問題的計算時間Table 5 Calculation time of 42000_Grey example

根據以上的移植和測試,可以得出結論: KYLIN2程序在ARM計算節點與Intel計算環境的效率差距在6~8倍,仍然遠高于CPU頻率之間的差別,這一方面由于ARM精簡指令的運行方式在數值計算方面相比Intel處理器使用的復雜指令集在處理數值計算的時候存在差異,另一方面也由于飛騰處理器FT-1500 A的緩存較小。整個計算結果表明數值求解方法的替換對數值穩定性沒有影響,ARM計算節點上數值計算的準確性與Intel計算環境沒有明顯差異。

3 KYLIN2的OpenMP并行優化

實際工程應用時需要對KYLIN2反復調用,生成不同工況點下的大量組件截面庫。為了在飛騰處理器為代表的ARM計算環境下提升計算效率,對KYLIN2的輸運計算模塊編制OpenMP共享式內存并行版本KYLIN2-OpenMP,增強國產芯片的實用性。使用兩種常見于學術論文的組件基準例題(壓水堆組件AFA3G和C5G7基準例題UO2組件)進行測試,同時對比有效增殖因子值的正確性和計算效率。

首先對不使用粗網加速的情況進行統計,編譯優化選項選為-O2,相應的計算結果和串行計算效率統計如表6所示。飛騰計算節點在求解AFA3 G組件問題時耗時較長(約兩天時間仍然沒有計算完成),與HP Z800相差一個數量級(10倍)。

表6 無粗網加速的計算時間統計Table 6 Calculation time without GCMFD

使用粗網加速之后將減少數值迭代次數,表7統計相應的運行時間,編譯優化選項仍然選為-O2。數值方法的改變并不會改變數據的內存布局,處理器的差異仍然保持在一個數量級左右。

表7 粗網加速的計算時間統計Table 7 Calculation time of GCMFD

接下來固定優化等級為O2,然后測試OpenMP多線程版本在兩種硬件環境下的實際并行效率,限于篇幅這里僅給出C5 G7 UO2組件例題的統計結果(AFA3 G組件例題有類似結果)。實驗時考慮HP Z800服務器最多有12個處理器核心,因此線程數取值范圍取為[1,12]。

如圖3所示趨勢,兩種硬件環境下C5 G7例題的計算效率在O2優化等級下均通過多線程并行取得效率的提升,但處理器核數超過8個之后并不能帶來計算效率的改善,這一方面由于C5 G7例題的能群循環結構只有7個能群,能群并行的算法存在著增益上限,另一方面多線程的管理開銷隨著線程增多逐漸變得不可忽略。借助于OpenMP共享式內存并行,單個計算方案在飛騰計算節點內的計算效率與HP Z800服務器的差距在縮小,此時統計計算時間可以明確使用8個線程后飛騰處理器運行兩個例題的效率與HP Z800服務器上單個Intel處理器的運行時間接近。當集群計算機的商用計算資源緊張時,由于國產計算節點使用人數較少,此多線程并行版本的臨時解決方案可滿足使用ARM計算環境臨時替換商用計算環境執行計算的需求(核工程計算過程中,Intel商用處理器經常使用單線程來運行早期版本的KYLIN2程序)。

圖3 引入OpenMP并行后的組件例題運行時間Fig.3 Runtime statistics ofassembly example after OpenMP programming

4 結論

在內部集群計算機的飛騰計算節點進行移植應用,探討國產芯片構建的計算環境應用于工程計算的可行性,形成的結論如下所述:

1)所有初步移植的程序在飛騰計算節點上的串行計算效率均低于HP Z800這類Intel處理器商用服務器,且超過處理器頻率之間的差異。更改編譯優化等級之后,計算效率的差異保持不變;

2)現階段串行CORTH 0.8.4版本和KYLIN2 0.8.8版本的程序已被成功移植到飛騰計算節點,且能夠正常運行和開展工程計算。移植過程使用的計算例題均能夠正常完成計算,計算結果與Intel硬件環境下保持一致(偏差范圍內);

3)飛騰計算節點上的數值計算運行效率較低,一方面是由于使用的是底層函數庫,另一方面也由于飛騰處理器本身的精簡指令集特性和較小的緩存。相比Intel處理器復雜指令集存在多種復合指令,完成部分計算需要更多的指令周期,但通過引入局部的OpenMP多線程優化,可以使得國產飛騰這種ARM計算環境成為工程計算的補充資源。

國產處理器及其生態環境在持續發展,核反應堆工程計算在后續發展過程可以橫向借鑒日本、美國等經驗,覆蓋更多的計算硬件,提升適用性和交叉驗證計算方案的正確性。本文形成的結論和記錄的技術細節將隨著后續在國產計算節點上開展的計算分析工作進行深化和擴展。

致謝

本研究工作感謝中國核動力研究設計院設計所九室提供的樣本程序和集群運行環境,同時也感謝相關人員對論文的建議。

猜你喜歡
效率
你在咖啡館學習會更有創意和效率嗎?
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
注意實驗拓展,提高復習效率
效率的價值
商周刊(2017年9期)2017-08-22 02:57:49
引入“倒逼機制”提高治霾效率
遼寧經濟(2017年6期)2017-07-12 09:27:16
質量與效率的爭論
中國衛生(2016年9期)2016-11-12 13:27:54
跟蹤導練(一)2
提高食品行業清潔操作的效率
OptiMOSTM 300V提高硬開關應用的效率,支持新型設計
“錢”、“事”脫節效率低
中國衛生(2014年11期)2014-11-12 13:11:32
主站蜘蛛池模板: 亚洲国产精品不卡在线| 免费中文字幕在在线不卡| 影音先锋丝袜制服| 亚洲IV视频免费在线光看| 国产黄在线免费观看| 91无码人妻精品一区二区蜜桃| 国产精品99在线观看| 国产成人精品2021欧美日韩| 国产波多野结衣中文在线播放| 欧美三级视频在线播放| 中文精品久久久久国产网址| 不卡视频国产| 国产一级片网址| 蝌蚪国产精品视频第一页| 无码综合天天久久综合网| 人妻无码中文字幕第一区| 五月婷婷综合在线视频| 国产午夜无码片在线观看网站| 久久不卡精品| 日韩精品毛片人妻AV不卡| 亚洲全网成人资源在线观看| 亚洲综合色吧| 狠狠色丁婷婷综合久久| 色精品视频| 青草视频在线观看国产| 免费视频在线2021入口| 国产在线小视频| 久久 午夜福利 张柏芝| 国产在线小视频| 欧美精品xx| 精品1区2区3区| 亚洲综合香蕉| 欧美伦理一区| 国内精品免费| 欧美成人亚洲综合精品欧美激情| 亚洲精品福利视频| 99精品国产自在现线观看| 亚洲动漫h| 人妻无码一区二区视频| 亚洲91精品视频| 伊人色在线视频| 高清免费毛片| 亚洲色图另类| 在线看片国产| 欧美一级大片在线观看| 国产精品福利一区二区久久| 欧美福利在线播放| 在线欧美国产| 丰满人妻一区二区三区视频| 欧美日韩中文字幕在线| 国产成人无码Av在线播放无广告| 亚洲伊人电影| 国产精品免费福利久久播放| 久久国产精品娇妻素人| 欧美三级视频网站| 日本尹人综合香蕉在线观看 | 亚洲无线一二三四区男男| 精品国产一区二区三区在线观看| 香蕉综合在线视频91| 凹凸精品免费精品视频| 亚洲熟女中文字幕男人总站| 无码aⅴ精品一区二区三区| 免费观看欧美性一级| 91美女在线| 第九色区aⅴ天堂久久香| 不卡午夜视频| 国产亚洲第一页| 国产精品乱偷免费视频| 亚洲资源站av无码网址| 欧美成人一级| 69视频国产| 小蝌蚪亚洲精品国产| 亚洲国产精品一区二区第一页免 | 九月婷婷亚洲综合在线| 精品久久久久久中文字幕女| 欧美亚洲国产视频| 欧美亚洲欧美| 国产成人无码AV在线播放动漫| 日韩成人午夜| 制服丝袜亚洲| 国产一级视频久久| 国产91在线|日本|