性能優化挑戰重重,鯤鵬HPC如何突破算力桎梏?

比起高性能計算(High Performance Computing,縮寫HPC),很多人對“超級計算機”感覺更熟悉一些。但事實上,超級計算機就是HPC系統的最尖端水平。在全球超級計算機 TOP500 中,位列榜首的美國橡樹嶺國家實驗室的“頂點”系統,其浮點運算速度爲每秒14.86億億次。而這份榜單的入圍門檻也是達到了每秒1.14千萬億次的運算速度。

如此強大的計算能力,究竟能爲技術的應用落地帶來什麼?

看似陽春白雪的 HPC 已走向平民化

不同於側重數據密集型、I/O 密集型應用的雲計算,HPC 強大的算力可用於解決大規模科學問題計算和海量數據的處理。早期 HPC 架構和相關設備均爲封閉機型和專屬架構,應用也僅限於科學研究、航天航空、油田勘探等高精尖領域,因此,HPC 曾被喻爲是 IT 行業“金字塔上的明珠”。隨着計算機技術的發展以及數據量和數據價值的不斷增加,HPC的應用領域在不斷擴大,未來也將愈加“平民化”。

從目前來看,其應用場景大致可分爲以下三類:

  • 計算密集型應用(Computing-intensive):大型科學工程計算、數值模擬等。其應用領域爲石油、氣象、CAE、核能、製藥、環境監測分析、系統仿真等。
  • 數據密集型應用(Data-intensive):數字圖書館、數據倉庫、數據挖掘及計算可視化等。其應用領域爲圖書館、銀行、證券、稅務、決策支持系統等。
  • 通信密集型應用(Network-intensive):協同工作、網格計算、遙控和遠程診斷等。其應用領域:網站、信息中心、搜索引擎、電信、流媒體等。

總體來看,中國企業正處於數字化轉型的高速期,上雲速度加快、數據量迅速增長,對大數據的利用能力已成爲企業的核心競爭力,企業對HPC的需求程度前所未有的提升。那麼,作爲一項技術門檻高、落地複雜的系統工程技術,HPC 在中國企業中的應用真的進入普及期了嗎?

HPC 應用對計算速度有着極高的要求,這意味着這類機羣在系統的處理器、內存帶寬、運算方式、I/O、存儲等方面也都要追尋性能方面的極致。目前,也只有大規模的機構纔有能力建立獨有的HPC平臺的能力。

然而在互聯網時代,大企業追求輕資產化,努力實現數字化轉型,傳統 HPC 平臺由於存在運維成本高、擴容難、資源利用率低、數據不流動等問題,難以適應企業的業務發展,甚至成爲了瓶頸。那麼,企業如何使這些老舊的 HPC 系統變得更高效靈活?中小企業是否也能以較低的雲成本將 HPC 引入業務?

HPC 應用如何實現高性能?

“在高性能計算領域,由於計算量非常大,僅是提高很少量的百分點都能爲企業帶來巨大的經濟效益,這其中包括時間的縮短、成本的降低以及能耗的降低。所以在該領域下,業界普遍都在追求非常極致的性能、性價比與能耗比。這樣就迫使服務提供商要從應用需求出發,根據應用的特點來設計硬件和軟件,然後再把這三者做無縫的整合,從而達到更高的性能。”

華爲IT產品線 HPC Lab 主任、HPC 首席技術專家丁肇輝在接受 InfoQ 採訪時表示。

提及 HPC 應用的性能問題,不同領域下的差異很大,通常企業用戶需要基於自身的應用需求特徵來進行定製化匹配,通過一系列測試工具對 HPC 系統進行精細化的研究分析後,找到可以調整和優化的部分,然後通過硬件升級、軟件性能調優、應用擴展等不同方法來提高系統的整體性能,以期達到硬件系統與應用之間的平衡。

在《通過鯤鵬全棧HPC軟件套件提升應用性能》的演講中,丁肇輝將HPC應用性能優化分爲四個層次:應用、計算、I/O、通信,對應的優化手段如下:

  • 應用:由各個領域的科學家、軟件開發專家基於各自領域的算法,對求解方法進行創新,並採用不同的編程模型。
  • 計算:影響計算的主要是軟件技術,如編譯器、Runtime 和數學庫,可以從三個入手進行優化,也可通過異構加速來提升計算效率。
  • I/O:通常 HPC 並行任務的併發 I/O 操作不應採用簡單的 POSIX I/O,而應選擇 MPI-IO。此外,對存儲硬件進行優化也可以提高 I/O 的效率 。
  • 通信:MPI 是最常用的 HPC 通信接口,MPI 集合通信、RDMA 等技術都適用於大規模並行計算機集羣,可有效構建高性能、低延遲的存儲網絡。當然,對網絡設備的優化也不能忽視。

