張戰炳,于瀟雪,高亦沁,周 蕓,周衍曉,林新華
(1.上海交通大學 網絡信息中心,上海 200240;2.上海擎云物聯網股份有限公司,上海 200070)
高性能計算(High Performance Computing,HPC)在推動科學、工業、醫學和教育的發展進程中至關重要,可大規模服務于全校教學、科研和管理等環節[1-3]。長期以來,高性能計算機的處理器都被通用性強且性能高的Intel x86架構處理器所壟斷,包括中國在內的很多國家都被迫依賴進口芯片來部署大規模超算系統[4]。
近年來,隨著功耗問題得到廣泛重視[5],一直活躍于移動、嵌入式領域的ARM 芯片開始憑借其低功耗、低費用的優勢在HPC領域發力[6-7]。美國Marvel 公司制造的ThundeX2[8]、日本富士通設計的A64FX[9]和中國華為研發的鯤鵬920 芯片[10],正成為HPC 傳統x86 架構處理器的替代品[11]。國外研究將ARM 處理器應用于HPC 系統的時間較早,在2013 年就有研究者評估了ARM 處理器應用于HPC 系統的可能性[12]。2015 年,歐洲聯合研究項目勃朗峰(Mont-Blanc)發布了基于ARM Cortex-A15 處理器的超算原型[13-14]。2020 年,日本基于ARM A64FX 處理器建設的富岳(Fugaku)[15-16]問鼎全球高性能計算機TOP 500 榜單,成為世界上首個基于ARM 架構的頂級超級計算機,展示了ARM 架構在超算領域的非凡潛力。而在國內,將ARM 處理器引入HPC 集群的時間較晚,2019 年開始逐漸有針對面向HPC 的ARM 處理器評測[17-19]。在高校,目前仍未見ARM 架構超算的建設和使用。
為擺脫進口依賴,響應國家掌握核心技術,加快推進國產自主可控替代的號召,上海交通大學基于國產ARM芯片建設了一臺超級計算機——國產超算平臺,也稱為ARM 超算平臺。上海交通大學國產超算平臺是國內高校首個建成和投入使用的ARM 架構超算,可為兄弟高校建設和使用ARM 超算積累經驗。
為了源源不斷地培養高水平創新人才,上海交通大學在國內高校率先提出將計算深度融入專業課教學的新理念。通過深度融合計算與專業課,研發數據驅動的全過程計算教學在線實踐平臺,以國產超算平臺構建計算課程教學支撐環境,支撐線上線下混合式教學和大規模虛擬仿真實驗教學,為學生提供沉浸式的在線學習體驗和個性化的學習資源服務。這是國內高校首次踐行基于ARM 超算的教學支撐實踐,為ARM 超算的推廣應用提供了一個新的視角。
該工作主要有以下3 個創新點:①建設并運營了高校首臺ARM 架構超算,為ARM 超算的建設和使用積累了經驗;②對超算上廣泛使用的科學應用進行了移植和評測,為ARM 超算使用者提供了有價值的參考和借鑒;③探索了基于ARM 超算的教學支撐實踐,為ARM 超算的運營和推廣提供了新視角。
目前,國產ARM 芯片廠商包括天津飛騰、華為海思和阿里平頭哥等[20]。其中,華為于2018 年推出的鯤鵬920 是業界首款7 nm 數據中心級ARM 處理器[10],且過往研究表明其擁有不錯的高性能計算應用運行性能,在綠色計算領域具有極強的競爭力[18]。因此,上海交通大學國產超算平臺基于華為鯤鵬920 處理器建設,共100 個計算節點,每節點配備128核(2.6 GHz)、256 G 內存(16通道DDR4 2933)。
由于超算集群的節點間通信流量極大,對鏈路帶寬和通信延遲均提出了很高的要求。目前,超級集群建設通常采用InfiniBand(IB)[21]和Omni-Path Architecture(OPA)[22]兩種高吞吐、低延遲的高性能通信架構。相較于OPA,IB的發展優勢更明顯,是HPC 領域中活躍的第一大互聯網絡[23],因此國產超算平臺采用IB 網絡承載節點之間的通信。
上海交通大學原有基于Intel Cascade Lake 6248 芯片建設的π2.0 超算平臺[24],也稱作x86 超算平臺。國產超算平臺的加入是整個超算中心的一次重大擴展,為了保障不同平臺使用體驗的一致性,國產超算平臺采用了和π2.0 平臺相同的CentOS 操作系統版本和Slurm 作業調度系統[25]版本作為基礎環境。其中,操作系統版本為CentOS Linux release 7.6.1810,作業調度系統版本為slurm-19.05.7-1.el7.aarch64。Slurm 作業調度系統通過修改Controller 節點和Worker 節點的配置文件,將國產超算平臺命名為ARM128C256G 隊列,并無縫接入π2.0 平臺,從而保持多計算平臺作業提交體驗的一致性。
為了充分保障網絡帶寬,在規劃國產超算平臺的網絡拓撲結構時,考慮了單一大型交換機的中心拓撲結構和胖樹拓撲結構兩種方式。過往研究表明,相較于前者,胖樹拓撲結構能在保障網絡帶寬的前提下價格更低,能有效降低機房布線施工的難度[26]。因此,國產超算平臺采用了簡化的胖樹拓撲結構組建IB 網絡,詳細拓撲結構如圖1所示。

