01.18 “天河二號”總工程師杜雲飛談星光超算應用平臺設計

“天河二號”總工程師杜雲飛談星光超算應用平臺設計

整理 | 夕顏

【導讀】12 月 21-22 日,OpenI/O 啟智開發者大會在深圳召開。在大會上, 國家超級計算廣州中心總工程師、“天河二號”總工程師杜雲飛發表了題為《星光超算應用平臺》的主題報告,系統地介紹了星光超算平臺,包括該平臺的架構、開發和運行等環節。天河二號也是大會主辦方鵬城實驗室規劃建設中的“雲腦”分佈全國的異構超級腦計算集群的廣州合作共建節點。

2016 年 12 月,國家超級計算廣州中心成功發佈了“天河星光”雲超算平臺。使用天河星光,只需要一個網頁瀏覽器即可登錄“天河二號”。“天河二號”是一組由中國人民解放軍國防科技大學研製的異構超級計算機,為“天河一號”超級計算機的後繼。“天河二號”於 2013 年底入駐廣東省廣州的國家超級計算廣州中心並進行驗收,2013 年底交付使用後對外開放接受運算項目任務,用於實驗、科研、教育、工業等領域。“天河二號”造價達一億美元,從 2013 年 6 月起至 2016 年 6 月之前,它都是世界上最快的超級計算機。(來源:維基百科)

杜雲飛是“天河二號”超級計算機的設計者之一,他用十年的時間見證了超級計算機從“天河一號”向“天河二號”的進化之路,也見證了中國超算技術的不斷飛躍。此後,他和團隊又陸續構建了天文物理、大氣海洋、工業設計製造等應用軟件平臺“天河星光”。基於“天河星光”,超算中心已經和各大院校、科研院所合作,共建大氣海洋環境、CFD與工業製造、生物醫藥健康大數據、視頻交通大數據、深度學習與認知智能等平臺。

以下為演講內容,AI科技大本營(ID:rgznai100)整理:

我今天帶來的報告為《星光超算應用平臺》,這是我們目前正在做的一個項目,目前部署在廣州超算中心,並已經應用到實踐中。今天的會議和開源相關,我們在開發過程中也得益於整個開源社區。現在做 CS 開發的,人人都得益於開源社區,我們不僅能夠從整個社區中的大量開源代碼中學習到很多,而且我們的一些系統也在從這些開源項目中獲得開發上的啟發。反過來,我們也會對開源社區有相應的反饋,才形成了目前良好的開源生態環境。

建設背景

“天河二号”总工程师杜云飞谈星光超算应用平台设计

介紹一下我們這個平臺的建設背景,這是國家重點研發支持的一個項目。應該說,我們依託超算中心來支持超算中心和新型應用的融合。大家都知道,超算中心傳統是以高性能計算為主。高性能計算的主流計算方式包括浮點計算為主的計算方式,比如雙精度浮點、高精度浮點。到了 AI 時代,單精、半精甚至更低精度的計算成為主流,但是應用如何更好地融合,是目前超算面臨的應用挑戰,另一方面也給超算帶來一些機遇。在這種背景下,我們開發了這個項目,以為傳統的高性能計算帶來便利性,建立從軟件開發到管理、到運行的一體化平臺。

平臺架構

“天河二号”总工程师杜云飞谈星光超算应用平台设计

星光超算平臺架構採用微服務的軟件架構,這更便於程序員做相關開發和功能切分,包括相應功能的升級。我們建立了以應用中心為主,在此基礎上的相應的資源管理、工具流數據管理和開發環境等功能,以及輔助功能。整個平臺採用微服務,分成這幾大功能來對外提供服務。

圖片上是我們現在的網址(見PPT),通過這個網址可以訪問我們的平臺。

星光開發

“天河二号”总工程师杜云飞谈星光超算应用平台设计

另外,我們整個開發過程中使用了微服務容器化 DevOps 方法。一個科研機構做開發,如何去開發一個完整的生產級產品對我們來說是巨大的挑戰。我們借鑑了很多企業界的方法,包括目前企業界成熟使用的開發流程,可以看到,星光的整個開發流程基本上是依託這些開源軟件來建立的,從代碼開發到測試和生產環境管理,整個開發過程依託開源的生態建立嚴格的開發流程,以保證系統的可用性和可靠性。雖然我們做的是學術研究,但是研究的目的是做一個可用的系統,所以我們採用了非常嚴格的開發方法。

平臺運行

“天河二号”总工程师杜云飞谈星光超算应用平台设计

