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