天天看點

加速應用遷移、使能原生開發,鲲鵬開發套件DevKit能力再更新

作者:至頂頭條

數字經濟已經成為全球經濟增長的主引擎,根據中國資訊通信研究院釋出的《中國數字經濟發展報告(2022年)》,2021年中國數字經濟規模達到45.5萬億元,同比名義增長16.2%,數字經濟年均增速顯著高于同期GDP平均增速。

要實作數字經濟的持續高速增長,需要以算力基礎設施為核心的堅實底座來支撐。如果說資料是資料經濟增長的生産資料,那麼算力就是生産力。《2022中國數字經濟發展研究報告》顯示,目前中國算力規模約占全球的27%,排名第二。

與此同時,千行百業産生的各種應用和海量資料又驅動着算力朝着多樣性發展。鲲鵬作為多樣性算力一員,也已經從開放走向落地,為各行各業的數字化變革和應用創新提供了強大穩定的算力支援,并已經廣泛應用于數字政府、電信、金融、電力等行業核心應用系統,成為國計民生行業數字化轉型的首選。

但是對于開發者而言,加入鲲鵬産業要考慮很多實際的問題,就是現有的應用能不能快速的從原來的計算架構中遷移過去?以及應用遷移過去之後,後續鲲鵬平台應用開發是否具備更大優勢?

做過應用遷移的都知道,基于傳統平台的應用軟體遷移到新的創新架構平台,要考慮衆多因素:首先最根本是指令集不同,比如x86是複雜指令集,而鲲鵬使用精簡指令集,遷移技術是否可行?其次,遷移周期是否過長?再者,之後的反複編譯調試、準确率如何?功能實作是否完全?調優定位如何?優化效果是否達标等等挑戰?

就算解決了遷移問題,還要考慮應用開發的挑戰。應用開發面臨的挑戰更複雜,從學習角度看,如何系統化的學習鲲鵬架構優勢、特性?從開發角度看,如何實作鲲鵬親和開發的實時引導?從編譯調試看,如何充分發揮多樣算力編譯和調試能力?測試階段,應用的安全性、穩定性、性能及功耗等問題如何保障?最後的GPU和CPU等虛拟化場景中的系統調優如何做?

釋放生産力,鲲鵬DevKit在應用遷移和開發使能的優勢

針對這些挑戰,鲲鵬計算産業早已準備,為了幫助夥伴和開發者快速将應用遷移到鲲鵬,2019年鲲鵬釋出了一站式開發套件鲲鵬DevKit,實作有源碼應用的無憂遷移,針對存量無源碼應用,鲲鵬DevKit還提供動态二進制指令翻譯工具ExaGear,在軟體執行過程中直接将X86指令翻譯為鲲鵬指令,“零代碼”、“低損耗”的完成遷移。經過兩年多的發展,2021年源碼遷移效率已經可以達到2人天/應用,遷移已不再是難題;2022年,鲲鵬DevKit全面更新,從加速“應用遷移”走向使能“原生開發”,持續優化增強鲲鵬原生開發的效率和體驗。

在不久前的華為全聯接大會2022上,鲲鵬DevKit的研發專家們詳細解讀了鲲鵬DevKit最新版本的關鍵能力,鲲鵬的重要夥伴也分享了基于DevKit進行原生開發的創新實踐。

“鲲鵬DevKit緻力于鲲鵬軟體遷移和原生開發的效率提升,提供從遷移、開發調試、編譯、測試、調優&診斷等一整套具備原生開發能力的工具套件,包括鲲鵬開發架構、場景化SDK、鲲鵬調試器、雲測試服務、HPC場景化性能分析能力等,助力鲲鵬開發者基于鲲鵬平台原生開發高性能應用。”鲲鵬DevKit項目經理馬德強介紹道,“我們堅持把困難留給自己,簡單給予使用者,用一套好的工具對提升生産力。”