另外,整個平臺運行上,我們利用目前 K8s 和容器的方法來管理平臺,在資源調度、部署運行、服務發現、擴容縮容方面都非常便利,而且整個系統運行在 K8s 集群上,通過這個系統管理不同的 HPC,包括 K8s 的 CPU 集群和 GPU 集群,並能夠對外提供服務。

應用開發環境

“天河二号”总工程师杜云飞谈星光超算应用平台设计

這是我們的應用開發環境。星光平臺要支持高性能計算從應用開發到應用管理、應用服務的整個流程,面對著如何提供一個傳統的高性能開發環境的問題。目前我們基於容器技術的定製化雲端開發環境,為什麼用這個?大家也知道,現在所有開發環境都面臨一個挑戰,即要處理的體系結構越來越複雜,包括多樣化的 CPU 體系結構,不同的加速器環境,如何在不同體系結構下提供統一的開發環境很難。所以,星光基於容器技術的定製化雲端開發環境讓我們可以根據自己的需求自動生成一個面向不同體系結構的開發環境,便於程序員做相應的開發。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

此 demo 顯示,在我們平臺上,你可以進入到相應的雲端開發環境,依託開發環境進行相應的應用代碼編寫到編譯,包括和後端的超算資源的對接,都可以通過這個開發環境融合在一起,提供一個便利的開發和調試環境。

應用全生命週期管理

“天河二号”总工程师杜云飞谈星光超算应用平台设计

這是應用生命週期的管理。對於一個開發者來說,超算從最開始的應用開發到完成開發的整個生態,都希望他們開發的軟件能夠為人所用,尤其是同一個領域的用戶能夠使用。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

所以,對於開發者來說,經過應用開發、管理員應用審核到發佈,到使用者面前,它就是一個應用運行的環境。我們的平臺貫穿了整個應用的生命週期管理,開發完之後就可以用各種各樣的形式發佈應用。傳統的 HPC 環境下可以以命令來使用這些軟件,也可以用定製化容器來運行軟件環境。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

這是應用發佈的管理,當應用發佈完之後,可以在這個平臺上通過軟件界面來定製軟件使用的輸入和輸出環境,知道如何發佈你的軟件。管理員對應用進行相應的審核,以確定可知性、安全性等相關問題,因為超算不僅僅是面向計算機領域使用的,還包括很多應用領域,比如材料、大氣海洋等,所以按照相應的領域發佈到這樣的平臺裡,領域用戶就能夠更好地找到相應的軟件。

基於容器的定製化運行時環境

“天河二号”总工程师杜云飞谈星光超算应用平台设计

這是一個應用運行環境,如果用戶想使用某個軟件,根據定義需要的參數,就可以將應用提交到系統上運行。同時,我們也使用容器技術,不僅僅是 HPC,包括大數據和 AI 環境都可以進行相應的定製,用戶可以更加便利地創建自己的以工具框架為核心的軟件環境。在這個平臺上可以非常便利地使用和申請相應的資源,包括存儲,生成一個你所需要的環境入口,這個入口可以進行程序編寫,包括需要處理的數據。處理完數據之後,你還可以通過服務的形式進行發佈,讓有需要的人通過 Web 服務的方式來訪問你所獲得的這些數據結果。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

對整個傳統的高性能計算的前後處理的全流程支持,實際上計算只是 HPC 中的一部分,計算的前端和後端也需要相應的支持,包括模型建模到計算結果可視化,整個過程在星光平臺上都可以提供支持。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

從上圖中可以看到,針對一個計算訪問的任務,可以直接對結果在平體上進行可視化的處理,然後提交相應的任務。

工作流管理系統

“天河二号”总工程师杜云飞谈星光超算应用平台设计

工作流的管理系統支持工作流從基本的編排到運行的完整功能,而且支持循環結構的工作流。很多情況下我們需要一個循環結構的工作流,於是我們通過對工業仿真的特徵抽取,設計了循環結構的工作流。另外,整個流程與資源管理、數據管理進行了很好的結合,並對整個工作流的任務狀態做實時的監控,提供可視化展示。這個過程中,工作流還支持斷檢查和自動化的處理,以支持不同領域的使用。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

我們以實例來展示面向領域的工作流。這是一個汽車安全設計的工作流,整合整車的碰撞模擬。這個設計過程是一個典型的多目標優化的問題。什麼是多目標優化?它實際上是有大量參數需要不停地尋優,並需要根據結果進行反饋,對上一次輸入進行調整,直到得到一個最優化的結果。這個過程的人工成本很高,需要對結果進行人工分析,然後再自動地調整上一次的輸入,整個過程非常複雜。所以,我們把它做成一個領域的工作流,可以在圖形界面上定義工作流,它會自動根據定義的工作流生成大量任務,這些任務將對輸入的參數進行自動化尋優,極大地提高了整個生產過程。工作流在實際車企中得到了實際應用,並極大地提升了生產效率。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

