天天看點

華中科技大學:高性能計算雲平台設計與實作

作者:中國教育網

雲計算是一種利用網際網路實作資源按需擷取、彈性伸縮的計算模式。相對于傳統高性能計算而言,雲計算有諸如可擴充性、隔離性、遷移性、可定制以及彈性資源等很多優點。

華中科技大學從2020年開始建設高性能計算雲平台,引入雲計算的資源管理和服務模式,采用容器和虛拟化技術并存的方式将傳統高性能計算與雲計算進行有效融合,對高性能計算資源進行虛拟化、容器化和多租戶管理,充分發揮雲計算優勢,降低使用者門檻,提升服務效率和品質,并支援更多樣化的計算場景。

架構設計

硬體資源

華中科技大學:高性能計算雲平台設計與實作

圖1 華中科技大學高性能計算雲平台(一期)硬體拓撲

圖1為華中科技大學高性能計算雲平台(一期)的硬體拓撲圖,平台共配置2個登入管理節點、58個計算節點、4個IO節點和3台儲存設備。

其中,計算節點包含48個CPU節點、8個GPU節點、2個胖節點;IO節點包含2個中繼資料節點和2個對象存儲節點;儲存設備包含1台中繼資料存儲和2台對象資料存儲。

叢集CPU核心共計3072個,GPU卡共計32張,CPU理論浮點計算峰值為208.4864Tflops,GPU雙精度理論計算能力為262.4Tflops,共享存儲系統總容量為3PB。

軟體架構

高性能計算雲平台作為校級開放性公共服務設施,目的是為全校所有學科專業領域中存在高性能計算需求的使用者提供高效率和高品質的計算服務,讓所有不同的專業背景、經驗水準、使用習慣的使用者都能找到适合自己的使用方式,充分發揮平台的公共服務價值。

華中科技大學:高性能計算雲平台設計與實作

圖2 華中科技大學高性能計算雲平台軟體架構

圖2為平台的軟體架構,通過容器和虛拟化技術,将校内的本地硬體資源和作為資源補充的公有雲資源進行池化,通過“混合雲”實作計算資源雙向流通,以快速部署、快速擴充、平台互通的能力突破大規模計算性能瓶頸。

通過對底層資源進行抽象、封裝、整合以及排程管理,提供給終端使用者一個可伸縮、可定制、可隔離的即插即用式的計算環境,以滿足高性能計算、人工智能計算、實驗教學等不同應用場景。平台為每個使用者都提供獨立的計算環境,不同使用者建立的資源執行個體和應用資料都是私有的,進而解決了不同使用者的應用程式運作環境沖突的問題。

通過與校園統一身份認證系統對接,免去了傳統高性能計算叢集煩瑣的賬号申請開通步驟,通過先進的前端展示技術和簡潔友好的互動方式将使用者的使用門檻降到最低,讓全校每一位師生都有機會享受到高性能計算帶來的價值。

關鍵技術

容器和虛拟化

容器和虛拟化技術各有特點,通過結合兩者的優勢,進而充分滿足全校不同專業的科研團隊對易用性、計算性能、環境封裝、應用部署等各方面的需求。

容器可以了解成是一組彼此隔離且資源被限制的程序,其主要是通過Linux核心的Namespace、Cgroups和Chroot等技術實作的。使用容器,應用程式可以在幾乎任何地方以相同的方式運作,進而免去了複雜的軟體部署和環境配置工作。容器技術非常輕量,通過共享主控端核心的方式降低資源開銷,能夠提供幾乎與實體機一樣的性能,非常适合以高性能計算為核心的應用場景。

硬體虛拟化通常可以分為全虛拟化和半虛拟化兩種,其中KVM是基于虛拟機管理器(Hypervisor)的全功能虛拟化方案。虛拟化技術開銷相對較大,但支援異構作業系統,允許使用者使用Windows系統或根據科研需要選擇特定的Linux核心及驅動。

華中科技大學:高性能計算雲平台設計與實作

圖3 容器與虛拟化并存的技術架構