Fig.1 IB network topology圖1 IB網絡拓撲結構
由圖1 可見,國產超算平臺的IB 網絡包含5 臺40 口小型交換機,其中3 臺作為接入層交換機,與計算節點直連;剩余2 臺作為核心層交換機,與接入層交換機進行網狀連接。IB 網絡中的每條物理線路支持200 GB/s 的通信帶寬,整個接入層與計算節點之間合計有10 000 GB/s 的通信帶寬,而接入層與核心層之間合計有11 000 GB/s 的通信帶寬。由于IB 交換機自帶路由選擇功能[27],可確保接入層與交換層的數據流量均勻分攤到每一條等價鏈路上,因此在胖樹拓撲結構下,任意兩個節點之間始終享有100 GB/s的可用通信帶寬。
為了提供給用戶無差別的數據訪問服務,國產超算平臺采用了以存儲為中心的設計思路,接入π2.0 超算平臺的統一存儲集群。π2.0 超算平臺中,存儲采用Lustre[28]并行文件系統,服務端版本為lustre-2.12.4,由兩臺MDS/MGS與10 臺OSS 服務器組成,內部采用OPA 高速網絡互聯。對于國產超算平臺而言,為接入π2.0 超算平臺的統一存儲集群,需解決Lustre 客戶端安裝、LNet 網絡配置兩個問題,打通與Lustre 服務端的流量限制。
Lustre 客戶端的版本選擇受限于服務端版本、操作系統類型、操作系統版本等因素,且由于官方預編譯軟件包未適配ARM 架構。因此,國產超算平臺嘗試對多個Lustre客戶端版本進行編譯安裝和測試,在綜合考慮兼容性、測試性能后選定lustre-client-2.12.4 版本。在網絡連接的實施方面,Lustre 服務端采用OPA 網絡,而國產超算平臺采用IB 網絡,因此需解決異構網絡的連通問題。首先,在國產超算平臺采用路由節點(LNet Router)橋接的方式與Lustre 服務端連通。在實際操作中,國產超算平臺中的3臺接入層交換機分別接入一臺路由節點,從而可分流與Lustre 服務端之間的數據流量,避免路由節點的吞吐量限制成為集群數據訪問性能的瓶頸。然后,在Lustre 服務端、客戶端、路由節點分別配置好LNet 路由,以成功打通OPA 和IB 異構網絡之間的流量。
基于上述操作,國產超算平臺成功接入了π2.0 超算平臺的Lustre 文件系統,從而構建了一套存儲、多種計算的數據密集型超算平臺。
面向超算平臺的計算軟件環境構建,存在基礎依賴差異大、編譯過程復雜、多版本共存等問題[29]。為解決上述問題,一系列軟件包管理器應運而生[30],國產超算平臺主要采用Spack[31]、Singularity[32]方式提供應用軟件的部署。
源碼編譯方式安裝的軟件能保證與ARM 架構兼容,可調整參數優化性能。基于以往研究經驗[29],Spack 使用方便、靈活、可定制,因此國產超算平臺采用Spack 源碼編譯方式作為首選軟件安裝方式。
Spack 作為一款包管理器,將編譯過程中的關鍵步驟抽象為一系列函數。在實際執行時,Spack 將根據用戶編寫的函數流程完成源碼下載、解壓、編譯、安裝等過程。Spack 編譯選項豐富,可指定軟件版本、優化選項、編譯器、依賴軟件包等參數,具有高度的靈活性、易用性和可擴展性。因此,Spack 編譯的軟件會自動生成相應的環境模塊(Environment Module),簡化了軟件調用的難度。目前,國產超算平臺已通過Spack 部署了大量常用軟件,如表1所示。