在平臺上,我們面向調度做了一個融合調度系統。大家在雲計算中使用資源調度較多的是 K8s,但是我們是以 HPC 為主的調度器。現在的調度器無法在一套硬件資源上進行共存,需要支撐不同場景下不同資源管理系統管理這一套計算資源,不同計算資源之間無法進行共享,而且是隔離的狀態。為了支持不同的場景,我們做了一套融合調動,以實現兩套管理系統之間的調度,能夠提高資源利用率,並支持不同應用場景對資源管理系統的需求。這樣是一個很好的應用,用戶可以多種方式使用同一套硬件資源,避免了不同資源之間數據的遷移過程。

面向HPC應用的鏡像倉庫

“天河二号”总工程师杜云飞谈星光超算应用平台设计

另外,以前面向 HPC 應用的鏡像倉庫在雲化的場景中用得非常少,所以在 HPC 場景下,用戶自己部署應用,提供了基礎的環境,但用戶在遷移軟件時面臨巨大的挑戰。依託這個項目,我們面向 HPC 應用建立了一個鏡像倉庫,以在不同資源之間進行遷移,而且是面向公眾開放的鏡像倉庫環境。它不僅支持傳統的雲服務,更多是面向 HPC 場景,比如 Groupmax 是面向材料、生物處理、分子動力學的場景,我們把它以容器化的方式面向公眾提供服務,讓用戶可以更便利地遷移自己的軟件。如果用戶自己開發應用,也可以多樣化的形式對外提供服務。HPC 受益於開源社區,不同領域都有大量科研人員貢獻著自己的開源代碼,不管是大氣、海洋還是材料計算領域,很多都有相應的開源社區、開源代碼在這裡做貢獻,所以,通過這種方式來建立開源社區的鏡像倉庫,可以讓用戶更便利地在不同硬件資源上遷移自己的軟件資源,實現快速部署。

“天河二号”总工程师杜云飞谈星光超算应用平台设计

在這裡,用戶可以發佈自己的軟件,而且可以構建自己的鏡像和鏡像的運行環境,這樣就可以在超算上部署自己的軟件環境,並快速地使用這些軟件資源,避免傳統上需要用戶手動部署的麻煩。

很多 HPC 領域的用戶是非實驗計算機領域的,裝一個軟件是非常耗時的過程,鏡像倉庫可以幫助他遷移軟件環境。

小結

“天河二号”总工程师杜云飞谈星光超算应用平台设计

對整個平臺做一個總結:星光平臺支持傳統的應用從開發到整個運行的全生命週期的管理,從應用的開發到最後應用的發佈、運行,整個平臺上可以無縫地做完。而且,通過資源管理、數據管理技術,可以支持 HPC、大數據、深度學習的應用,在超算系統上都可以運行這些環境。隨著技術的發展,傳統的 HPC 領域也在逐漸使用大數據和深度學習做相應的處理。因為很多數據可能是來自於 HPC 的仿真計算或通過一些科學裝置得到的數據,而這些數據需要使用大數據和深度學習的技術來進行相應的處理。我們通過這些技術,能夠在相應的資源上很好地支持 HPC 計算和深度學習計算的融合,並實現更加便利的處理。

另一方面,在整個平臺上,我們將容器技術應用的從平臺的運維到整個應用的支撐環境中。最後,依託星光平臺,我們建立了一個 HPC 應用容器的鏡像倉庫,未來會面向所有公眾開放,成為中國的高性能應用容器鏡像中心,HPC 用戶可以非常便利地使用軟件遷移應用軟件。

在整個星光開發的過程中,我們受益於開源軟件社區,雖然目前我們還沒有做到很好地給開源社區做很多反饋的階段,但是在這個過程中,我們從開源社區中學習到很多,對於科研單位如何研究開發一個生產級的系統啟發很大。

我的報告就到這裡,謝謝大家。

2020年,由 CSDN 主辦的「Python開發者日」活動(Python Day)正式啟動。我們將與 PyCon 官方授權的 PyCon中國社區合作,聯手頂尖企業、行業與技術專家,通過精彩的技術乾貨內容、有趣多元化的活動等諸多體驗,共同為中國 IT 技術開發者搭建專業、開放的技術交流與成長的家園。未來,我們和中國萬千開發者一起分享技術、踐行技術,鑄就中國原創技術力量。


分享到:


相關文章: