張戰(zhàn)炳,于瀟雪,高亦沁,周 蕓,周衍曉,林新華
(1.上海交通大學(xué) 網(wǎng)絡(luò)信息中心,上海 200240;2.上海擎云物聯(lián)網(wǎng)股份有限公司,上海 200070)
高性能計算(High Performance Computing,HPC)在推動科學(xué)、工業(yè)、醫(yī)學(xué)和教育的發(fā)展進程中至關(guān)重要,可大規(guī)模服務(wù)于全校教學(xué)、科研和管理等環(huán)節(jié)[1-3]。長期以來,高性能計算機的處理器都被通用性強且性能高的Intel x86架構(gòu)處理器所壟斷,包括中國在內(nèi)的很多國家都被迫依賴進口芯片來部署大規(guī)模超算系統(tǒng)[4]。
近年來,隨著功耗問題得到廣泛重視[5],一直活躍于移動、嵌入式領(lǐng)域的ARM 芯片開始憑借其低功耗、低費用的優(yōu)勢在HPC領(lǐng)域發(fā)力[6-7]。美國Marvel 公司制造的ThundeX2[8]、日本富士通設(shè)計的A64FX[9]和中國華為研發(fā)的鯤鵬920 芯片[10],正成為HPC 傳統(tǒng)x86 架構(gòu)處理器的替代品[11]。國外研究將ARM 處理器應(yīng)用于HPC 系統(tǒng)的時間較早,在2013 年就有研究者評估了ARM 處理器應(yīng)用于HPC 系統(tǒng)的可能性[12]。2015 年,歐洲聯(lián)合研究項目勃朗峰(Mont-Blanc)發(fā)布了基于ARM Cortex-A15 處理器的超算原型[13-14]。2020 年,日本基于ARM A64FX 處理器建設(shè)的富岳(Fugaku)[15-16]問鼎全球高性能計算機TOP 500 榜單,成為世界上首個基于ARM 架構(gòu)的頂級超級計算機,展示了ARM 架構(gòu)在超算領(lǐng)域的非凡潛力。而在國內(nèi),將ARM 處理器引入HPC 集群的時間較晚,2019 年開始逐漸有針對面向HPC 的ARM 處理器評測[17-19]。在高校,目前仍未見ARM 架構(gòu)超算的建設(shè)和使用。
為擺脫進口依賴,響應(yīng)國家掌握核心技術(shù),加快推進國產(chǎn)自主可控替代的號召,上海交通大學(xué)基于國產(chǎn)ARM芯片建設(shè)了一臺超級計算機——國產(chǎn)超算平臺,也稱為ARM 超算平臺。上海交通大學(xué)國產(chǎn)超算平臺是國內(nèi)高校首個建成和投入使用的ARM 架構(gòu)超算,可為兄弟高校建設(shè)和使用ARM 超算積累經(jīng)驗。
為了源源不斷地培養(yǎng)高水平創(chuàng)新人才,上海交通大學(xué)在國內(nèi)高校率先提出將計算深度融入專業(yè)課教學(xué)的新理念。通過深度融合計算與專業(yè)課,研發(fā)數(shù)據(jù)驅(qū)動的全過程計算教學(xué)在線實踐平臺,以國產(chǎn)超算平臺構(gòu)建計算課程教學(xué)支撐環(huán)境,支撐線上線下混合式教學(xué)和大規(guī)模虛擬仿真實驗教學(xué),為學(xué)生提供沉浸式的在線學(xué)習(xí)體驗和個性化的學(xué)習(xí)資源服務(wù)。這是國內(nèi)高校首次踐行基于ARM 超算的教學(xué)支撐實踐,為ARM 超算的推廣應(yīng)用提供了一個新的視角。
該工作主要有以下3 個創(chuàng)新點:①建設(shè)并運營了高校首臺ARM 架構(gòu)超算,為ARM 超算的建設(shè)和使用積累了經(jīng)驗;②對超算上廣泛使用的科學(xué)應(yīng)用進行了移植和評測,為ARM 超算使用者提供了有價值的參考和借鑒;③探索了基于ARM 超算的教學(xué)支撐實踐,為ARM 超算的運營和推廣提供了新視角。
目前,國產(chǎn)ARM 芯片廠商包括天津飛騰、華為海思和阿里平頭哥等[20]。其中,華為于2018 年推出的鯤鵬920 是業(yè)界首款7 nm 數(shù)據(jù)中心級ARM 處理器[10],且過往研究表明其擁有不錯的高性能計算應(yīng)用運行性能,在綠色計算領(lǐng)域具有極強的競爭力[18]。因此,上海交通大學(xué)國產(chǎn)超算平臺基于華為鯤鵬920 處理器建設(shè),共100 個計算節(jié)點,每節(jié)點配備128核(2.6 GHz)、256 G 內(nèi)存(16通道DDR4 2933)。
由于超算集群的節(jié)點間通信流量極大,對鏈路帶寬和通信延遲均提出了很高的要求。目前,超級集群建設(shè)通常采用InfiniBand(IB)[21]和Omni-Path Architecture(OPA)[22]兩種高吞吐、低延遲的高性能通信架構(gòu)。相較于OPA,IB的發(fā)展優(yōu)勢更明顯,是HPC 領(lǐng)域中活躍的第一大互聯(lián)網(wǎng)絡(luò)[23],因此國產(chǎn)超算平臺采用IB 網(wǎng)絡(luò)承載節(jié)點之間的通信。
上海交通大學(xué)原有基于Intel Cascade Lake 6248 芯片建設(shè)的π2.0 超算平臺[24],也稱作x86 超算平臺。國產(chǎn)超算平臺的加入是整個超算中心的一次重大擴展,為了保障不同平臺使用體驗的一致性,國產(chǎn)超算平臺采用了和π2.0 平臺相同的CentOS 操作系統(tǒng)版本和Slurm 作業(yè)調(diào)度系統(tǒng)[25]版本作為基礎(chǔ)環(huán)境。其中,操作系統(tǒng)版本為CentOS Linux release 7.6.1810,作業(yè)調(diào)度系統(tǒng)版本為slurm-19.05.7-1.el7.aarch64。Slurm 作業(yè)調(diào)度系統(tǒng)通過修改Controller 節(jié)點和Worker 節(jié)點的配置文件,將國產(chǎn)超算平臺命名為ARM128C256G 隊列,并無縫接入π2.0 平臺,從而保持多計算平臺作業(yè)提交體驗的一致性。
為了充分保障網(wǎng)絡(luò)帶寬,在規(guī)劃國產(chǎn)超算平臺的網(wǎng)絡(luò)拓撲結(jié)構(gòu)時,考慮了單一大型交換機的中心拓撲結(jié)構(gòu)和胖樹拓撲結(jié)構(gòu)兩種方式。過往研究表明,相較于前者,胖樹拓撲結(jié)構(gòu)能在保障網(wǎng)絡(luò)帶寬的前提下價格更低,能有效降低機房布線施工的難度[26]。因此,國產(chǎn)超算平臺采用了簡化的胖樹拓撲結(jié)構(gòu)組建IB 網(wǎng)絡(luò),詳細拓撲結(jié)構(gòu)如圖1所示。
Fig.1 IB network topology圖1 IB網(wǎng)絡(luò)拓撲結(jié)構(gòu)
由圖1 可見,國產(chǎn)超算平臺的IB 網(wǎng)絡(luò)包含5 臺40 口小型交換機,其中3 臺作為接入層交換機,與計算節(jié)點直連;剩余2 臺作為核心層交換機,與接入層交換機進行網(wǎng)狀連接。IB 網(wǎng)絡(luò)中的每條物理線路支持200 GB/s 的通信帶寬,整個接入層與計算節(jié)點之間合計有10 000 GB/s 的通信帶寬,而接入層與核心層之間合計有11 000 GB/s 的通信帶寬。由于IB 交換機自帶路由選擇功能[27],可確保接入層與交換層的數(shù)據(jù)流量均勻分?jǐn)偟矫恳粭l等價鏈路上,因此在胖樹拓撲結(jié)構(gòu)下,任意兩個節(jié)點之間始終享有100 GB/s的可用通信帶寬。
為了提供給用戶無差別的數(shù)據(jù)訪問服務(wù),國產(chǎn)超算平臺采用了以存儲為中心的設(shè)計思路,接入π2.0 超算平臺的統(tǒng)一存儲集群。π2.0 超算平臺中,存儲采用Lustre[28]并行文件系統(tǒng),服務(wù)端版本為lustre-2.12.4,由兩臺MDS/MGS與10 臺OSS 服務(wù)器組成,內(nèi)部采用OPA 高速網(wǎng)絡(luò)互聯(lián)。對于國產(chǎn)超算平臺而言,為接入π2.0 超算平臺的統(tǒng)一存儲集群,需解決Lustre 客戶端安裝、LNet 網(wǎng)絡(luò)配置兩個問題,打通與Lustre 服務(wù)端的流量限制。
Lustre 客戶端的版本選擇受限于服務(wù)端版本、操作系統(tǒng)類型、操作系統(tǒng)版本等因素,且由于官方預(yù)編譯軟件包未適配ARM 架構(gòu)。因此,國產(chǎn)超算平臺嘗試對多個Lustre客戶端版本進行編譯安裝和測試,在綜合考慮兼容性、測試性能后選定lustre-client-2.12.4 版本。在網(wǎng)絡(luò)連接的實施方面,Lustre 服務(wù)端采用OPA 網(wǎng)絡(luò),而國產(chǎn)超算平臺采用IB 網(wǎng)絡(luò),因此需解決異構(gòu)網(wǎng)絡(luò)的連通問題。首先,在國產(chǎn)超算平臺采用路由節(jié)點(LNet Router)橋接的方式與Lustre 服務(wù)端連通。在實際操作中,國產(chǎn)超算平臺中的3臺接入層交換機分別接入一臺路由節(jié)點,從而可分流與Lustre 服務(wù)端之間的數(shù)據(jù)流量,避免路由節(jié)點的吞吐量限制成為集群數(shù)據(jù)訪問性能的瓶頸。然后,在Lustre 服務(wù)端、客戶端、路由節(jié)點分別配置好LNet 路由,以成功打通OPA 和IB 異構(gòu)網(wǎng)絡(luò)之間的流量。
基于上述操作,國產(chǎn)超算平臺成功接入了π2.0 超算平臺的Lustre 文件系統(tǒng),從而構(gòu)建了一套存儲、多種計算的數(shù)據(jù)密集型超算平臺。
面向超算平臺的計算軟件環(huán)境構(gòu)建,存在基礎(chǔ)依賴差異大、編譯過程復(fù)雜、多版本共存等問題[29]。為解決上述問題,一系列軟件包管理器應(yīng)運而生[30],國產(chǎn)超算平臺主要采用Spack[31]、Singularity[32]方式提供應(yīng)用軟件的部署。
源碼編譯方式安裝的軟件能保證與ARM 架構(gòu)兼容,可調(diào)整參數(shù)優(yōu)化性能?;谝酝芯拷?jīng)驗[29],Spack 使用方便、靈活、可定制,因此國產(chǎn)超算平臺采用Spack 源碼編譯方式作為首選軟件安裝方式。
Spack 作為一款包管理器,將編譯過程中的關(guān)鍵步驟抽象為一系列函數(shù)。在實際執(zhí)行時,Spack 將根據(jù)用戶編寫的函數(shù)流程完成源碼下載、解壓、編譯、安裝等過程。Spack 編譯選項豐富,可指定軟件版本、優(yōu)化選項、編譯器、依賴軟件包等參數(shù),具有高度的靈活性、易用性和可擴展性。因此,Spack 編譯的軟件會自動生成相應(yīng)的環(huán)境模塊(Environment Module),簡化了軟件調(diào)用的難度。目前,國產(chǎn)超算平臺已通過Spack 部署了大量常用軟件,如表1所示。
Table 1 Part of Apps installed by Spack on domestic supercomputing platform表1 國產(chǎn)超算平臺上由Spack部署的部分軟件
對于一些Spack 不支持、難以安裝或性能不佳的軟件,國產(chǎn)超算平臺使用容器作為重要補充手段。目前,流行的容器構(gòu)建工具有Singularity 和Docker。其中,Docker 為普通用戶提供了特權(quán)模式(--privileged),允許其進入容器后以root 權(quán)限執(zhí)行任何操作,更適合微服務(wù)的形式,但無法滿足高性能計算中多用戶環(huán)境的安全性要求[33]。因此,國產(chǎn)超算平臺選擇Singularity 作為構(gòu)建鏡像的工具。
3.2.1 預(yù)編譯鏡像
對于常見的應(yīng)用,國產(chǎn)超算平臺提供預(yù)編譯鏡像供用戶直接使用,整合了基礎(chǔ)軟件環(huán)境的基礎(chǔ)鏡像和部署了專業(yè)軟件的應(yīng)用鏡像(見表2)?;A(chǔ)鏡像將通用軟件依賴打包安裝,可避免重復(fù)性工作;應(yīng)用鏡像則進行科學(xué)應(yīng)用軟件的打包、測試和優(yōu)化,方便用戶即開即用。對于國產(chǎn)超算平臺尚未提供的軟件,用戶可在Docker Hub、Singularity Hub 等開源鏡像軟件源上尋找合適的預(yù)編譯鏡像,只需執(zhí)行Singularity pull 即可一鍵部署。
Table 2 Part of App images on domestic supercomputing platform表2 國產(chǎn)超算平臺的部分應(yīng)用鏡像
3.2.2 非特權(quán)用戶自定義鏡像
出于安全性的考量,普通用戶無法在超算平臺使用Singularity recipe 制作鏡像,但為了滿足用戶自定義構(gòu)建鏡像的需求,國產(chǎn)超算平臺采用Dockerized Singularity 方式,在Docker 中運行Singularity 來賦予非特權(quán)用戶構(gòu)建SIF 鏡像的權(quán)限。具體為,國產(chǎn)超算平臺將一個計算節(jié)點作為鏡像構(gòu)建節(jié)點,所有用戶共享一個build 賬號用于構(gòu)建鏡像,用戶通過Docker 特權(quán)模式(--privileged)進入預(yù)裝有Singularity 的Docker 容器,在內(nèi)部獲取root 權(quán)限即可執(zhí)行Singularity recipe 進行鏡像構(gòu)建,構(gòu)建完畢后鏡像的所有者仍為root,普通用戶僅擁有讀取、執(zhí)行權(quán)限。
綜上,國產(chǎn)超算平臺的非特權(quán)用戶鏡像構(gòu)建流程具有集群安全、體驗一致、使用靈活的優(yōu)勢,可滿足用戶對特殊科學(xué)軟件自定義構(gòu)建的需求。
國產(chǎn)超算平臺通過對LAMMPS[34]、GATK(Genome Analysis Toolkit)[35]等科學(xué)應(yīng)用進行正確性測試和性能測試,以驗證平臺軟件的可用性與性能,部分科學(xué)應(yīng)用的測試結(jié)果如表3所示。
Table 3 Apps tested on ARM cluster表3 ARM集群上測試的科學(xué)應(yīng)用
測試分別基于國產(chǎn)超算平臺和π2.0 超算平臺,由于兩大計算集群使用的文件存儲相同,集群內(nèi)的網(wǎng)絡(luò)帶寬、集群與存儲間的網(wǎng)絡(luò)帶寬也相同,因此評測更多集中在兩大集群的處理器架構(gòu)和單節(jié)點配置差異導(dǎo)致的應(yīng)用性能差異。本文以LAMMPS和GATK應(yīng)用為例,展示具體評測過程。
LAMMPS 是典型的分子動力學(xué)軟件,在材料科學(xué)、計算物理、計算化學(xué)中占有重要地位,具有計算密集型的特點[33]。上海交大計算平臺π2.0 超算平臺上約有5%的CPU 資源運行LAMMPS 計算,本次測試采用的軟件版本為LAMMPS 14 May 2021。LAMMPS 在國產(chǎn)超算平臺上通過Spack 進行源碼編譯安裝,調(diào)用全局部署的GCC 9.3.0、OpenMPI 4.0.3、FFTW 3.3.8 等基礎(chǔ)應(yīng)用環(huán)境即可順利完成源碼安裝。
(1)正確性測試?;贚AMMPS 的兩個經(jīng)典算例EAM和LJ,搭建50 萬原子的體系,在NPT 系統(tǒng)下運行5 萬步,觀察體系壓強。比較壓強曲線發(fā)現(xiàn),LJ 壓強曲線在ARM 集群和x86 集群中幾乎完全重合,EAM 壓強曲線在后半段存在微弱波動,但整體維持在同一水平線。因分子動力學(xué)計算基于統(tǒng)計熱力學(xué),原子存在熱漲落波動,一般溫度和壓強等宏觀參量只要穩(wěn)定在目標(biāo)值,結(jié)果就算合理。由此可知,國產(chǎn)超算平臺上的LAMMPS 具有計算可靠性。
(2)性能測試。采用LAMMPS 的算例EAM,在ARM 集群和x86 集群上的測試運行性能,分別比較1、2、4、8、16 個節(jié)點的運行速度。算例EAM 搭建了86.4 萬原子的體系,在NVE 系統(tǒng)下運行5 000 步,測試結(jié)果如圖2 所示。當(dāng)LAMMPS 在ARM 集群單節(jié)點上運行時,其計算速度是x86集群單節(jié)點的2 倍;當(dāng)擴展到16 個節(jié)點并行計算時,ARM集群相較于x86 集群仍保持1.5 倍的優(yōu)勢。從兩大集群的并行效率(假定單節(jié)點并行效率為100%)來看,ARM 集群多節(jié)點并行的性能損失更明顯。
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步的性能
上述測試結(jié)果表明,在國產(chǎn)超算平臺上運行LAMMPS具有計算正確性,并在單節(jié)點和多節(jié)點運行時能充分發(fā)揮ARM 處理器的多核優(yōu)勢,以提升其性能。
GATK 是由Broad Institute 開發(fā),用于生物信息高通量測序數(shù)據(jù)分析的工具集,包含一系列基因組和轉(zhuǎn)錄組分析工具,是生物信息分析中變異檢測的金標(biāo)準(zhǔn)[35],在π2.0 超算平臺上的機時占比達20%。測試采用的GATK 版本為4.2.0.0,在國產(chǎn)超算平臺上通過Spack 進行源碼編譯安裝,依賴環(huán)境為GCC 9.3.0,openjdk 1.8.0,Python 3.7.4,r 3.6.2,openblas 0.3.9。
(1)正確性驗證?;诠俜教峁┑臏y試數(shù)據(jù)和測試流程(https://github.com/gatk-workflows),在ARM 集群和x86集群分別運行GATK 變異檢測流程,發(fā)現(xiàn)兩次結(jié)果中檢測出的位點總數(shù)一致,位點REF 值和ALT 值相同,僅約0.4%的位點存在PL 值差異,且差異較小。由于位點PL 值每次運行都存在微小差異,但并不影響最終結(jié)果,因此可表明ARM 集群上的GATK 具有計算可靠性。
(2)性能測試?;谏鲜鱿嗤臏y試數(shù)據(jù)和分析流程,分別在ARM 集群單節(jié)點和x86 集群單節(jié)點上運行GATK 軟件的MarkDuplicates、BQSR 模塊,收集模塊運行時間。測試結(jié)果發(fā)現(xiàn),MarkDuplicates 和BQSR 任務(wù)在ARM集群上的運行時間分別為x86 集群的70%和50%,總體上ARM 集群單節(jié)點運行GATK 能達到x86 集群性能的1.9 倍(見圖3)。
Fig.3 Performance comparison between GATK MarkDuplicates and BSQR modules圖3 GATK MarkDuplicates和BSQR模塊的性能比較
綜上,GATK 在ARM 集群上具有計算可靠性,且能充分發(fā)揮多核優(yōu)勢來實現(xiàn)更高的單節(jié)點計算性能。
上海交通大學(xué)研制的計算教學(xué)在線實踐平臺,能為師生個性化定制在線實踐課程及配套實驗環(huán)境,支撐課堂直播、實驗實訓(xùn)、作業(yè)考試、在線測評、微認(rèn)證等全過程計算教學(xué)。平臺基于國產(chǎn)超算平臺構(gòu)建虛擬仿真實驗環(huán)境,可與課程教學(xué)資源有機結(jié)合,使學(xué)生邊學(xué)邊練,在做中學(xué)。例如,材料智能設(shè)計與制備加工課程通過在國產(chǎn)超算平臺部署課程實驗鏡像模板,包含電子結(jié)構(gòu)計算軟件、分子動力學(xué)軟件等軟件應(yīng)用,密度泛函理論、蒙特卡羅等計算方法,以圖形化桌面、系統(tǒng)命令行、IDE 在線編程、Jupyter Notebook、3D 虛擬仿真等多種模式構(gòu)建虛擬仿真實驗環(huán)境(見圖4),一站式提供課程所需的專業(yè)計算軟件,根據(jù)課程實驗規(guī)模實時調(diào)度計算資源,實現(xiàn)資源的自動管理。
Fig.4 Experimental environment for neural networks chapter in the course of intelligent design and preparation of materials圖4 材料智能設(shè)計與制備加工課程神經(jīng)網(wǎng)絡(luò)章節(jié)的實驗環(huán)境
目前,國產(chǎn)超算平臺已部署、上線了人工智能數(shù)學(xué)基礎(chǔ)、多尺度材料模擬與計算、航空航天計算方法、分子模擬的理論與實踐、計算生物學(xué)、前沿技術(shù)與計算實踐、云計算及虛擬化等多門課程的虛擬仿真實驗環(huán)境,涵蓋人工智能、材料、化學(xué)、生物、航空航天眾多領(lǐng)域。
作為國內(nèi)高校第一臺ARM 超算,上海交通大學(xué)國產(chǎn)超算平臺的建設(shè)為兄弟高校建設(shè)和使用ARM 超算積累了經(jīng)驗,踐行的數(shù)據(jù)密集型超算建設(shè),為超算平臺的發(fā)展提供了技術(shù)探索。平臺實踐表明,當(dāng)前ARM 架構(gòu)的軟件生態(tài)已可滿足高校主流的科學(xué)計算需求。進一步,國產(chǎn)超算平臺可為計算課程實踐提供良好的支撐環(huán)境,通過部署課程實驗鏡像模板,將虛擬仿真實驗環(huán)境與課程教學(xué)資源有機結(jié)合,為師生提供個性化定制的在線實踐課程及配套實驗環(huán)境。
國產(chǎn)超算平臺的建設(shè)和教學(xué)支撐環(huán)境的構(gòu)建,為科學(xué)計算用戶和學(xué)生提供了先進的計算資源和教學(xué)支持,不僅提升了學(xué)校的科研水平和教學(xué)質(zhì)量,也為學(xué)生的學(xué)習(xí)和發(fā)展提供了更好的條件和機會。上海交通大學(xué)將繼續(xù)致力于推動科學(xué)計算和教學(xué)的創(chuàng)新發(fā)展,為學(xué)術(shù)研究和教育培養(yǎng)作出更大貢獻。