圖3為平台容器與虛拟化并存的架構,容器和虛拟機所在的主控端節點通過資源排程系統進行統一配置設定管理。采用容器和虛拟化有以下幾點優勢:

首先,容器叢集通過對節點規模的彈性伸縮實作資源的靈活使用,避免叢集作業高峰期的長期排隊和低谷期的資源閑置,同時能在不改變傳統高性能計算使用者使用習慣的前提下,提供更多樣化的計算環境。

其次,通過容器技術,使用者可以共享節點資源,在單個節點上運作多個環境隔離的小規模計算任務,很好地解決了傳統高性能計算叢集資源獨占、使用率不高的問題。

再次,容器化應用通過封裝相關依賴環境,實作應用執行個體的即時傳遞,讓使用者可以更高效地使用計算資源。最後,結合硬體虛拟化技術,滿足使用者對計算環境更高程度的定制能力,如定制更新作業系統、更新系統軟體、調整參數配置等。

容器網絡

高性能計算場景下,資料密集型應用對網絡通信的性能要求非常高。平台采用的容器技術,通過對InfiniBand和OpenMpi的友好支援,能夠提供接近裸機RDMA的網絡性能。通過Vxlan覆寫網絡技術使邏輯網絡與實體網絡解耦,在适配容器和虛拟機環境的同時,滿足多租戶網絡隔離等靈活的組網需求。

華中科技大學:高性能計算雲平台設計與實作

圖4 平台容器網絡拓撲

在平台中,每個使用者都配置設定獨立的私有網絡,保證不同使用者之間的網絡隔離。同一使用者的不同執行個體資源組成兩個獨立的網絡區域。以容器叢集為例,一方面,容器通過端口映射對外暴露服務,使用者通過校園網與容器執行個體進行互動;另一方面,容器與容器之間,最終通過InfiniBand計算網絡實作互連互通(如圖4所示),這種組網方式也符合傳統高性能計算的網絡拓撲結構。

資料管理

不同使用者之間的資料互相隔離,同一使用者不同執行個體之間則共享資料存儲。通過Lustre檔案系統為所有執行個體呈現使用者資料的統一命名空間。由于使用者的檔案資料在不同執行個體之間共享互通,使用者在進行科學計算時,可以首先申請單節點容器執行個體對輸入資料進行預處理,然後在高性能計算容器叢集中送出批處理作業進行大規模數值計算,最後通過對應的容器執行個體對計算結果進行可視化分析。通過資料管理,能同時滿足使用者的前處理、高性能計算和後處理等場景需求,這極大地提高了使用者的科研效率。

服務模式

為滿足全校師生複雜多樣的個性化計算需求,相容不同技術水準和使用習慣的使用者,平台借鑒雲計算的服務模式,以計算環境即服務、計算資源即服務和計算軟體即服務的思想,在不損失計算性能的前提下為使用者提供靈活多樣的服務模式。如表1所示,平台主要支援三種服務模式:公共叢集模式、獨占叢集模式和私有執行個體模式。

表1 平台服務模式

華中科技大學:高性能計算雲平台設計與實作

公共叢集模式

以容器叢集形式提供全校共享的高性能計算環境,叢集節點規模由管理者預配置設定。使用者在公共叢集中隻具有普通使用者權限,所有使用者通過SSH用戶端工具或Web控制台登入使用叢集。與傳統高性能計算平台的使用方式相同,使用者在公共叢集登入節點送出作業,通過Slurm作業排程系統将使用者送出的作業任務配置設定到相應的計算節點執行。對于計算規模較大的科研團隊,并且熟悉Linux指令和作業排程系統的,可以使用公共叢集服務模式。

獨占叢集模式

以容器叢集形式提供使用者獨占的多節點計算資源,使用者在自己申請的獨占叢集執行個體中具有Root權限,可以對系統進行定制化修改,安裝配置自定義的作業排程系統或者直接使用應用程式自帶的排程子產品進行計算任務管理。使用者可以對獨占叢集的節點規模進行伸縮調整。針對學校某些院系或課題組,需要長期使用計算資源的科研使用者很多,希望獨享使用時,可以由院系負責人或課題組長申請使用獨占叢集模式,直接租用所需的計算資源。

