3.5 雲上高性能計算
高性能計算(High Performance Computing,HPC)是計算技術發展最快的領域。 因為現代計算機最早的任務是為戰場計算炮彈的彈道,是以,高性能計算都有共性, 即先在足夠強大的計算機上仿真和模組化、并行化、離散方程求解,再輸出為人或機器可以了解和應用的結果。高性能計算由于面對的求解任務的強度大,複雜度和精度高,是以從早期的向量機、小型機到現代基于通用伺服器的高性能計算叢集,都采取了并行處理的程式設計模式。高性能計算因而又被稱為并行計算(Parallel Computing), 和網際網路上的分布計算(Distributed Computing)有一定的差別。 這裡介紹的彈性高性能計算 E-HPC 是公共雲上的 HPC PaaS(HPC as a Service)服務。
高性能計算體系結構的發展史其實是一部計算機技術的發展史。從19 世紀60 年代以前的ENIAC,到19 世紀70 年代的向量機Cray-1,又到19 世紀80 年代的并行機TMC CM2 大規模并行MPP,再到19 世紀90 年代的Intel ASCI 多處理器叢集,直至21 世紀,叢集就是HPC,GPU 異構叢集大行其道。中國從天河2 号、太湖之光先後進入世界TOP500 到研制E 級超算,可以看到,基于叢集和異構處理器的超算發展依然是領跑摩爾定律的、發展最快的計算機領域。
3.5.1 功能特點
1. 彈性高性能計算E-HPC
高性能計算聚焦于解決大規模科學和工程問題,如科學計算、氣象預報、計算模拟、石油勘探、CFD/CAE、生物制藥、基因測序、影視渲染等,主要目的是通過并行計算提高運算速度,在可接受的時間和精度範圍内,對複雜問題求解,是以對高性能計算系統的浮點算力、記憶體帶寬、并行密度、互連帶寬和延遲、并行 I/O、存儲等方面都有十分高的要求,其中的每一個環節都将直接影響系統的運算速度。目前的高性能計算體系結構= 節點+ 系統互聯,其中,節點是計算機系統内相對獨立的子系統,具備一台計算機的完整功能,在雲上就是一台雲伺服器;系統互聯即指多個相對獨立的節點通過一定拓撲采用典型的MPI(+OpenMP)模式高速互聯。
如圖3-44 所示,求解一個飛行器外部的高速氣體擾流速度和壓力分布,通過MPI 模式同步通信,疊代求解偏微分方程組,就是典型的HPC 問題。
(a)典型的CFD流體模拟:偏微分方程組(b)模型求解分解為多個MPI網絡程序 (c)通過多節點MPI通信并行求解偏微分方程
圖 3-44 典型的HPC 問題
HPC 計算需要通過大量的 MPI 網絡程序同步通信實作時間步長疊代,任何一個節點上的通信延遲,都會擴散到整個叢集,造成整體等待。是以,采用高帶寬低延遲的 高速專有網絡(通常是 Infiniband / RDMA),以及計算和通信的負載均衡是關鍵。
典型的 HPC 系統如圖 3-45 所示,硬體上分為管理節點、計算節點、高速網絡、
管理網絡和共享存儲。阿裡雲 E-HPC 是基于飛天架構,以及多樣和強大的彈性計算基礎設施構造的一個雲上超算叢集PaaS 服務體系。
機安全組/雲盾EIP服務(公網IP)
圖 3-45 典型的 HPC 系統
高性能計算叢集的軟體系統是一個龐大複雜的體系,要支援從幾個節點到上萬節點的計算規模,由節點作業系統、通信中間件、并行作業排程、叢集監控、資源管理、 并行開發工具鍊(編譯器、數學庫、性能調優工具等)和應用軟體組成。
阿裡雲 E-HPC 完全基于阿裡雲原生架構,并和HPC 業界開放标準OpenHPC 全面相容,以 SLA 服務模式提供了靈活、快速和彈性伸縮的雲上 HPC,圖 3-46 所示為OpenHPC 軟體棧與阿裡雲 E-HPC 架構。
圖 3-46 OpenHPC 軟體棧與阿裡雲 E-HPC 架構
2. 超級計算叢集SCC
從每年兩次的TOP500 世界最快的超級計算機排名可以看出,高性能計算使用者大都是科研、工程計算領域的專業使用者, 他們最關心的是HPC 系統的關鍵性能名額: 虛拟機雲伺服器能否提供實體機 CPU(GPU)具備的單節點高性能;網絡是否滿足 HPC 計算的低延遲高帶寬,進而保證足夠高的并行效率;存儲能否支援并行檔案系統所需的集聚帶寬和響應速度。長期以來,這三個問題都是HPC 行業上雲的障礙,對這“靈魂三問”, 阿裡雲基于神龍雲伺服器的 SCC 超級計算叢集産品,通過軟硬體協同創新,兼顧了雲計算的彈性、穩定性,以及高性能計算對并行性能的極緻追求,圖 3-47 展示了阿裡雲超級計算叢集的三點突破。
(1)基于神龍架構的彈性裸金屬執行個體,vCPU 可以獲得等同甚至超越實體機的性能輸出,通過設定 HT OFF、NUMA ON 和程序綁定,HPC 應用可以釋放裸金屬極緻性能。
(2)采用 RoCE 網絡的 RDMA 通信實作計算節點間MPI 通信,滿足 HPC 應用的低延遲通信,得到近乎線性的Linpack 加速比。
(3)建構在盤古塊存儲之上的 CPFS 并行檔案系統,具備MPI 并行I/O 所需全部功能,并按需提供額外資料安全和拷貝。
圖 3-47 阿裡雲超級計算叢集的三點突破
通過以上三點,阿裡雲高性能計算為追求極緻性能的 HPC 使用者提供了具備“虛拟機心髒,實體機肌肉”的超級計算叢集執行個體 SCC,相當于在雲上建構了一台超級計算機,圖 3-48 所示為基于神龍架構的超級計算叢集。
低延遲RDMA 50/100Gbps網絡基于Virtualization 2.0的ECS彈性裸金屬伺服器阿裡雲并行檔案系統NAS/CPFS(Lustre*)
圖 3-48 基于神龍架構的超級計算叢集
高性能計算應用覆寫了諸多大計算行業,應用特征也各不相同,有浮點密集型和帶寬密集型,有 I/O 密集型和通信限制型等。通過靈活組合不同的彈性計算執行個體作為計算節點, 在阿裡雲上可以建構“以平台配适應用”的E-HPC 叢集,也就是說,除了SCC 産品家族,全部的彈性計算雲伺服器、 GPU 和 FPGA 及其不同的網絡、存儲組合,通過叢集管理和并行排程平台,組合為使用者可定制的“活的超算”。E-HPC 據此開發了全部HPC 叢集管理、作業排程和運作時PaaS 系統,如圖 3-49 所示。
對由于各種原因無法立刻遷移到公共雲SCC 計算服務的使用者,阿裡雲還在飛天專有雲輸出了基于Apsara Stack 企業版和靈活版的SCC 專有雲叢集,提供基于飛天
專有雲平台和第三方IaaS 管理平台的超級計算叢集,其中SCC 仍然使用基于神龍雲伺服器的彈性裸金屬,而節點間互聯則采用Infiniband IB 網絡,取代了公共雲上的RDMA ROCE 網絡。這是從公共雲切換到專有雲的一個技術權衡。使用者可以在飛天專有雲的SCC 叢集上獲得彈性裸金屬叢集的性能和專有雲的彈性,同時通過IB 獲得低延遲、高帶寬的互聯,使用者可以選擇在此建構自己的HPC 軟體棧,也可以使用專有雲版本的E-HPC 作為自己的HPC 平台,或者選用第三方HPC SaaS 平台,SCC 專有雲方案如圖3-50 所示。
圖3-49 E-HPC——“活的超算”