Table 1 Part of Apps installed by Spack on domestic supercomputing platform表1 國產超算平臺上由Spack部署的部分軟件
對于一些Spack 不支持、難以安裝或性能不佳的軟件,國產超算平臺使用容器作為重要補充手段。目前,流行的容器構建工具有Singularity 和Docker。其中,Docker 為普通用戶提供了特權模式(--privileged),允許其進入容器后以root 權限執行任何操作,更適合微服務的形式,但無法滿足高性能計算中多用戶環境的安全性要求[33]。因此,國產超算平臺選擇Singularity 作為構建鏡像的工具。
3.2.1 預編譯鏡像
對于常見的應用,國產超算平臺提供預編譯鏡像供用戶直接使用,整合了基礎軟件環境的基礎鏡像和部署了專業軟件的應用鏡像(見表2)。基礎鏡像將通用軟件依賴打包安裝,可避免重復性工作;應用鏡像則進行科學應用軟件的打包、測試和優化,方便用戶即開即用。對于國產超算平臺尚未提供的軟件,用戶可在Docker Hub、Singularity Hub 等開源鏡像軟件源上尋找合適的預編譯鏡像,只需執行Singularity pull 即可一鍵部署。

Table 2 Part of App images on domestic supercomputing platform表2 國產超算平臺的部分應用鏡像
3.2.2 非特權用戶自定義鏡像
出于安全性的考量,普通用戶無法在超算平臺使用Singularity recipe 制作鏡像,但為了滿足用戶自定義構建鏡像的需求,國產超算平臺采用Dockerized Singularity 方式,在Docker 中運行Singularity 來賦予非特權用戶構建SIF 鏡像的權限。具體為,國產超算平臺將一個計算節點作為鏡像構建節點,所有用戶共享一個build 賬號用于構建鏡像,用戶通過Docker 特權模式(--privileged)進入預裝有Singularity 的Docker 容器,在內部獲取root 權限即可執行Singularity recipe 進行鏡像構建,構建完畢后鏡像的所有者仍為root,普通用戶僅擁有讀取、執行權限。
綜上,國產超算平臺的非特權用戶鏡像構建流程具有集群安全、體驗一致、使用靈活的優勢,可滿足用戶對特殊科學軟件自定義構建的需求。
國產超算平臺通過對LAMMPS[34]、GATK(Genome Analysis Toolkit)[35]等科學應用進行正確性測試和性能測試,以驗證平臺軟件的可用性與性能,部分科學應用的測試結果如表3所示。

Table 3 Apps tested on ARM cluster表3 ARM集群上測試的科學應用
測試分別基于國產超算平臺和π2.0 超算平臺,由于兩大計算集群使用的文件存儲相同,集群內的網絡帶寬、集群與存儲間的網絡帶寬也相同,因此評測更多集中在兩大集群的處理器架構和單節點配置差異導致的應用性能差異。本文以LAMMPS和GATK應用為例,展示具體評測過程。
LAMMPS 是典型的分子動力學軟件,在材料科學、計算物理、計算化學中占有重要地位,具有計算密集型的特點[33]。上海交大計算平臺π2.0 超算平臺上約有5%的CPU 資源運行LAMMPS 計算,本次測試采用的軟件版本為LAMMPS 14 May 2021。LAMMPS 在國產超算平臺上通過Spack 進行源碼編譯安裝,調用全局部署的GCC 9.3.0、OpenMPI 4.0.3、FFTW 3.3.8 等基礎應用環境即可順利完成源碼安裝。
(1)正確性測試。基于LAMMPS 的兩個經典算例EAM和LJ,搭建50 萬原子的體系,在NPT 系統下運行5 萬步,觀察體系壓強。比較壓強曲線發現,LJ 壓強曲線在ARM 集群和x86 集群中幾乎完全重合,EAM 壓強曲線在后半段存在微弱波動,但整體維持在同一水平線。因分子動力學計算基于統計熱力學,原子存在熱漲落波動,一般溫度和壓強等宏觀參量只要穩定在目標值,結果就算合理。由此可知,國產超算平臺上的LAMMPS 具有計算可靠性。
(2)性能測試。采用LAMMPS 的算例EAM,在ARM 集群和x86 集群上的測試運行性能,分別比較1、2、4、8、16 個節點的運行速度。算例EAM 搭建了86.4 萬原子的體系,在NVE 系統下運行5 000 步,測試結果如圖2 所示。當LAMMPS 在ARM 集群單節點上運行時,其計算速度是x86集群單節點的2 倍;當擴展到16 個節點并行計算時,ARM集群相較于x86 集群仍保持1.5 倍的優勢。從兩大集群的并行效率(假定單節點并行效率為100%)來看,ARM 集群多節點并行的性能損失更明顯。

