亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-03-13 07:17:36明平洲余紅星
        中國核電 2021年1期
        關鍵詞:函數庫燃耗計算環(huán)境

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

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

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

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

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

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

        1 計算環(huán)境說明

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

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

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

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

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

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

        2 移植和測試

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

        2.1 系統軟件的移植

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

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

        2.2 CORTH

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

        #ifdef __cplusplus

        extern"C"

        {

        #endif

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

        #ifdef __cplusplus

        }

        #endif

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

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

        串行計算情況下Intel商用節(jié)點的效率明顯高于ARM計算節(jié)點,隨著子通道劃分的數量增加,ARM計算節(jié)點的效率與Intel計算環(huán)境的差距由7.8倍變?yōu)?.7倍。經過測試之后可以明確子通道分析程序的運行特點:隨著問題規(guī)模的提升,ARM計算節(jié)點與Intel計算環(huán)境的效率差距在減小。

        2.3 KYLIN2

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

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

        2)讀取輸入文件;

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

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

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

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

        表3 組件例題Table 3 Assembly examples

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

        (1)31016B例題

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

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

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

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

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

        3 KYLIN2的OpenMP并行優(yōu)化

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

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

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

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

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

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

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

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

        4 結論

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

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

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

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

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

        致謝

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

        猜你喜歡
        函數庫燃耗計算環(huán)境
        云計算環(huán)境下網絡安全等級保護的實現途徑
        消費電子(2022年7期)2022-10-31 06:17:34
        用于優(yōu)化雷達信號處理的VSIPL函數庫
        基于Python的開源GIS應用開發(fā)
        Scratch求最值和平均值
        電腦報(2020年34期)2020-09-12 14:03:42
        基于BB60C的IQ數據采集與存儲系統設計
        大數據云計算環(huán)境下的數據安全
        電子制作(2017年20期)2017-04-26 06:57:48
        基于切比雪夫有理逼近方法的蒙特卡羅燃耗計算研究與驗證
        核技術(2016年4期)2016-08-22 09:05:28
        IFBA/WABA 可燃毒物元件的燃耗特性分析
        云計算環(huán)境中任務調度策略
        低價值控制棒中子吸收體材料燃耗相關數據的制作及驗證研究
        日本人与黑人做爰视频网站| 日韩精品中文字幕第二页| 久久精品国产av一级二级三级| 久久亚洲中文字幕伊人久久大| 亚洲av少妇高潮喷水在线| 久久人妻无码一区二区| 无码少妇一区二区三区| 中日韩欧美成人免费播放 | 午夜天堂精品一区二区| 永久中文字幕av在线免费| 四虎成人精品国产永久免费无码| 国产尤物av尤物在线观看| 18禁免费无码无遮挡网站| 青青草一级视频在线观看| 国产精品亚洲精品一区二区| 黑人巨大精品欧美一区二区免费| 少妇做爰免费视频网站| 久久精品国产亚洲婷婷| 亚洲无人区一码二码国产内射| 久久96日本精品久久久| 国产男女免费完整视频| 亚洲一级毛片免费在线观看| 免费观看在线一区二区| 天堂一区二区三区在线观看视频| 射精专区一区二区朝鲜| 蜜臀av免费一区二区三区| 国产免费的视频一区二区| 久久综合久久综合久久| 天天躁日日躁狠狠躁欧美老妇| 国产无套护士在线观看| 国产成人综合日韩精品无| 国产激情一区二区三区成人| 国模吧无码一区二区三区| 日韩毛片在线看| 日韩乱码精品中文字幕不卡| 插上翅膀插上科学的翅膀飞| 67194熟妇在线永久免费观看| 国产真人无遮挡免费视频| 国内精品嫩模av私拍在线观看| 久久99天堂av亚洲av| 亚洲中文字幕在线观看|