超算的“苦”,就讓老衲來化解吧

一群從業多年的頂尖技術人才,利用多年的行業經驗,積累了各大行業客戶的成功案例,最終推出了一款能夠解決你實際應用問題的軟件平臺。最關鍵的是,這款軟件還是免費的。

別逗了,哪有這樣的好事兒。

真的,這就是我們今天要介紹的主角——阿里雲E-HPC監控平臺,“集諦”。

集諦”是什麼?

“集諦”的英文名稱叫做CloudMetrics,在阿里雲官方的序列中,它作為彈性高性能計算的一個性能監控與分析引擎模塊出現,支持集群資源利用情況的實時監控和用戶作業運行情況的在線分析。

最初,我也很詫異阿里雲採用了這麼一個佛系的名字——集諦。我去網上查了一下,這個名字就是佛教用於,本來是佛教四聖諦中的一種,即所謂的“苦集滅道”。

集諦者,謂貪愛法。由此貪愛而生耽著,以耽著故發業潤生,招集為因是名集諦——《佛說決定義經》

說實話,這句話我沒看明白,太高深太難理解了。通俗理解,集諦中的集是集合、聚集的意思,集諦所描述的就是眾生苦的根本。反過來解讀一下,能被稱為“集諦”的,就是匯聚了眾多的苦和眾多的煩惱。到這個層面大家就都好理解了,因為管理HPC不僅僅很苦,而且很煩惱。

超算的“苦”,就让老衲来化解吧

如上圖,這個“集諦”在阿里雲E-HPC中,更重要的是解決性能的困擾。熟悉HPC的都知道,雖然高性能計算本身是一種計算能力,但是更多的時候我們從最初的設備安裝、上架到部署,再到日常的管理和運維,都是很複雜、很瑣碎的問題。當然,這一切只是基礎。最困難的在於,當你提交作業,點下“開始計算”的那個按鍵,一切就變成了未知數。

集諦”有什麼好處?

多年之前,我在原來的公司負責服務器評測工作,這其中有一項測試就是利用60臺老舊的PC機模擬壓力,進行SQL數據庫測試。只是每次測試的時候,或是因為硬件或是因為溫度或是因為人品,失敗總是難免的。最多一次,我嘗試了15次才跑完了一個測試,總計耗時大約半個月的時間。對於這個測試,我理解為四個字——聽天由命。

許多超算業務其實也是類似。在過去的大部分時間內,用戶在提交測試之後完全不知道測試的運行狀況;而這樣造成的結果就是,未來即便客戶進行千百次這樣的算例,依然不知道應該如何進行優化和調節。如此一來,大家對於計算機的性能極度渴求。

超算的“苦”,就让老衲来化解吧

但事實上,如果我們能夠看到算例運行的狀態,在算例異常的時候能夠得到提醒,甚至於我們可以瞭解到不同算例下對於計算、存儲、網絡資源的應用頻率,或許我們就可以優化我們的算法和代碼,用最短的時間獲得想要的結果。這就是集諦的價值所在。

在文章開頭我們就說過,目前集諦項目的團隊成員都有著多年的行業經驗,在加盟阿里雲之前,不少成員都是在HPC領域摸爬滾打多年的“老江湖”。這個團隊的負責人何萬青博士(花名“筏如”)更是有著驕人的“戰績”——在之前供職於英特爾的時候,他曾在全國各大高校和科研單位推廣Xeon Phi協處理器,也曾參與天河2號的優化工作。這份工作,也讓他成為了超算領域的“陳近南”。

超算的“苦”,就让老衲来化解吧

何萬青博士與E級原型機

“我一直在幫用戶優化應用,加速程序的運行。之前,我們幫某一個客戶優化,受益的只能是一個客戶,而且是一次性的;如今我們開發出了‘集諦’平臺,則可以將優化的經驗融入其中,讓更多的用戶、更長期的受益”,何萬青說。

想要程序優化得好,首先要了解程序的應用情況,比如在運行時刻不同資源調用的百分比。這部分數據,以往都是在客戶的系統上才能完成的,而且耗時漫長;如今在阿里雲上,通過後臺的實時統計,用戶不但可以隨時隨地瞭解到系統的運行情況,還能夠通過節點性能、進程性能的剖析,知曉如何進行改進。