不容忽視的軟件調優

雖然很多性能問題都可以通過硬件配置的升級或優化得到解決,但軟件調優部分也決不能忽視。丁肇輝解釋道:

“HPC 其實服務的是科學計算,由於科學計算的領域差異很大,導致其應用特徵差異也較大。因此如果要設計出能夠覆蓋各種場景下應用計算需求的硬件,其實難度還是非常大的。所以在硬件儘可能突破極致性能的同時,也需要軟件接入來確保一定層面上的靈活性。”

從開始設計到最終完成,軟件優化在整個軟件開發週期中都將起到連續迭代的作用。

在假定硬件不變的前提下,計算角度的優化目標就是將 CPU 的算力發揮出來,消除內存牆等常見問題。

通信層面的優化則以減少網絡擁塞爲目的,儘量能夠讓計算和通信的過程能夠疊加,一邊計算一邊做通信。

I/O 的瓶頸與訪存類似,就是儘可能利用更快速、更低時延的存儲來達到一定的目的。但是由於其容量較低,需要考慮如何在多級的存儲之間做切換。另一方面是要儘可能發揮 I/O 並行度的優勢。通常 HPC 的存儲節點是分佈式的,能夠把分佈式的多個存儲節點都發揮出來,來實現並行 I/O。

而需要解決這三個層面的問題,華爲主要從架構和算法兩個方面進行創新:

1、MPI 底層架構優化

高性能計算之所以能達到極高的計算速度,是因爲在該集羣上運行的應用程序一般使用並行算法,把一個大的普通問題根據一定的規則分爲許多小的子問題,在集羣內的不同節點上進行計算,而這些小問題的處理結果,經過處理可合併爲原問題的最終結果。由於這些小問題的計算一般是可以並行完成的,從而可以縮短問題的處理時間。

目前,國內外在高性能計算機系統中,最廣泛使用的並行編程環境是 MPI(Message Passing Interface),它也已成爲國際上的一種並行程序的標準。OpenMPI(open Message Passing Interface)是流行的開源 MPI 之一,具有模塊化涉及、易於擴展等特點。

在 Open MPI 底層架構中,UCX 實現了針對多種協議的優化的點對點通信。不過由於 UCX 將集合操作轉化爲點對點通信的組合,很多對於點對點操作的初始化邏輯是多餘的。對此,在華爲 MPI 中,引入 UCG(Unified Communication)的概念,對 UCX 框架進行了重構。根據丁肇輝在演講中的介紹,UCG 把集合操作定義在 UCX層,使 UCX 通信的初始化邏輯從 Per message operation 變爲 Per collective operation,可以讓軟件在更底層感知到集合通信,從而節省很多軟件上的開銷,包括程序的初始化、數據結構的創建等操作。據瞭解,目前 UCG 已開源,且已經被社區接受。

總體而言,華爲 MPI 具有以下幾個特點:

  • 基於開源 Open MPI 實現;
  • 通信算法基於 Open UCX 進行重構和優化;
  • 支持鯤鵬系列處理器與 x86 CPU;
  • 針對華爲硬件的算法優化、硬件卸載;
  • 與華爲自研軟件與業界流行軟件無縫集成。

2、基於 UCG 算法的創新

基於並行計算的高性能系統需要保持計算和通信性能的平衡性,其中,集合通信是通信系統的重要組成部分,負責進程之間的數據操作和同步操作。當並行應用的規模越來越大時,所使用的處理器的規模也越來越大,集合通信組內部進程之間的通信量相應增大,且需要相互協作完成通信語義,因此集合通信往往成爲系統的性能瓶頸,需要優化集合通信以提高整體系統性能.

在直播中,丁肇輝老師介紹了對集合通信算法的優化,分爲節點內和節點間兩部分。在節點內,結合共享內存技術和 CPU 內部的拓撲感知,華爲對 MPI_bcast 進行了優化,見下圖:

在 NUMA 架構下,對於同一塊內存,節點內多個處理器的訪問效率通常是不均衡的,此時可以通過多個共享內存塊和 Flag 提高效率。

在節點間,華爲對 B-nominal 算法進行了升級,提出“K-nominal算法”,如下圖:


K-nominal 算法具有更好的普適性,Bcast 算法可通過LogkN階段通信完成,配合節點內共享內存算法可以達到最優通信效果。尤其是在 OpenMPI 下通過算法來自動調整通信包大小、規模以及正確的 k 值,K-nominal 的表現要比 B-nomial 這樣一個典型的分級分步驟的集合通信算法來說,效果更好。

根據丁肇輝的介紹,經過小包測試後,華爲 MPI 在x86上相較於 OpenMPI 提高了2倍以上,在鯤鵬上也提高了2倍。

鯤鵬 HPC 軟件套件還將進行怎樣的完善和迭代?

鯤鵬 HPC 在 2020 年將會發布一套完整的軟件棧體系;目前來看,比較受業內關注的 MPI 和調度器這兩個組件將是近期更新的重點。而編譯器的版本則會相對穩定一些。

這裏以調度器爲例,由於存在很多和用戶之間產生直接交互的複雜功能,所以需要時刻關注用戶的反饋,根據用戶所提出的不同需求來進行版本迭代,因此爲了適應用戶的新需求會加速該版本的迭代。

突破性能極限,未來更值得期待

軟件優化固然重要,但來自底層的革新才能突破性能極限。

早年間,支撐 HPC 高速運轉的CPU均基於 x86 架構,而過多考慮功耗層面的 ARM 因在效能表現上無法滿足應用場景的極致計算需求,在市場上總是叫好不叫座。隨着摩爾定律作爲行業標杆的鐵律越來越難以爲繼,x86 體系遭遇瓶頸。加之 ARM 在功耗和效能之間又在不斷取得更高的平衡,數據中心高效節能的市場訴求也愈加強烈,此前不被看好的架構開始在服務器市場發揮影響力,特別是 HPC 服務器市場。

2019年1月,華爲重磅推出自主研發且基於 ARM 架構的鯤鵬 920 芯片,該芯片具備業界頂尖的製程工藝、集成8通道 DDR4。由於採用“衆核”架構,鯤鵬 920 可以做到最高64個物理 CPU 核,尤其適合大規模並行的計算場景。

基於此,華爲以高性能服務器、大容量存儲爲基礎,推出了端到端的高性能計算解決方案,包括基礎設施、硬件資源、系統環境、集羣管理、服務平臺、行業應用等方面,讓整個 HPC 的應用系統達到最佳的性能。而無論是服務器,還是編譯器、MPI、調試器、函數庫等基礎軟件,均可與企業原有的配置兼容,並實現性能上的優化和提升。

鯤鵬 HPC 全棧

IT 應用開發部署直接決定着企業數字化創新的能力,這將會有效地觸發 HPC 應用量的急劇增加,同時,應用的多線程和高併發技術走向,也將催生出更多的 HPC 需求。而隨着高性能計算應用的日益廣泛和深入,高性能計算系統技術創新、計算環境創新與應用創新等各個層面還將遇到新的挑戰與機遇。爲了讓鯤鵬 HPC 更好地服務於各行各業,華爲將在 HPC 領域進行長期的技術投入,包括:

  • 平臺層:計算系統(x86、TaiShan)、下一代 NAS 存儲系統、網絡互聯(低時延技術);
  • 中間件:華爲 MPI、工具鏈、集羣管理、作業調度;
  • 上層應用:氣象&海洋、製造、計算化學、生命科學、油&氣、AI等領域。

我們有理由相信,這顆 IT 行業“金字塔上的明珠”在底層的革新中,將發揮更大的價值。

嘉賓介紹

丁肇輝,現任華爲 IT 產品線 HPC Lab 主任、HPC 首席技術專家。負責規劃華爲 HPC 解決方案和 HPC 軟件的全棧構建。吉林大學計算機系統結構理學博士,三次到 UCSD(加州大學聖地亞哥分校)和 SDSC(聖地亞哥超算中心)從事研究工作。2009年加入 Platform Computing 公司從事 HPC 調度器 Platform LSF 研發工作,2012 年隨公司收購加入 IBM,任 IBM Spectrum LSF 產品線全球首席架構師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章