天天看點

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

3.5.3 超算産品的關鍵技術

在上面兩節裡,我們分别闡述了高性能計算産品E-HPC、SCC 的架構和使用場景,那麼超算産品有哪些關鍵技術呢?怎樣才能用好超算實作HPC 上雲,下面逐一講解。需要注意的是,由于雲計算的産品技術疊代非常快而靈活,超算産品的功能和性能都會随着雲的技術發展和使用者需求的不斷深入而産生快速的更新疊代。是以,這裡的技術在實際中可能有較大改善和提升,但基本原理是有延續性的。

1. 叢集管理

除了計算、網絡、存儲等硬性名額,高性能計算中最重要的一部分就是叢集管理排程系統,E-HPC 提供一套控制台風格的叢集管理控制台,提供E-HPC 高性能叢集相關的叢集建立和配置、資訊浏覽與修改、叢集擴容與釋放、使用者管理、作業排程、軟體管理、性能監控等功能,分鐘級的叢集建立和縮擴容提供了雲超算最重要的自動伸縮能力。

超算叢集由計算叢集、共享并行存儲叢集和網絡構成,在首次建立 E-HPC 叢集之前,需要通過E-HPC 開通存儲服務,在NAS(或 CPFS)服務和挂載點完成後再建立叢集。一個賬戶可以在雲平台上建立多個叢集并監控它們的所有狀态,而第三方叢集管理平台,如HPC SaaS 服務夥伴,可以通過E-HPC 提供的Open API 開發自己的叢集管理平台,E-HPC 的叢集管控台如圖 3-56 所示。

隻要通過幾次滑鼠點選選擇,使用者就可建立雲上高性能計算叢集。在雲端建立叢集,首先進行硬體配置,包括可用區、付費類型、部署方式、節點配置,以及進階配置中的網絡配置和共享存儲配置。由于E-HPC 是一套全功能的HPC PaaS 平台,提供全面的HPC 運作時軟體棧,是以接下來要進行軟體配置,包括鏡像類型、作業系統、排程器、可視化服務和進階配置。使用者還可以從E-HPC 提供的開源應用軟體和支撐軟體中,選取必要的應用軟體預裝。得益于E-HPC 獨特的設計,軟體安裝時間和叢集規模無關。完成叢集軟體配置後進入基礎配置,包括基本資訊和登入設定。最終, 我們可以得到一個如圖3-57 所示的高性能叢集詳細資訊和拓撲頁面,至此,構造了一個全功能的HPC 線上叢集,構造了随彈性計算産品演進的“雲上超算中心”。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖3-57  高性能叢集詳細資訊和拓撲頁面

2. 叢集應用性能優化工具

為了保障應用程式在超算上正常運作,E-HPC 提供了針對HPC 叢集規模的并行應用性能監控工具:E-HPC 優化器(E-HPC Tune),協助使用者剖析應用程式在雲超算平台上運作時的行為,包括系統名額、程序資訊和熱點函數資訊,實作應用在雲超算平台上的快速錯誤排除、性能優化。E-HPC 優化器将原本屬于HPC 應用優化工程師的自頂向下的性能特征剖析和優化方法論,固化為逐級分析的自動化工具。

由于應用運作行為複雜,是以優化器采用性能大盤、節點性能、程序性能和性能剖析四個步驟,層層遞進地分析應用運作行為特征,如圖 3-58 所示。

叢集次元,定位執行個體熱點

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖 3-58  應用運作行為特征

1)性能大盤

性能大盤是從叢集整體角度實時地顯示各叢集資源使用狀态,快速了解整個叢集的負載。每個叢集都有一個整體的概覽,同時顯示每個節點主要資源(包括 CPU、記憶體、存儲、網絡等)的使用飽和度, 以免因資源使用飽和而出現異常。

2)節點性能

從單個節點角度,分析應用程式運作期間節點關鍵性能名額的變化曲線,包括 CPU 使用率、記憶體使用率、網絡帶寬、存儲帶寬和使用率等,顯示不同時間段、不同節點、不同名額組合下的名額性能變化曲線視圖,如圖3-59 所示。

圖 3-59  節點名額性能變化曲線

3)程序性能

從程序角度,顯示近時間段前 5 個 CPU 占用率最高的程序資訊,并将 CPU 占用率變化以圖形顯示,如圖 3-60 所示,可選擇不同的時間點,查詢對應該時間點的程序資訊。使用者可以對選擇的程序進行剖析,擷取程序函數級資訊。

4)性能剖析