“藉助集諦模塊,用戶可以通過性能大盤查看集群資源的飽和度,從全局監控集群節點的狀態。從節點性能,查看節點具體指標的變化曲線和歷史數據,並且能夠與調度的作業信息相關聯;從進程性能,查看具體進程的歷史信息,進而確定需要剖析的進程;從性能剖析,獲取熱點函數分佈及其調用棧信息,瞭解應用內部的執行狀態”,集諦團隊孫相徵博士說。

超算的“苦”,就让老衲来化解吧

孫博士還現場向我們演示了用戶如何通過集諦平臺來獲取算例狀態。登錄集諦平臺後,用戶可以看到自己正在進行的算例節點。而通過點擊不同的性能選項卡,系統會自動以圖表的方式表明當前諮詢調度狀態。哪裡的網絡抖動,哪裡計算資源佔用過高,都可以一目瞭然。

同樣對於當下流行的異構計算方式,集諦也推出了面向GPU加速的解決方案。在這個場景下,“集諦”除了監控節點host端資源外還能監控GPUdevice端的資源利用情況,給出GPU利用率、顯存利用率和PCI-E數據傳輸帶寬等性能指標隨時間的變化,幫助用戶更好得了解應用運行狀態,指導應用改進。

超算的“苦”,就让老衲来化解吧

從節點維度,“集諦”能夠展示集群中所有節點的GPU資源利用情況。其中不同GPU卡的性能數據按照時間軸展示在同一座標平面,方便用戶對比節點內不同GPU卡間的負載情況。而從指標維度,“集諦”還能夠根據指標和GPU卡對性能數據進行細粒度分類,將不同節點的性能數據展示在同一座標平面內,方便用戶對比節點間的GPU負載情況。

如今,許多運行在阿里雲E-HPC上的算例都可以通過“集諦”進行優化,比如面向分子動力學應用的GROMACS軟件(分子動力學模擬領域主流軟件之一,具有模擬速度快、力場種類豐富、分析工具強大、軟件開源免費等優點),就取得了不錯的優化效果。

超算的“苦”,就让老衲来化解吧

如上圖所示,GROMACS軟件本身採用“CPU+GPU”的主從協同計算模式,CPU和GPU任一端的性能瓶頸都會拖慢軟件的整體性能。因此為了提升GROMACS的軟件執行效率,“集諦”選擇將CPU端的PME計算過程進一步offload到GPU端。通過這種方式,在減少CPU端計算任務的同時又充分利用了GPU端的計算資源,從而使CPU和GPU兩端的計算負載更加均衡。

由此可見,“集諦”能夠從計算、內存、網絡、磁盤、加速卡等方面系統地監控集群資源的利用情況並系統地展示給用戶,方便用戶進行多方位地對比分析,幫助用戶迅速定位性能瓶頸,從而為用戶應用程序的改進提供指導。

當然,目前“集諦”的功能在不斷的開發中,按照何萬青的話說“每週都有迭代”。其實對於用戶來說,優化算例非常重要,可以獲得更好的運行效果;但是在優化之後,用戶更希望能夠形成系統性的報告,對未來的應用作為指導。對此,“集諦”團隊也在積極的努力中,更多功能也將盡快實現。

後記:大嘴哥採訪跟蹤HPC領域多年,感觸最大的就是計算資源的不足和應用環境下的不可知,尤其後者對於提升效率乃至於提升整體的HPC應用水平都是大有裨益。“集諦”的出現,從應用側面部分解決了困擾,至少讓用戶能夠監測到算例的運行狀態。

對於許多中小型用戶來說,受限於資金、能力等種種因素,他們很難像大型企業或者科研單位那樣對現有算例進行調優,可能也不知道如何進行調優。但是當這些用戶採用阿里雲E-HPC平臺之後,他們就可以清楚的知道算例的整體運行過程,這無異於為他們提供了一個超算應用層面的“顯微鏡”,對於這部分用戶來說,“集諦”的價值得到了最大的發揮。

正如“集諦”這個名字所代表的佛家內涵一樣,它的出現,就是為了化解超算應用的那些“苦”。


分享到:


相關文章: