用的神秘面紗)
揭開HPC應(yīng)用的神秘面紗 本文主要通過部署調(diào)優(yōu)一個量子化學(xué)的HPC應(yīng)用讓大家更直觀的了解和感受HPC的魅力。## 前言說起高性能計算High Performance Computing縮寫 HPC很多人第一個想法就是動輒億億次浮點運算的“超級計算機”國家花這么大代價做出來的機器干啥用呢其實大到天氣預(yù)報、飛機制造、新冠疫苗研發(fā)小到唐氏篩查、《熊出沒》渲染到處可見HPC的身影就拿最近的北京冬奧會來說其成功舉辦就脫離不了濟南超算對空氣質(zhì)量預(yù)報準確及時的預(yù)警當然HPC也可以離我們很遠舉幾個戈登貝爾獎的栗子(被譽為“超級計算應(yīng)用領(lǐng)域”內(nèi)的諾貝爾獎)。section: 揭開HPC應(yīng)用的神秘面紗 本文主要通過部署調(diào)優(yōu)一個量子化學(xué)的HPC應(yīng)用讓大家更直觀的了解和感受HPC的魅力。 前言source_type: html_tablefields:獲獎年份獲獎項目超算系統(tǒng)rows:獲獎年份2021; 獲獎項目超大規(guī)模量子隨機電路實時模擬; 超算系統(tǒng)中國.神威獲獎年份2020; 獲獎項目超過一億個原子的分子動力學(xué)模擬計算; 超算系統(tǒng)美國.Summit獲獎年份2016; 獲獎項目千萬核可擴展全球大氣動力學(xué)全隱式模擬; 超算系統(tǒng)中國.神威對超算來說硬件很重要但現(xiàn)在是“軟件吞噬一切”的時代路修的再好沒有車在上面跑也沒用如果把開源軟件比作汽車市場那么HPC應(yīng)用就是這個市場中的 “豪車”為了追求最極致的性能它們用著最先進的“發(fā)動機”(編譯器)、最復(fù)雜的“輪胎”(并行技術(shù))同時也擁有最繁瑣的“機械結(jié)構(gòu)”(安裝和調(diào)優(yōu)流程)優(yōu)化過HPC應(yīng)用的“賽車手”都有一個感受抱黃連敲門—苦到家了難怪HPC被喻為是IT行業(yè)“金字塔上的明珠”本文旨在通過部署調(diào)優(yōu)一個量子化學(xué)的HPC應(yīng)用讓大家直觀的感受HPC的魅力讓看似陽春白雪的HPC也能走向平民化走向每個人、每個家庭、每個組織。## 求解薛定諤方程波函數(shù)被證明對獲取材料的宏觀性能(如光學(xué)性質(zhì)、力學(xué)性質(zhì)、熱力學(xué)性質(zhì)、磁學(xué)性質(zhì))極具價值現(xiàn)實中的物質(zhì)由多個電子構(gòu)成的它們的波函數(shù)該如何求解一個鐵原子有26個電子兩個有52個電子計算2個鐵原子相互作用時需要計算任意一個與其它51個電子的相互作用當計算原子數(shù)增加時計算量呈指數(shù)增加100個鐵原子的計算量恐怕都是天文數(shù)字了更不要說幾十萬個原子納米材料這就不得不提著名的Kohn-Sham公式他將多電子體系近似用一個或幾個函數(shù)來代替求解多體薛定諤方程計算量大大減少Kohn因為這個公式獲1998年Nobel化學(xué)獎本文要介紹的HPC應(yīng)用QE就是這個公式的開源實現(xiàn)在量子化學(xué)領(lǐng)域被廣泛應(yīng)用從官網(wǎng)介紹來看“QUANTUM ESPRESSO是一種用于電子結(jié)構(gòu)計算和材料建模的量子化學(xué)方法的軟件套件在GNU通用公共許可證下免費分發(fā)。它基于密度泛函理論平面波基組和贗勢包括范數(shù)守恒和超軟理論。”這段文字看不懂沒關(guān)系只要記住求解公式是這個就行了Kohn-Sham公式## 安裝QE準備工作CentOS7/openEulerARM服務(wù)器QE的安裝可以參考文檔( https://support.huaweicloud.com/prtg-kunpenghpcs/openmind_kunpengqe_02_0001.html )一步步安裝。但是本文推薦另一種更簡便的安裝方式那就是HPC賈維斯助手( https://gitee.com/openeuler/hpcrunner )專門為HPC應(yīng)用打造的一鍵依賴安裝、環(huán)境配置、編譯、運行、調(diào)優(yōu)平臺將HPCRunner解壓或者clone到服務(wù)器某個位置其目錄結(jié)構(gòu)及說明如下所示賈維斯源碼目錄步驟1進入這個賈維斯目錄并初始化環(huán)境cd hpcunner source ./init.sh步驟2拷貝QE的HPC配置并切換到改配置(基于鯤鵬GCCOpenMPI技術(shù)棧)cp ./templates/qe/6.4/data.qe.test.config ./ ./jarvis -use data.qe.test.config步驟3獲取QE及依賴軟件1下載QE 6.4版本( https://github.com/QEF/q-e/archive/refs/tags/qe-6.4.1.tar.gz )解壓至tmp目錄tar -xzvf ./downloads/q-e-qe-6.4.1.tar.gz -C /tmp2將QE的算例也拷貝至/tmp\cp -rf ./workloads/QE/qe-test /tmp步驟4一鍵下載并安裝依賴執(zhí)行如下命令安裝鯤鵬GCCOpenMPI (請準備咖啡5分鐘左右)./jarvis -d -dp下載依賴并安裝步驟5一鍵編譯QE./jarvis -bQE的編譯步驟6一鍵運行QE./jarvis -rQE的運行幾分鐘后應(yīng)該可以看到“JOB DONE”字樣經(jīng)過14次SCF自洽運算我們就可以得出原子間的能量值到這里你已經(jīng)體驗了一遍HPC應(yīng)用的安裝運行全流程了。## QE調(diào)優(yōu)在HPC應(yīng)用運行的過程中可以通過perf性能工具無侵入式的采集熱點函數(shù)數(shù)據(jù)而且以目錄樹的形式展現(xiàn)出來。步驟1運行QE./jarvis -r步驟2新建窗口并進入hpcrunner目錄運行性能采集命令./jarvis -p從熱點函數(shù)實時分布圖可以看出除了MPI通信之外GEMM矩陣運算操作占比較高可以考慮使用openblas進行替代同時可以考慮把編譯器換成畢昇、MPI通信庫換為HyperMPI。步驟3拷貝優(yōu)化配置cp ./templates/qe/6.4/data.qe.test.opt.config ./步驟4切換到優(yōu)化配置./jarvis -use data.qe.test.opt.config步驟5一鍵下載并安裝依賴(大概6分鐘左右)./jarvis -d -dp步驟6一鍵編譯QE./jarvis -b步驟7一鍵運行QE./jarvis -r優(yōu)化之后的QE這次的運行時間是不是更短了呢讓我們對比一下前后的性能情況吧QE前后性能對比如果你也得到了這個結(jié)果那么恭喜你完成了一次HPC應(yīng)用的調(diào)優(yōu)## 總結(jié)雄關(guān)漫道真如鐵,而今邁步從頭越實際HPC應(yīng)用的優(yōu)化之路險阻而又漫長越是交叉學(xué)科越需要全人類的智慧共同參與才能結(jié)出美麗的果實但是我堅信只要一直走總有一天會到達目的地。美好的未來在前方如果您對HPC有興趣請加入到openEuler HPC SIG這里除了有遷移調(diào)優(yōu)技術(shù)分享還有大量開源實習(xí)機會( https://gitee.com/openeuler/hpcrunner/issues )在家也能領(lǐng)工資更有百萬獎金眾智計劃等你來拿。請關(guān)注開源項目賈維斯為多樣性算力添磚加瓦共建openEuler生態(tài)。歡迎關(guān)注賈維斯項目https://gitee.com/openeuler/hpc關(guān)于作者方春林Numpy/Taro MaintainerUSIMD和HPCRunner開源項目Leader目前主要聚焦于openEuler HPC SIG運營openEuler HPC SIG致力于建立氣象、分子動力學(xué)、生物和制造等領(lǐng)域的生態(tài)交流圈打造HPC多樣性算力部署調(diào)優(yōu)統(tǒng)一平臺自動容器化助力極簡部署一站式調(diào)優(yōu)HPC應(yīng)用讓看似陽春白雪的HPC應(yīng)用走向平民化