Fig.2 Performance of a system consisting of 864 000 atoms running 5 000 steps based on EAM examples圖2 采用EAM算例搭建86.4萬原子的體系運行5 000步的性能
上述測試結果表明,在國產超算平臺上運行LAMMPS具有計算正確性,并在單節點和多節點運行時能充分發揮ARM 處理器的多核優勢,以提升其性能。
GATK 是由Broad Institute 開發,用于生物信息高通量測序數據分析的工具集,包含一系列基因組和轉錄組分析工具,是生物信息分析中變異檢測的金標準[35],在π2.0 超算平臺上的機時占比達20%。測試采用的GATK 版本為4.2.0.0,在國產超算平臺上通過Spack 進行源碼編譯安裝,依賴環境為GCC 9.3.0,openjdk 1.8.0,Python 3.7.4,r 3.6.2,openblas 0.3.9。
(1)正確性驗證。基于官方提供的測試數據和測試流程(https://github.com/gatk-workflows),在ARM 集群和x86集群分別運行GATK 變異檢測流程,發現兩次結果中檢測出的位點總數一致,位點REF 值和ALT 值相同,僅約0.4%的位點存在PL 值差異,且差異較小。由于位點PL 值每次運行都存在微小差異,但并不影響最終結果,因此可表明ARM 集群上的GATK 具有計算可靠性。
(2)性能測試。基于上述相同的測試數據和分析流程,分別在ARM 集群單節點和x86 集群單節點上運行GATK 軟件的MarkDuplicates、BQSR 模塊,收集模塊運行時間。測試結果發現,MarkDuplicates 和BQSR 任務在ARM集群上的運行時間分別為x86 集群的70%和50%,總體上ARM 集群單節點運行GATK 能達到x86 集群性能的1.9 倍(見圖3)。

Fig.3 Performance comparison between GATK MarkDuplicates and BSQR modules圖3 GATK MarkDuplicates和BSQR模塊的性能比較
綜上,GATK 在ARM 集群上具有計算可靠性,且能充分發揮多核優勢來實現更高的單節點計算性能。
上海交通大學研制的計算教學在線實踐平臺,能為師生個性化定制在線實踐課程及配套實驗環境,支撐課堂直播、實驗實訓、作業考試、在線測評、微認證等全過程計算教學。平臺基于國產超算平臺構建虛擬仿真實驗環境,可與課程教學資源有機結合,使學生邊學邊練,在做中學。例如,材料智能設計與制備加工課程通過在國產超算平臺部署課程實驗鏡像模板,包含電子結構計算軟件、分子動力學軟件等軟件應用,密度泛函理論、蒙特卡羅等計算方法,以圖形化桌面、系統命令行、IDE 在線編程、Jupyter Notebook、3D 虛擬仿真等多種模式構建虛擬仿真實驗環境(見圖4),一站式提供課程所需的專業計算軟件,根據課程實驗規模實時調度計算資源,實現資源的自動管理。

Fig.4 Experimental environment for neural networks chapter in the course of intelligent design and preparation of materials圖4 材料智能設計與制備加工課程神經網絡章節的實驗環境
目前,國產超算平臺已部署、上線了人工智能數學基礎、多尺度材料模擬與計算、航空航天計算方法、分子模擬的理論與實踐、計算生物學、前沿技術與計算實踐、云計算及虛擬化等多門課程的虛擬仿真實驗環境,涵蓋人工智能、材料、化學、生物、航空航天眾多領域。
作為國內高校第一臺ARM 超算,上海交通大學國產超算平臺的建設為兄弟高校建設和使用ARM 超算積累了經驗,踐行的數據密集型超算建設,為超算平臺的發展提供了技術探索。平臺實踐表明,當前ARM 架構的軟件生態已可滿足高校主流的科學計算需求。進一步,國產超算平臺可為計算課程實踐提供良好的支撐環境,通過部署課程實驗鏡像模板,將虛擬仿真實驗環境與課程教學資源有機結合,為師生提供個性化定制的在線實踐課程及配套實驗環境。
國產超算平臺的建設和教學支撐環境的構建,為科學計算用戶和學生提供了先進的計算資源和教學支持,不僅提升了學校的科研水平和教學質量,也為學生的學習和發展提供了更好的條件和機會。上海交通大學將繼續致力于推動科學計算和教學的創新發展,為學術研究和教育培養作出更大貢獻。