從函數角度,借助火焰圖展現程序中各函數的耗時比例,以及函數間的調用邏輯,如圖3-61 所示。函數資訊通過兩種視圖展現:Bottom-up 和 Top-down,Bottom-up 主要用于分析函數本身耗時(不包括子函數調用時間)的資訊,熱點函數清單,同時也顯示熱點函數被調用的棧資訊,在函數優化時,優化耗時占比大的熱點函數,才能取得更高的性能加速比;Top-down 主要用于分析從 main 函數開始,各函數調用耗時(包括子函數調用時間)的資訊,便于檢視邏輯處理占比高的函數,在并行任務劃分時,保證每個子任務都有足夠的邏輯處理任務。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

3. 科學可視化

高性能計算威力的展現,離不開科學可視化,這屬于計算機圖形學範疇。科學計算需要處理的輸入資料、計算輸出的結果通常都是海量資料,如氣象類單個作業輸入資料量數百MB,輸出結果資料量達到數十 GB,而石油勘測類的作業輸入資料量更可能達到 PB 級,最終圖形化輸出的作業資料量也有數十 GB。如此大量的資料還需要符合具體領域的資訊結構,如流場、壓力場、電磁場、氣象雲圖等,這意味着對于結果資料,還需要通過計算叢集針對具體領域完成解釋和重構。科學計算的可視化的過程同樣需要引入高性能的計算資源,甚至多機并行處理,以達到高效計算、實時渲染和輸出高精度可視化結果的目的,

科學可視化通過圖形化的方式呈現科學計算輸入輸出的模型結構、對象關系、計算布局等資訊。在科學計算典型流程中,常常要進行三維網格生成的離散化前處理,是以前後處理兩大步驟都需要可視化技術模組化、計算和渲染。

針對科學計算的參數場可視化需求,雲平台從底層硬體到上層服務層面統一設計,建構了基于雲計算的三層産品方案,

基礎設施層

基礎設施層主要利用了 EGS GPU 執行個體實作高效的圖形渲染。現代科學計算的可視化涉及體渲染、光線追蹤等多種複雜計算機圖形技術,不同規模的計算對于渲染資源的要求各有不同。

業務排程層

通過 E-HPC 服務,可視化操作可以高效地嵌入高性能計算工作流程中。E-HPC 服務除了管理 HPC 并行計算節點資源,還需要對可視化節點進行管理和排程,使得計算的輸入資料、結果資料在不同節點之間高效流轉。在可視化計算中,通過 E-HPC 并行排程服務将計算過程和結果可視化計算結合起來,即刻在計算節點上進行結果資料的可視化處理稱為在場可視化。

可視化展現層

在通過 E-HPC 服務整合的雲圖站上,使用者可以遠端通路雲端的圖形伺服器,直接以圖形的方式檢視、操作雲上的科學計算資料,進而避免了雲上雲下的大量資料傳輸消耗。雲圖站服務支援所有 GPU 執行個體類型,使用者可以按性能與成本需求,選擇最優成本效益的執行個體。雲圖站傳輸協定經過專門的設計,使用較低的帶寬即可滿足高分辨圖像網絡傳輸要求。雲圖站支援多通道多類型傳送,支援遠端 App 的方式,即使用者隻需打開應用軟體的界面,而不是整個桌面,與其他使用者有更好的安全隔離。 另外,E-HPC 控制台還提供了基于 WebGL 的圖形顯示方案,可直接通過浏覽器遠端通路可視化節點,檢視圖形化的輸出結果。

基于 E-HPC 的可視化展現層元件如圖 3-65 所示。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖3-65  E-HPC 的可視化展現層元件圖

E-HPC 可視化工作流

整個可視化的操作需要嵌入完整的 HPC 工作流中,形成如圖3-66 所示的完整流程,滿足 HPC 使用者實際需求。使用者可以直接通過 E-HPC 的 Web 控制台,可視化地完成整個 HPC 工作,E-HPC 服務負責高性能計算資源的統一管理和排程。主要包括以下三個步驟。

(1)使用者可通過E-HPC 申請遠端可視化資源池(遠端桌面或遠端App),E-HPC 根據使用者權限,生成相應的遠端連接配接資源,以提供給客戶安全遠端連接配接。

(2)使用者可視化編輯完成作業後送出到E-HPC,E-HPC 背景負責根據作業類型、作業資源需求和作業依賴關系,彈性生成相應的HPC 并行計算資源池和可視化計算資源池,完成科學計算任務。

(3)計算過程中生成的資料由E-HPC 統一管理,通過NAS 服務,打通不同計算資源之間的資料共享,使得使用者可以直接可視化檢視、分析計算結果資料。