加速應用遷移、使能原生開發,鲲鵬開發套件DevKit能力再更新
  • 在遷移階段:代碼遷移工具覆寫TOP 10常用語言、TOP 20+主流OS,聚合管理170萬+依賴庫,彙編指令100%自動翻譯,代碼修改建議一鍵替換,并通過代碼鲲鵬親和分析,将Bug消滅在開發過程中。
  • 開發階段:通過鲲鵬開發架構提供工程管理向導、啟發式程式設計、場景化SDK、鲲鵬親和檢查等能力,幫助開發者快速建立工程,自動屏蔽編譯選項差異,便捷使用鲲鵬架構優勢能力,智能提示鲲鵬優化函數和百萬級依賴庫,并且在開發完成後,通過5類靜态檢查工具将代碼風險一把消除。
  • 調試階段:鲲鵬調試器是業界首款開放的叢集并行調試器,支援單節點或多節點并行調試,提供圖形化界面,大幅提升調試效率。
  • 編譯階段:面向不同技術路線提供三類編譯軟體畢昇編譯器、畢昇JDK、GCC for openEuler,均針對鲲鵬平台做了多重編譯優化和增強,其中畢昇編譯器通過循環優化、軟體預取、結構體記憶體布局、等關鍵優化技術,實作鲲鵬平台SPEC性能提升25%。
  • 測試階段:雲測試服務提供相容性、可靠性、安全、功能、性能等五大次元精準測試服務,幫助使用者快速識别和定位應用程式在運作階段的問題,全面提升鲲鵬原生應用品質和體驗。
  • 調優&診斷階段:性能分析工具支援系統性能分析、Java性能分析和系統診斷,提供系統全景及常見應用場景下的性能采集和分析功能,并基于調優專家系統給出優化建議。同時提供調優助手,指導新手使用者快速調優。針對HPC場景提供鲲鵬高性能計算分析功能,支援百P級、數十萬核的叢集算力特征和應用性能分析,充分發揮出鲲鵬叢集的最強算力。

原生開發持續增強,開發效率大幅提升

鲲鵬原生開發是DevKit今年重點聚焦的能力,鲲鵬原生開發是指使用鲲鵬DevKit的原生開發能力,如鲲鵬開發架構(含場景化SDK)、編譯調試工具、雲測服務、調優&診斷工具等,在鲲鵬平台上開發新軟體/新功能,充分發揮鲲鵬架構優勢,進而獲得開發效率/運作性能提升。在鲲鵬DevKit最新版本中重點更新了場景化SDK、鲲鵬調試器、HPC場景性能分析、雲開發服務等能力:

“我們基于KAE加速引擎、安全計算TEE,高性能編譯器,通信庫、數學庫和國密加解密庫等,為開發者提供安全計算、高性能計算和通用計算三大類場景化SDK,以及二十餘種示例工程代碼樣例,幫助開發者快速建立應用工程,0成本的學習開發鲲鵬應用。” 鲲鵬DevKit進階工程師潘龍龍介紹道。

加速應用遷移、使能原生開發,鲲鵬開發套件DevKit能力再更新
  • 安全計算SDK:作業系統的複雜度在提升,攻擊視窗也在變大,如果沒有安全加強,漏洞會被利用。安全計算SDK,可以從硬體架構上提供TEE可信運作環境,即使應用和系統被攻破,黑客也無法擷取該環境,提高了應用和資料的安全性。
  • 高性能計算SDK:聚合了Hyper MPI通信庫和鲲鵬數學加速庫,助力開發者快速開發高性能應用。Hyper MPI是整個高性能計算的關鍵元件,它實作了并行計算的網絡通信功能。鲲鵬數學庫則提供了一整套基于鲲鵬平台優化後的高性能數學函數。
  • 通用計算SDK:包含硬體加速應用,加速庫應用和同構加速應用三種場景;硬體加速應用基于KAE驅動,對上層應用實作硬體加速;加速庫應用使用鲲鵬晶片自帶的加速指令,對應用實作軟體加速;同構加速架構則提供了一套友好的API,當SDK部署完成後,開發者可以通過在JAVA代碼中添加注解的方式,将指定的代碼段解除安裝到遠端節點進行執行,進而實作應用的加速。