私有執行個體模式

以單節點容器或虛機形式為終端使用者提供直接可用的計算軟體,使用者在私有執行個體中具有Root權限,這種資源使用方式可以提供遠端桌面以滿足圖形化界面的互動需求。私有執行個體與SaaS服務模式類似,使用者無需計算機背景,不需要熟悉Linux操作,直接在平台應用商店申請需要的計算軟體即可上手使用。使用者可以前期使用此模式進行小規模互動式計算,當發現計算量較大,再逐漸轉移到公共叢集模式。與此同時,私有執行個體模式因其按需即時傳遞的特點,還能應用于實驗教學等場景。

可以看出,針對不同應用場景的終端使用者,都可以根據計算規模為其提供如高性能計算叢集、多節點叢集、單節點容器、虛拟機等彈性資源,最大化滿足所有與教學科研相關的計算需求。

運作情況

平台一期一共有58個實體計算節點,将其中的31台CPU實體節點和6台GPU節點(共1952個CPU核心)作為公共叢集資源池,剩下的實體資源用于提供獨占叢集和私有執行個體。平台從2021年11月開始試運作,至今累計注冊使用者超過1000名,分别來自能源與動力工程學院、實體學院、環境科學與工程學院等18個學院,使用者角色涵蓋了大學生、碩士研究所學生、博士研究所學生和教授。平台公共叢集CPU累計使用940萬核,累計申請應用執行個體578個,其中15個為獨占CPU叢集執行個體。

華中科技大學:高性能計算雲平台設計與實作

圖5 公共叢集CPU使用率

圖5為某一周内,平台公共叢集的CPU使用情況。從圖中可以發現,公共叢集的資源長期處于飽和狀态,甚至出現節點資源全部被占用的情況。

華中科技大學:高性能計算雲平台設計與實作

圖6 平台某一時刻正在運作的獨占執行個體數量

圖6為平台某一時刻正在運作的私有執行個體情況。使用者在申請私有執行個體時可以選擇所需的CPU核數和記憶體大小,申請獨占CPU叢集時可以選擇叢集的節點數量。據圖可知,平台此時正在運作的Ansys應用最多,通過背景發現,運作Ansys執行個體的使用者多為大學生和低年級的研究所學生,原因可能是他們的計算規模不大,并且更習慣使用圖形界面操作。

平台整個試運作期間功能穩定,使用者回報良好,很多沒有任何高性能計算經驗的使用者都能很快上手使用計算資源,平台的公共服務價值得以展現。

傳統校級高性能計算平台的服務模式面臨不少問題。首先,其形式單一的計算模式無法滿足校内使用者複雜多樣的個性化需求;

其次,傳統的高性能計算叢集通常采用節點獨占的方式配置設定資源,導緻實際使用率不高,一旦采用節點共享的作業送出方式又可能引起運作環境沖突等問題;

最後,傳統高性能計算平台的使用者使用門檻普遍較高,不僅需要熟悉Linux基本操作指令,還必須掌握作業排程系統的腳本編寫,使用者使用高性能計算資源的學習成本太高,不具備公共服務的簡單易用的特性。

雲計算是一種利用網際網路技術,以服務的方式為使用者提供按需申請、即時傳遞的虛拟資源的計算模式。基于雲計算的服務思想,将高性能計算和雲計算進行有效融合,能夠解決傳統校級高性能計算平台面臨的諸多問題。

通過高性能計算與雲計算模式之間的自由切換,提高資源整體使用率。作為校級公共服務設施,為使用者提供一種更易互動的服務模式,使其将更多的精力放在科研本身,提高科研效率,在兼顧傳統高性能計算場景的同時,适配更多樣化的計算場景。

作者:張策、吳馳、龍濤(華中科技大學網絡與計算中心)

責編:陳永傑

投稿或合作,請聯系:[email protected]

繼續閱讀