另外,E-HPC 服務通過整合OSS 服務及網絡傳輸服務,實作了 HPC 服務與其他服務之間的資料互通,以及雲上雲下的資料傳輸,超算将線下以IT 裝置為中心的計算過程,轉化成在雲上的資料遷移和計算的服務流程,實作了HPC-as-a-Service 的流程優化。

4. 自動縮擴容與閑時計算

除了計算、網絡、存儲等硬性名額,高性能計算中重要的一部分就是并行作業排程系統。在公共雲普及之前,由于本地 HPC 叢集的資源昂貴、配置複雜、資源數量有限,催生出很多對排程算法的需求以達到提高資源使用率和在多個使用者 / 部門之間協調資源的目的,例如動态資源池、資源回填、單節點排程。在公共雲出現之後, HPC 可實作雲爆發,從使用者的角度看,公共雲上的資源充足,可以在想用時建立, 用完即釋放。

E-HPC 通過在雲上快速部署管理主流的 HPC 叢集排程PBS、LSF、Slurm、SGE 等,将其調用和雲資源的自動伸縮耦合,降低了 HPC 使用者上雲的門檻,圖 3-67 所示為E-HPC 叢集架構。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

E-HPC 的叢集自動縮擴容和叢集的并行計算作業排程高度綁定,一次自動縮擴容是通過 Job Scheduler 作業排程器來實作的,如圖 3-68 所示,E-HPC 自動縮擴容服務會從叢集排程節點定時擷取目前節點和作業的負載資訊,并據此擴容新的節點滿足排隊作業的資源需求或者釋放空閑的節點。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖3-68  自動縮擴容實作

基于 HPC 叢集作業負載的自動伸縮

在很多領域,例如 EDA、生物基因制藥等,HPC 使用者對資源的需求趨勢如圖 3-69 所示。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖 3-69  HPC 使用者對資源的需求趨勢

從圖 3-69 可以看到,傳統的本地叢集資源規劃和資源需求很難完全比對,要麼資源不滿足需求,要麼資源過剩,造成浪費。E-HPC 将 HPC 叢集搬上雲的同時,結合公共雲的彈性特點,做到了根據使用者業務需求動态地管理 HPC 叢集規模,實作了

分鐘級的擴容,及時響應使用者對資源的突發需求,将公共雲的彈性和自動運維的功能帶給 HPC 使用者。 

E-HPC 自動伸縮配置方案與配置界面如圖 3-70 所示,有如下功能。

設定擴容時間間隔。

設定叢集最大規模和最小規模。

基于隊列配置擴容多執行個體規格和多可用。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)
帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖 3-70  E-HPC 自動伸縮方案與配置界面

圖 3-71 是某基因計算使用者在使用 E-HPC 平台進行基因測序時,單個叢集一段時間的叢集規模自動伸縮曲線圖,從圖中可以看到:使用者的業務對資源的需求波動很大, 而 E-HPC 自動伸縮能很好地滿足使用者的需求,及時擴容、及時縮容。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

圖 3-71  某基因計算使用者叢集規模自動伸縮曲線圖(按天統計) 

HPC 閑時計算(Idle Computing) 

E-HPC 自動伸縮服務結合搶占式執行個體和HPC 應用的斷點續算功能,可以提供 HPC 閑時計算(Idle Computing)方案,閑時計算指随機和脈沖模式的HPC 計算,譬如科研人員在出現“靈感時刻”的即時計算需求。在多使用者共享計算資源分時計算及商業使用者處理随機的計算需求的情況下,搶占式執行個體是比按量付費和包年包月更為經濟合理的選擇。這是公共雲上省錢組合拳的典型方案。E-HPC 閑時計算流程如圖3-72 所示,為保證在搶占式執行個體釋放前,計算結果能夠被儲存并支援下一次運算,必須儲存應用的斷點(Checkpoint)檔案,以便應用下一次擴容到新的搶占執行個體繼續完成計算。這種模式要求HPC 應用本身支援斷點續算(Checkpoint—Restart)。

以 LAMMPS 和 GROMACS 為例,在用 GROMACS 測試水分子運動的算例中, 在腳本中設定斷點,在計算時間增加 13.28% 的情況下, 計算成本降低高達 87.17%, 圖3-73 所示為GROMACS 閑時計算作業成本對比,這是非常滿足閑時計算要求的成本效益,左圖表示歸一化後的計算成本對比。

帶你讀《彈性計算—無處不在的算力》第三章:計算産品和技術3.5雲上高性能計算(三)

繼續閱讀