應用開發過程中需要對應用進行調試,鲲鵬調試器能夠通過IDE的方式對通用應用程式,GPU程式和HPC并行程式的調試,讓代碼編寫,代碼同步,遠端編譯和遠端調試操作全部在本地IDE中完成,避免遠端吊事帶來的環境分離、效率低下的問題,簡化伺服器程式的開發流程。

  • CUDA調試器可以在本地IDE上調試遠端GPU程式,通過圖形化的界面将使用者從繁瑣的MI指令和linux控制台操作中解放出來,支援GPU裝置的選擇和多線程調試等功能;
  • HPC并行程式具有邏輯複雜、并發量大、計算節點多、程序數多、狀态切換迅速且複雜等特點,非常難以進行叢集調試。HPC并行調試支援最多256個本地或遠端的MPI叢集應用進行調試,調試過程中可以實時檢視每個程序的全局排序,友善查找指定節點的指定程序,此外還能夠按照全局/單程序/單通信組的方式同步調試,當程式執行到某一關鍵步驟時,開發者可以選擇單獨調試一個或一組程序,排除其餘程序對調試的幹擾。

編譯調試完成後,軟體功能一切正常,但是性能上不去怎麼辦?接下來就是性能調優。“伺服器承載大量複雜行業應用,性能瓶頸可能存在于任何層次,DevKit性能分析工具能夠綜合全面的分析系統軟硬體及叢集的配置和運作情況,優化各子產品之間資源占用關系,實作整個系統的性能最大化。” 鲲鵬性能分析專家胡雄斌介紹道:“今年我們做了很多新的功能子產品,尤其是HPC場景下的大叢集性能分析能力。”

  • NUMA精細化分析: NUMA架構是非均勻記憶體通路架構,在多處理器系統中,記憶體的通路時間依賴于處理器和記憶體之間的相對位置,NUMA精細化分析能實時擷取程序和線程的 NUMA 記憶體通路行為,分析和解決應用的NUMA性能瓶頸。
  • 基于MPI的大叢集分析:在HPC大叢集下,很難觀察HPC應用的性能名額進行優化,為了解決該問題DevKit也提供了豐富的功能:比如在HPC任務執行過程中,找到一條不存在等待時間的關鍵路徑Critical Path,優化這條路徑上的熱點函數,就可以減少在運作階段其他節點的等待通信的時間,提升整體的性能;此外,HPC大叢集環境節點多,網絡環境可能無法對外開放,安裝調優工具相對複雜,DevKit的web模式中隻需要部署一台server節點,并在Share Folder的節點上部署agent進行資料采集,即可擷取叢集中各個節點的資料并進行預分析,同時提供獨立的HPC采集器,解決web無法安裝問題,減少除HPC場景之外的依賴安裝,提升工具的實用性

最後,針對鲲鵬開發者和愛好者需要自備環境的問題,鲲鵬DevKit提供了遠端實驗室,免費提供鲲鵬的軟硬體環境,友善開發者體驗學習鲲鵬架構;開發者可以針對不同的使用場景,申請雲開發服務,雲測試服務和遠端伺服器。其中雲開發服務是本次版本的新增功能,開發者線上申請成功後,可以獲得一套免費使用的線上IDE開發環境,環境中預裝了鲲鵬DevKit開發套件,開發者可以随時随地體驗代碼遷移,開發調試,親和檢查,編譯測試,調優診斷等功能,一鍵開通,“零”安裝,随時随地體驗鲲鵬DevKit原生開發能力。

助力夥伴和開發者快速創新、共建鲲鵬應用生态

基于鲲鵬DevKit推出的原生開發新能力,一批批行業應用夥伴已經開啟了原生開發實踐,部分已完成了相關的應用開發及性能優化。比如,數字認證(武漢)就基于鲲鵬DevKit高效建構了靈活、分布式密碼服務, “鲲鵬DevKit為數字認證研發内生式密碼子產品的開發提供強大的幫助:通過密碼子產品工程的快速建構以及安全計算SDK的快速安裝和部署,原計劃預計需要60人天才能完成的開發工作,通過DevKit開發僅花費了24人天,效率提升60%;此外,通過DevKit性能調優實作了國密SM2簽名性能從最初的2萬次/秒提升至22萬次/秒,達到業界先進水準。” 數字認證密碼産品解決方案總監李亞德分享到。

寫在最後,開發者不僅是技術發展的引領者,也是産業發展的重要推手。開發者是一群極具有創新和想象力的群體,是一群真正能夠了解一個一個開發平台能做到什麼,并發揮出平台的最大價值。而鲲鵬DevKit将持續優化開發者的開發體驗,通過鲲鵬社群(hikunpeng.com)為開發者提供全方位的支援,包括免費提供所有工具套件之外,以及全方位的原生開發支援與學習交流服務資源,幫助開發者快速上手。

繼續閱讀