?

從網格到“東數西算”:構建國家算力基礎設施

2022-10-13 09:59錢德沛欒鐘治劉軼
北京航空航天大學學報 2022年9期
關鍵詞:算力高性能網格

錢德沛 欒鐘治 劉軼

(北京航空航天大學 計算機學院, 北京 100083)

1 計算機使用模式的演變

計算機是20 世紀人類社會最偉大的發明之一,它的出現,徹底改變了人類生活、工作的面貌。計算與模擬和理論與分析、實驗與觀測一起,成為人類認識客觀世界、開展科學研究的重要手段。對現代科學研究而言,計算的重要性不言而喻。利用計算,可以更清晰地揭示客觀世界的發展規律,探索和預測未知的事物。 例如,大數據處理分析、人工智能大模型訓練和推理、新能源及其利用、新材料設計、工業產品創新設計、創新藥物研發、精確天氣預報、全球氣候變化預測、社會治理和決策支持等,都依賴計算機的強大算力。 因此,算力已經成為一個國家創新能力和綜合國力的體現。

伴隨算力的提高,如何能更容易地使用計算機,便捷地獲得所需的算力,也是人們一直追求的目標。 計算機誕生70 多年來,其使用方式一直在不斷變化。 早期,人圍著計算機轉,用戶要跑到專門的機房去上機,計算機被一個用戶單道程序所獨占。 隨著操作系統的進步,計算機的使用方式逐漸從單道程序的主機模式向多道程序的批作業模式[1]和分時交互模式[2]發展。 在分時計算系統[3]中,眾多用戶可以通過終端,同時使用一臺計算機,每個用戶在分配給他的時間片內使用計算機,但感覺上似乎是在獨占這臺計算機。 20 世紀80 年代,個人計算機的出現使計算機進入千家萬戶,但是個人計算機的性能有限,孤立的個人計算機難以勝任大的計算任務。 直到20 世紀另一個偉大發明計算機網絡的出現和普及,帶來網絡計算的新變革,計算機的使用方式才發生了影響更深遠的變化。 所謂網絡計算,就是通過網絡連接網上分散的計算機,匯聚網絡連接的各類硬件和軟件資源,形成能力更為強大的計算系統。 用戶可以通過網絡隨時隨地訪問計算機,使用計算資源,完成自身任務,而無需關心計算資源的物理所在。

美國的超算中心聯網是網絡計算系統的早期范例。 20 世紀80 年代中期,美國國防用途的Arpanet 進入商用,Internet 誕生。 在美國國家科學基金會(NSF)支持下,建設了主干速率56 Kbps、運行TCP/IP 協議的NSFNET 網絡。 NSFNET 將美國加利福尼亞大學的圣地亞哥超級計算機中心(SDSC)、伊利諾伊大學的國家超級計算應用中心(NCSA)、康奈爾大學的康奈爾國家超級計算機研究室(CNSF)、匹茲堡超級計算機中心(PBC)、馮·諾依曼國家超級計算機中心(JVNNSC)和美國國家大氣研究中心(NCAR)的科學計算分部連接起來,對大學和科研用戶提供可遠程使用的計算資源[4]。

20 世紀90 年代中期,網格計算(grid computing)的概念在美國興起[5]。 網格(grid)一詞最初是指電力網(power grid),網格計算借用電力網的概念,提出要利用高速互聯網把分布于不同地理位置的計算、數據、存儲和軟件等資源連為一體,通過調度、管理和安全保障機制,建立一個像電網一樣的計算網格,把算力像電力那樣輸送給終端用戶,支持共享使用和協同工作[6]。 在美國NSF的支持下,分別由NCSA 和SDSC 牽頭,實施了2個網格計算項目,初步建立了計算網格的雛形[7]。 網格計算研究在20 世紀末到21 世紀最初10 年達到高潮。 在美國的倡導下,成立了全球網格論壇GGF,與此對應,國際IT 大公司聯合成立了企業網格論壇EGF。 2006 年,GGF 和EGF 合并,成為開放網格論壇OGF。 GGF 提出了開放網格服務基礎設施OGSI 和開放網格服務體系架構OGSA 等標準[8-9],協調全球網格計算的研究和開發力量,研究資源管理,安全、信息服務及數據管理等網格計算基本理論和關鍵技術。 在Globus項目[10]支持下研發了Globus Toolkit 3. 0 (GT3)軟件,GT3 作為OGSI 的一個完整的參考實現,成為網格計算的事實標準。

在網格計算熱潮中,美國、歐盟、日本、中國都實施了一批網格計算研究計劃或項目。 部分代表性項目如表1 所示。

表1 世界部分網格相關研究計劃Table 1 Part of grid-related programs in the world

美國是網格計算的發源地,該方向的研究計劃持續時間最長,實施的項目數量最多。 美國NSF 專門設立Cyberinfrastructure 部門,持續穩定支持網格計算方向的研究。 美國的網格項目主要有2 類。 第1 類由美國NSF 支持,在先進計算伙伴計劃PACI 之后,從20 世紀末開始實施Tera-Grid 項目[11],其主要目標是用網格計算技術推動國家科技進步,保持美國的科技領先地位。 2011年,TeraGrid 的后繼項目XSEDE 項目(https://www.xsede.org/)正式啟動,該項目旨在連接全球的計算機、數據和研究人員,建立可供科學家共享的計算環境。 美國NSF 資助的開放科學網格(OSG)在其基礎軟件HTCondor(https://htcondor.org/)支持下,實現了眾多大學與國家實驗室的計算資源共享,為科學家提供了科學計算的環境。 第2 類網格項目由美國國防部、能源部等支持,其主要目標是更好地完成本部門的任務。 2類研究的應用目標有所不同,但共同點是要發展先進的基于網絡的應用基礎設施,實現應用層面的互聯互通、資源共享、協同工作。

歐盟于2000 年和2001 年分別啟動了歐洲網格計劃(EuroGrid)(https://www. eurogrid. org/)和歐洲數據網格計劃(European DataGrid)[12]。在歐洲數據網格計劃的基礎上,2004 年3 月,歐盟框架研究計劃啟動了EGEE 項目[13],其目標是基于網格技術開發歐洲的服務網格基礎設施,供科學家全天候使用。 2011 年,歐盟框架計劃又啟動了EGEE 的后繼項目EGI(https://www. egi.eu/)。 在這些項目支持下,研發了歐盟的網格中間件gLite (http://glite. cern. ch/),建立了可持續運維的泛歐計算基礎設施。

英國的網格研究計劃是UK e-Science[14],其目標是用網格技術改變科學研究的模式,推動科學技術的進步,長遠目標是影響未來的信息技術基礎設施。 在UK e-Science 計劃支持下,英國在大學和研究機構建立了一批國家e-Science中心,依托OMII-UK 項目研發了英國的開放網格中間件,開發了一批面向e-Science 的網格應用系統。

日本文部科學省(MEXT)在2003 年啟動了“國家研究網格基礎設施”項目NAREGI[15]。 NAREGI 構建在日本教育科研網SuperSINET 之上,旨在研制并部署面向科學研究的網格基礎設施,并參與全球開放網格組織OGF 的工作,為網格的標準化活動提供支持。 在NAREGI 之后,日本政府又結合E 級超級計算機的研制,啟動了日本高性能計算基礎設施項目HPCI。 HPCI 通過Super-SINET 連接日本大學和研究機構中的10 個大超算中心和2 個大數據中心,形成日本的國家級計算基礎設施。

中國的網格計算研究起步于20 世紀90 年代末,科學技術部(以下簡稱科技部)是支持網格計算研究的主要政府部門,從1999 年起,中國在高性能計算和網格方向連續實施了多個國家863 重大項目和國家重點研發專項,表2 列出了科技部在該方向支持的主要項目。 在這些項目的持續支持下,研發了國家高性能計算環境系統軟件CNGrid GOS 和CNGrid Suite,使用環境系統軟件,聚合了分布在全國各地近20 個超算中心和高性能計算中心的計算資源,實現了資源的互聯互通與統一共享、作業的提交與全局調度、數據的全局管理和環境的安全管控,在此基礎上,成功構建了基于網格/網絡計算技術的國家高性能計算環境——中國國家網格服務環境CNGrid(參見http://www. cngrid. org)。 CNGrid 歷經20 余年的發展,正從“可用”邁向“好用”,目前的聚合計算能力超過50 億億次,存儲容量近500 PB,部署了600 多個應用軟件和工具軟件,支撐了數千項國家科技計劃項目和重要工程項目的研究工作,用戶覆蓋基礎研究、工業設計、能源環境和信息服務等眾多領域,極大促進了中國科技創新能力的提高,已經成為科學研究、技術創新、工程設計中不可或缺的新型信息基礎設施。

表2 中國科技部的網格和高性能計算項目Table 2 Grid and high performance computing projects under the Ministry of Science and Technology of China

2006 年興起的云計算是網絡計算技術與應用模式的一次大變革。 與以往由學術界主導的技術熱潮不同,云計算從開始就是由IT 公司提出并引領的。 2006 年3 月,亞馬遜公司推出彈性計算云EC2(http://aws. amazon. com/ec2),2006 年8 月,谷歌公司首席執行官埃里克·施密特在搜索引擎大會首次提出“云計算”的概念。 此后,微軟、戴爾、IBM 等國際IT 巨頭和百度、阿里等中國互聯網公司都紛紛跟進。 在學術界,美國加利福尼亞大學伯克利分校的Armbrust 等也專門發文,闡述云計算的學術問題[16]。 幾年之內,云計算已從新興技術發展成為全球的熱點技術。 云的資源被虛擬化,可以動態升級,資源被所有云計算用戶通過網絡方便地使用。 云計算的出現改變了IT應用系統部署運行的方式。 在傳統IT 應用模式下,應用部門需要自行采購計算機硬件和軟件,在私有的計算系統上安裝部署自己的應用軟件,運行和維護應用系統。 在云計算模式下,用戶無須自行采購維護計算機,而是從云服務商那里租賃所需的計算資源,在云中安裝特定的應用軟件,存放應用的數據,完成應用系統的部署,應用系統就能夠運行在云端。 應用部門本身不需要采購和維護私有的計算機,當應用需求變化時,可以根據需要增加或減少租賃的云計算資源。 服務和按用付費是云計算的商業模式,是計算向基礎設施形態邁出的一大步。 根據所提供的服務內容,云計算可分為IaaS(提供基礎資源)、PaaS(提供平臺服務)和SaaS(提供應用軟件)[17]。 根據服務的范圍和應用的性質,云計算又可分為公有云、私有云和混合云[18]。 按照服務封裝部署方式又可分為虛擬機、容器、裸金屬服務器等[19]。 今天,幾乎所有大數據中心都在某種程度上使用云計算技術,提供云服務。 云計算技術也被引入傳統的高性能計算領域,出現了以云方式運行超級計算中心的“云超算”和提供高性能計算能力的“超算云”[20]。

中國的云計算和國際同步發展。 國家863 計劃在2010 年就啟動了“中國云”重大項目,支持阿里、百度等互聯網公司研發云計算系統。 “十三五”期間實施了“云計算與大數據”重點專項,更加系統全面地推進云計算關鍵技術和系統的研發與應用。 今天,阿里云、華為云、百度云、浪潮云等已經在國內市場舉足輕重。

物聯網(IoT)、基于移動互聯網應用的蓬勃發展催生了邊緣計算[21]。 邊緣計算的目的是使應用程序、數據和計算能力(服務)更加靠近端用戶,而不是更靠近集中的云,這樣就能減少數據的移動,降低數據傳輸的延遲,降低端系統和數據中心之間的傳輸帶寬需求,達到更低的成本和更好的用戶體驗的效果。 隨著邊緣計算技術的進步,云-邊-端融合的IT 應用模式也日趨流行,成為滲透更寬廣應用領域的網絡計算的新形態。

2 國家高性能計算基礎設施CNGrid

建設國家級高性能計算基礎設施是創新型國家建設的戰略需求。 基于網絡計算的計算基礎設施具有如下特征:①動態性。 系統的狀態和行為動態變化,資源動態接入和退出、設備隨時會出故障、網絡可能擁塞甚至斷開、用戶的數量會不斷變化等。 ②自治性。 地理分散的資源在支持廣泛共享的同時,仍能保持原有的隸屬和管理屬性。 ③開放性。 硬件、軟件和服務來自不同的廠商,由不同的團隊開發,遵循不同的技術規范,兼容并蓄,形成自然生長演化的計算生態環境。 這種動態、自治、開放的基礎設施不同于資源集中擁有和控制的云計算環境。

在開放、動態的互聯網環境下,聚合網上異構、自治的分散資源,構建在全國范圍共享使用的國家高性能計算基礎設施,面臨重大技術挑戰:①在動態環境下如何應對系統資源的不確定性,對用戶提供穩定的高質量服務;②在不改變原有資源隸屬關系和管理模式的條件下,如何實現受控共享;③在開放異構的環境下,如何高效開發和運行大規模分布并行應用,建立高性能計算應用的生態環境。 國家高性能計算基礎設施CNGrid 通過體系結構、系統軟件、應用模式、應用開發與優化技術等創新應對上述挑戰,為在中國形成高性能計算資源提供、應用開發和運行服務的完整產業鏈奠定了技術基礎。

2.1 非集中層次虛擬化體系結構及系統軟件

針對開放動態環境下分布異構資源的統一管理與受控共享、系統安全及服務質量保障等重大技術難題,設計并實現了國家高性能計算基礎設施“三橫兩縱”的非集中層次虛擬化體系結構,如圖1所示。 “三橫”是指自底向上的內核系統層、系統服務層和應用層。 內核系統層通過資源實體和虛擬組織等抽象,將地理分布、自治的高性能計算物理資源抽象和聚合為可動態劃分、申請和調度的虛擬資源,通過運行時虛擬地址空間和自治安全策略,解決資源視圖、資源發現及定位、異構資源統一訪問等基礎性問題。 系統服務層通過訪問虛擬資源,以服務化形式向上層應用提供作業管理、數據訪問與傳輸、應用編程、用戶映射等功能。 應用層使用系統服務層提供的功能,實現應用的業務邏輯,服務最終用戶。 “兩縱”是貫穿內核系統層、系統服務層、應用層3 個層次的環境監控管理和安全機制,保障環境的可管理性和安全性。

圖1 國家高性能計算基礎設施的非集中層次虛擬化體系結構Fig.1 Decentralized hierarchical virtualization architecture for national high performance computing infrastructure

體系結構的非集中是指CNGrid 的管控采用地理分布模式,即在每個CNGrid 結點部署一臺運行系統軟件的服務器,通過覆蓋網絡將各個CNGrid結點動態組織成星型、網狀或混合結構,以適應國家高性能計算基礎設施對資源的分層分域管理的需求。

基于非集中層次虛擬化體系結構,研發了基礎設施系統軟件CNGrid Suite,其系統架構如圖2 所示。 CNGrid Suite 提出并實現了“資源實體”、“虛擬組織”和“運行時虛擬地址空間”等3個系統核心抽象,來表達系統中的各種資源要素、要素間的靜態關系和運行時的動態關系,通過這些抽象,將分散、異構、無序的計算機硬件資源、軟件資源和用戶組織成邏輯有序、可受控共享的虛擬資源,支持資源的動態聚合、調度和安全訪問。

圖2 CNGrid Suite 系統架構Fig.2 CNGrid suite system architecture

2.2 資源組織與作業調度

針對國家高性能計算基礎設施特點和應用需求,提出了“資源實體”、“虛擬組織”和“運行時虛擬地址空間”等系統軟件創新概念,應對資源描述、組織和訪問的挑戰。

在CNGrid 中,用戶、資源和社區都被統一抽象為資源實體。 每個資源實體由一個全局id 來標識,代表一個可以訪問其他實體,也可被其他實體所訪問的全局資源要素。 系統軟件的全局命名管理模塊對資源實體實施統一管控,完成資源實體創立與消除、資源定位、資源解耦等功能。

多個相關資源實體可構成一個虛擬組織。 虛擬組織描述資源實體之間的靜態關系,實現資源實體注冊、資源實體接入與剔除、資源實體元信息管理、資源實體權限管理、資源實體訪問控制等功能。 通過虛擬組織把資源實體組織成可有效管控、相互協同的資源集合。

運行時虛擬地址空間描述了資源實體間的動態訪問和調用關系,結合動態綁定的安全策略,解決了資源命名、資源視圖、資源發現及定位、資源統一安全訪問等基礎性問題。 與傳統操作系統的進程概念相對應,CNGrid 提出了網程(Grip)概念。 網程在運行時虛擬地址空間中代表資源實體動態訪問其他資源,實施訪問控制,分配、管理和回收資源,實現應用的可控啟動和終止。

CNGrid 聚合了分布在不同地域、不同組織機構中的各種各樣的高性能計算資源,面向用戶提供統一的系統映像和透明的作業調度是基本需求。 CNGrid 的作業調度由服務端、驅動器和客戶端3 部分組成[22]。 面向用戶提供統一的訪問入口和使用方式。 系統軟件根據用戶作業請求性質為其自動匹配適當的高性能計算資源。 另外,也提供開放接口,為作業調度模型和調度策略的優化提供了可能。 作業調度核心模塊由資源收集器、資源匹配器和資源調度器構成,通過引入多種優先級作業隊列,細化作業的系統狀態,改善了作業調度策略的可配置性[23]。

2.3 監控管理和安全機制

針對資源的分布性、異構性和動態性,服務和應用的多樣性及管理需求的各異性等特征,CNGrid 提出了統一實體監控管理、管理功能動態構造、管理功能跨域動態部署及協同工作等創新概念與機制,設計了基于統一實體的監控管理體系架構,研發了一體化的監控管理系統(見圖3),實現了CNGrid 的資源監控和運行管理,為多層次資源的按需共享和自主協同提供了支撐。

圖3 一體化基礎設施監控管理體系結構框架Fig.3 Architectural framework of integrated infrastructure monitoring and management

與CNGrid 系統軟件中的資源實體抽象相對應,設計了基于實體的資源管理信息描述方法,采用統一的“被管對象”抽象建立全局信息模型,對各類資源信息進行有效的建模與表示,形成對不同層次、不同類別資源精確監控和管理的基礎。

針對資源的動態性和多樣性,提供了監控管理功能的動態生成、部署、運行的能力,支持管理功能的動態擴展和更新,實現監控管理系統的動態構造與演化。 針對資源的跨域特點,提出了監控管理功能跨域動態部署的概念。 基礎設施的監控管理按分布層次式組織,監控管理功能分布在各個監控管理域中,各管理域既局部自治又相互協作。 管理域設立自身的監控管理中心,形成多級監控管理中心的協同機制。 同時,實現了基于復雜事件處理的監控信息高效獲取、傳輸和控制的機制。 這些措施有效減少了與監控管理有關的數據流量,降低了監控管理對基礎設施正常應用業務的影響。

針對CNGrid 環境下資源種類繁多、數目巨大的現狀,設計實現了單維度、多維度及基于日志等多種故障掃描、識別和應對方法,能夠準確定位故障,分析故障根因,及時通告故障事件并推薦應對的策略,為提高CNGrid 的可用性、可靠性和可管理性提供了保障。

CNGrid 的安全機制采用基于證書的身份認證和訪問權限控制,系統軟件基于代理證書實現用戶認證和權限代理。 首先定義訪問控制的策略構建資源共享操作上下文,操作上下文包含用戶在CNGrid 中的身份信息(用戶的代理證書)、用戶所屬虛擬組織及其所在組別,以及虛擬組織簽發的資源訪問令牌。 資源提供者能夠在虛擬組織中注冊資源并對其進行持續的管理,通過向用戶分配相應的權限,控制應用占用的資源并有效支持多個應用間的協同。 在運行時,由網程維護用戶身份并實施訪問控制。 當用戶需要訪問資源時,把自己的操作上下文從用戶端傳送到資源端,基于證書權限驗證的結果控制資源的訪問[24]。CNGrid 中部署了證書的認證中心(CA),用戶可通過CA 的Web 界面申請用戶證書。 CNGrid 安全機制基于公鑰基礎設施(PKI),使用標準的X.509證書,提供用戶和資源的雙向認證。

CNGrid 的安全機制在權限控制的前提下,盡可能地支持基礎設施資源的共享。 受控共享是CNGrid 提出的一個重要概念。 在受控共享機制下,只要訪問控制權限允許,非屬主用戶和屬主用戶均可完成對資源的操作,此過程稱為屬主用戶和非屬主用戶對資源的受控共享。

2.4 數據管理和高效傳輸

高效存儲和訪問分布、異構、自治的數據資源是CNGrid 要解決的另一個關鍵問題。 針對科學研究和行業應用的實際需求,設計并實現了基于虛擬數據空間的數據管理體系,有效集成了環境中的數據資源,構建了統一的數據管理空間,為用戶提供了透明統一的數據存儲、訪問和管理能力。CNGrid 的數據資源主要包括文件系統和數據庫系統。 虛擬數據空間為文件系統的集成共享提供虛擬文件系統,為數據庫系統的集成共享提供虛擬數據庫系統。 在這兩者之上,虛擬數據空間提供數據基礎服務,簡化了存儲和數據的使用邏輯,為用戶或應用提供便利。

針對CNGrid 中數據分布存儲和自治管理等特點,虛擬數據空間采用面向服務的分布式層次結構進行構建。 設計了基于分布域的聯邦數據存儲管理機制,在各數據域的自治管理基礎上實現全局統一管理,保障數據管理的可擴展性。 通過數據域之間的協作來滿足應用的分布式存儲需求,系統根據用戶的訪問位置等信息實現數據資源的就近存儲和管理,以便提高用戶對數據的訪問效率。 設計實現了異構數據庫的整合機制,以統一的接口實現對不同數據庫管理系統的數據訪問,并且通過并行機制保障在大規模分布式環境下的訪問效率。

影響CNGrid 中數據傳輸效率的主要因素包括單次傳輸的數據量、網絡帶寬的利用率和傳輸引入的額外開銷。 因此,提高效率的關鍵在于減小單次傳輸的數據量,充分利用網絡帶寬,降低傳輸額外開銷。 數據傳輸不可靠的主要原因是網絡鏈路及主機的不穩定,增強可靠性的關鍵在于克服不穩定因素,減少數據傳輸錯誤造成的損失。CNGrid 通過多個副本并行傳輸來提高帶寬利用率,通過文件的分塊傳輸來減少每次傳輸的數據量,通過就近傳輸來提高傳輸速度和可靠性,提供斷點續傳和三方傳輸來提高數據傳輸效率,減少額外開銷。

CNGrid 環境的動態變化特性使數據存儲資源難以保證持續的服務。 CNGrid 引入數據副本管理機制來保證數據服務的可靠性。 數據副本的引入帶來數據一致性維護問題。 為此設計實現了并行化的一致性有限狀態機,有效降低了數據一致性維護的代價。 數據按照其使用頻度被定義為冷熱數據,系統根據數據溫度動態調整其副本數量,在提高訪問效率的同時減少了不必要的開銷。此外,還設計實現了位置及網絡實時狀態感知的數據副本放置策略,在保證一致性的同時提高了數據訪問的效率。

CNGrid 的數據管理服務通過靈活和自適應的數據訪問授權控制,解決了數據安全性與環境復雜動態性之間的矛盾。 其采用細粒度的訪問控制策略,為不同的資源擁有者和使用者對不同粒度的數據資源的訪問,提供個性化的訪問控制策略,滿足了自治性和個性化的要求。

2.5 基于應用社區的應用新模式

針對以公共計算平臺支撐個性化領域應用的需求,CNGrid 提出了體現領域應用特點的個性化領域應用社區概念。 應用社區具有“批零”結合的資源管控與按需服務機制,既有網格聚合分散資源的能力,又有云計算集中管控、按用付費的特點,成為國家高性能計算基礎設施的應用新模式。為了支撐應用社區的構建和運行,發展了領域應用中間件Xfinity,實現了多層次的用戶管理機制、按域劃分的資源管理模式、基于模板的應用零開發熱部署技術及資源動態綁定的工作流技術等體系架構和關鍵技術創新。

按需定制的服務模式體現在服務方式和內容的定制,可為不同用戶定制滿足其特定需求的專用社區。 通過社區動態配置、資源動態綁定與復用、應用按需集成與動態部署等技術,實現了服務的按需定制。 按需付費的交易模式貫穿服務交易全過程。 資源擁有者在社區發布資源與價格信息,用戶通過社區選擇能滿足其需求且價格合適的服務。 社區監督服務交易過程和服務完成情況,保證交易各方的利益。

為實現按需調配的資源管理模式,提出了權屬策略靈活配置的社區資源管理技術,將特定資源組織成資源子域授權給不同用戶使用。不同資源子域的用戶相互隔離,互不干擾。 用戶對其資源子域擁有完全的支配權,可做更精細的分級授權管理,實現社區內資源的有效調配和充分共享。

社區通過基于角色的權限訪問控制、組管理和雙層映射等技術實現了多層次、分角色的用戶與資源的精細管理。 實現了與企業業務系統相容的低開銷安全機制,允許獨立制定和修改國家高性能計算基礎設施、社區、企業這3 個管理域的安全機制,在管理域之間建立信任關系和映射機制,消解各管理域不同安全策略間的矛盾。

工業創新設計社區是該新型應用模式的一個實例,其系統框架如圖4 所示。 工業社區將國家高性能計算基礎設施的計算服務推送到汽車制造、核電、飛機制造等行業的企業內部,加快了產品設計,降低了研發成本,提高了企業競爭力,取得很好的經濟效益。

圖4 工業社區系統框架Fig.4 Industrial community system framework

2.6 分布異構環境下應用軟件的開發與優化

CNGrid 的地理分布、資源異構的特征給大型應用的開發帶來新的挑戰。 針對大規模應用的流程化與跨結點分布特征,CNGrid 突破了構件與流程相結合的工作流編排、部署和運行技術,實現了流程在線組裝、即時協作、即插即用的服務適配機制,支持分布資源的動態綁定、應用的快速開發和靈活部署執行,允許領域專業人員以低代碼方式開發應用。

針對國產超級計算機多級并行和多種異構的特點,提出并實現了一系列并行程序優化方法和技術。 例如,提出了節點間MPI、節點內OpenMP、處理器內多核并行的多級混合并行模式。 提出了適用于不同異構平臺的區域分解和動態負載平衡方法,通過動態可調的區域劃分,實現加速器和通用處理器之間的負載均衡,隱藏加速器和通用處理器間的通信開銷。 提出了定制緩存及計算/訪存重疊技術,充分發揮數據在片內核間的最佳重用。 提出以定制DMA 傳輸等方式實現計算和訪存的最優化重疊,緩解內存帶寬對應用整體性能的限制,大幅提升系統效率。 研發了應用級斷點保護技術,保證了大規模長時間作業的正確執行。發展了屏蔽硬件細節的并行算法庫和編程接口,使不熟悉并行計算的應用領域專家能編寫高效的并行應用軟件。

在上述關鍵技術突破的基礎上,研發了面向國家高性能計算基礎設施的應用集成開發環境。集成開發環境包含基礎算法庫、應用模塊庫、程序模板庫、優化工具庫、拖拽式的工作流編排器、適配多種國產處理器的跨異構結點編譯環境等,其系統架構如圖5 所示。 開發人員可以使用集成開發環境中基于模板庫的開發向導,自動生成程序代碼框架,重用基本算法和模塊庫中的代碼,快速構建應用程序,并在國家高性能計算基礎設施中交互式地部署、優化和運行。

圖5 高性能計算應用集成開發環境系統架構Fig.5 System architecture of integrated development environment for high performance computing applications

3 算力基礎設施發展趨勢與展望

3.1 新興應用和技術趨勢

3.1.1 新興應用及算力需求

近年來,一系列新興技術與應用的快速發展對算力基礎設施提出了更高的要求。 其中,最具代表性的有人工智能、大數據和云計算等。

新一代人工智能的核心驅動力來自深度學習技術。 通過對多層大規模人工神經網絡進行訓練并用于推理,促進了計算機視覺、自然語言處理等領域的突破性進展。 雖然人工神經網絡概念的出現和應用已有數十年,但之所以近年來才取得快速發展,離不開算力的支持。 深度學習是一種計算和數據驅動的技術,由于深度神經網絡規模龐大,且通常需要使用大量的數據進行訓練,這帶來了巨大的計算量。 表3[25]給出了幾種典型神經網絡模型的訓練計算量。 龐大的計算量使得神經網絡訓練通常需要借助加速部件進行,即使這樣,一次模型訓練也需要花費數小時到數天時間。

表3 典型深度神經網絡模型的訓練計算量[25]Table 3 Training computations of typical deep neural networks[25]

大數據和云計算是另一種推動算力設施發展的新興技術。 在虛擬機和容器技術的支持下,人們可以在硬件平臺上實現計算資源的靈活劃分和隔離,以及軟件環境的快速部署,這使得用戶可以從云平臺獲得按需分配、可動態伸縮、易于部署且穩定可靠的硬軟件平臺和算力服務,這一特性吸引越來越多的用戶將網站、業務平臺和信息系統等遷移托管到云數據中心。 由于企事業單位數量眾多,此類應用的需求聚合到一起形成了對算力資源的龐大需求。

3.1.2 體系結構及算力設施的發展趨勢

隨著集成電路延續數十年的“摩爾定律”減緩并走向停滯,計算機體系結構進入了變革期,多樣化的體系結構不斷涌現。 為了在集成電路規模和性能增長減緩的背景下持續提升應用性能,定制化(customization)成為近年來體系結構發展的一大特點,即通過設計面向不同應用的加速部件/處理器,持續提升應用性能,典型代表有GPU 和深度學習處理器/加速器。 在GPU 方面,除了Nvidia GPU 外,傳統處理器廠商AMD 和Intel 也陸續推出自己的GPU,國內也已研發出多款自主GPU 芯片,為人工智能、科學計算、圖形/圖像處理等應用提供了高性能計算平臺;在深度學習處理器/加速器方面,比較有代表性的有寒武紀、Google TPU、華為昇騰等,這些處理器/加速器專為神經網絡計算而設計,其性價比和能效均優于通用CPU 和GPU。

在多種新興應用的推動下,各種處理器/加速器被應用于算力設施中,這帶來了以下2 方面的變化:

1) 算力中心內的異構化。 在算力中心內部,異構已成為主流架構。 表4[26]給出了TOP500 超級計算機排行榜中前十位高性能計算機的體系結構。 可以看出,10 臺機器中僅有1 臺(富岳)采用同構架構,其他9 臺均為異構架構,除CPU +GPU結構外,中國的神威·太湖之光采用片內異構眾核處理器,天河2A 采用CPU + 加速器結構。 算力中心異構化的另一個體現是面向人工智能應用的異構體系結構,除了CPU +GPU 結構外,CPU +深度學習處理器/加速器結構也被智算中心廣泛采用,如CPU +Google TPU、CPU +寒武紀、CPU +華為昇騰等。

表4 TOP500 排名前十的高性能計算機(2022 年6 月)[26]Table 4 TOP10 in TOP500 high performance computing systems (June 2022)[26]

2) 算力中心的多樣化(算力中心間的異構化)。 傳統的超算中心主要面向科學/工程計算,應用類型以并行數值模擬為主,主要特征是以雙精度浮點運算為核心的計算密集型應用。 與之相比,人工智能應用的計算類型主要是單精度/半精度浮點和定點運算,而大數據和云計算則以數據密集型應用為主。 為了適應這些新興應用的需求,算力中心的硬件配置也開始出現變化,出現了配置深度學習處理器/加速器、主要面向人工智能應用的智算中心,以及配置大容量內存和網絡虛擬化設備、主要面向大數據和云計算應用的云算中心,同時,超算中心也開始支持人工智能和大數據應用。

3.2 算力基礎設施面臨的技術挑戰

隨著“東數西算”國家戰略的實施,西部多個算力樞紐將建設算力中心,并面向東部經濟發達地區提供算力服務。 在這一背景下,如果由各個算力中心單打獨斗,分散運營,則算力中心需投入人力物力自行發展用戶,容易出現算力中心間的負載不均衡,導致算力碎片化和算力資源浪費;而在用戶側,由于各算力平臺的硬件配置、軟件資源、服務接口存在差異,也將給用戶的軟件開發和資源使用帶來諸多不便。 因此,通過將多個算力中心互聯,向用戶提供一站式、集成化的算力服務,形成覆蓋全國的算力基礎設施,對于提升算力資源利用效率和服務水平,促進國產軟件和應用生態發展,支撐“東數西算”國家戰略具有重要意義。

為了構建算力基礎設施,需要解決算力中心異構化和多樣化帶來的諸多技術挑戰,主要體現在以下幾方面:

1) 計算任務在異構算力中心間的透明調度。算力基礎設施必須具備的一項功能是:用戶通過算力基礎設施的服務平臺提交一個計算任務后,可以直接得到計算結果,無需關心該計算任務在哪個算力中心上運行。 這需要按照計算任務的類型和需求確定其所需資源,并根據各個算力中心的硬軟件配置及可用資源數量進行任務分配和調度。 例如,如果用戶提交的是一個使用CUDA 編寫的可執行程序,就要在各算力中心尋找配置Nvidia GPU 的節點并獲取其當前使用狀態,在此基礎上進行調度;而如果用戶只是希望在指定的數據集上完成深度神經網絡模型訓練,或者只是希望對所設計零件進行結構強度分析,那么計算任務的分派調度就不但要考慮硬件資源,還要考慮是否具備所需的軟件資源。 在以上基本調度功能的基礎上,如果進一步考慮用戶的服務質量和計費需求,如限定任務完成時間、限定資費水平等,任務調度要考慮的因素就更多。

2) 如何提供多層次、多樣化的算力服務。 算力服務的層次與云計算服務相似,也可分為基礎設施(IaaS)、平臺(PaaS)、應用軟件(SaaS)3 個層次。 在基礎設施層,算力服務以處理器/加速器/計算節點的形式提供;在平臺層,算力服務在基礎設施之上還提供系統軟件和支撐軟件,如高性能計算用戶需要的MPI 環境和基礎算法庫,人工智能用戶需要的深度學習框架,大數據用戶需要的分布式處理框架等;在應用軟件層次,用戶則可以直接使用不同種類的應用軟件和服務。 在算力基礎設施中,算力中心的異構化和多樣化使得算力服務變得更加復雜。 以平臺層為例,即使是高性能計算所需的MPI 環境和基礎算法庫,在不同的算力中心中也會有不小的差異,用戶在不同算力中心中使用這些服務時往往需要進行適配和修改(如修改作業腳本等)。 由于算力基礎設施需要向用戶提供透明、一致的算力服務,如何屏蔽這些差異,就是需要著力研究和解決的問題。

3) 多算力中心分布式協同計算與虛擬超級計算機。 在過去,由于算力中心間的網絡帶寬有限,計算任務通常分配在單個算力中心上完成,即使進行跨中心計算,一般也僅限于工作流中的不同計算階段。 近年來,隨著網絡基礎設施和算網融合技術的發展,算力中心間的網絡互聯帶寬不斷提升,傳輸延遲顯著下降。 國內已有超算中心間網絡互聯達到傳輸帶寬10 Gbps、延遲接近1 ms的水平,這給多個算力中心進行分布式協同計算提供了可能性。 這一方面需要算力中心基礎支撐軟件互聯互通構成分布式計算環境,另一方面,還需要研究在這種環境中的任務劃分、調度和遷移等技術。 更進一步,在互聯帶寬和延遲滿足要求的情況下,是否可能將多個超算中心互聯成為統一管理、統一調度的單一計算系統,形成可完成數倍于原有規模并行計算的“虛擬超級計算機”,也是值得研究和探討的問題。

4) 多樣化算力中心和異構化體系結構的編程問題。 異構體系結構顯著增加了并行編程的復雜性,該問題在多樣化算力中心場景下更加突出。為了支持異構處理器/加速器編程,廠商推出了相應的 編 程 語 言/接 口, 如 用 于 Nvidia GPU 的CUDA、用于申威眾核處理器的Athread、用于AMD GPU 的ROCm/HIP 等,并基于這些編程接口開發/移植了各種基礎算法庫、求解器、深度學習框架等,但異構平臺編程的復雜度仍然遠高于傳統的CPU 平臺。 在多樣化算力中心中,異構硬件平臺的種類更多,為使程序具有更好的平臺適應性,在軟件編程模型和語言方面還需要進行更多的工作。 雖然近年來已經出現了一些獨立于廠商的加速器編程接口,如OpenCL、OpenAcc、SYCL等,但這些編程接口在不同硬件平臺上的實現仍然有差異,為一種平臺編寫的程序通常難以不加修改地在另一種平臺上編譯和運行。 有鑒于此,仍然有必要提出獨立于硬件平臺且可屏蔽硬件細節的編程模型/語言,與此同時,研究開發異構程序轉換工具,實現并行程序在不同硬件平臺間的透明轉換和自動編譯,進而支持并行程序在多樣化算力中心的透明調度和運行,也將是一項很有價值的工作。

5) 數據在分布式算力中心間的放置問題。無論是科學工程計算,還是人工智能或大數據應用,其數據規模都較為龐大。 由于算力中心間的數據傳輸和訪問開銷較大,在算力中心間進行計算任務調度和遷移時,數據放置就成為必須考慮的一個重要因素。

6) 公共算力中心的數據安全和隱私問題。在人工智能領域,為了滿足數據隱私和安全需求,提出了聯邦學習技術(federated learning)[27],通過多個數據擁有者協同完成訓練,避免了數據向其他實體公開。 這種數據隱私和安全性需求同樣存在于大數據分析、科學與工程計算等領域。 為了使用公共算力中心的計算服務,用戶往往需要將數據上傳至算力中心,雖然通過VPN 等技術可以保證數據在網絡中傳輸時的安全性,但在多用戶共享的算力中心中,數據在外存中的存放,以及計算過程中數據在內存的存放,仍然存在數據外泄的可能性。 為滿足對數據安全性要求較高用戶的需求,如何在大數據分析和科學工程計算領域提供類似于聯邦學習的機制,或實現“可計算但不可讀寫”,是值得深入研究的問題。

3.3 中國超算應用生態存在問題和算力基礎設施未來展望

3.3.1 中國超算應用生態存在的問題

近年來,中國高性能計算技術水平取得了長足進步,超級計算機研制水平已處于國際前列,擁有性能排名前列的超級計算機,生產和部署的高性能計算系統數量也世界領先。 在高性能計算應用軟件方面,面向國產超算系統研發了一批重點行業/領域應用軟件,取得了眾多的應用成果,大規模并行算法及應用也2 次獲得代表國際超算應用最高水平的Gordon Bell 獎,但總體上,高性能計算軟件與應用的發展相對不足,應用生態也不夠豐富。 產生這種現象的原因有多個方面:

1) 軟件和應用研發投入不足。 中國科研領域和產業界長期存在著“重硬輕軟”的現象,在高性能計算領域,國家投入經費的大部分都用于高性能計算機系統研制,軟件和應用處于配合和支撐地位,與發達國家超算研究計劃中硬軟件投入接近1:1 相比,中國的軟件和應用研發投入明顯不足。

2) 軟件和應用種類多、研發持續時間長。 軟件和應用種類繁多,應用生態的建立需要長期持續的努力。 一種新型處理器/加速器推出后,初期往往只具備操作系統和編譯等核心軟件,而單靠硬件研發單位完成多種編程語言編譯器、調試及性能分析工具、基礎算法庫、求解器、各種領域應用軟件的研發非常困難,需要多方參與,經過若干年的持續努力,逐步研發和完善。

3) 用戶使用習慣不利于國產軟件的推廣。中國超算應用軟件研發起步相對較晚,西方國家在很多行業和領域已推出了商業化軟件,用戶已形成了商業軟件使用習慣和對商業軟件的認知度,某些行業甚至只認可某種軟件的仿真結果,這給國內應用軟件的自主研發和推廣應用帶來了很大困難。 一種軟件研發完成后,需要通過推廣應用來支撐驅動軟件維護和持續升級,通過軟件持續升級,不斷增強功能并改善用戶體驗,進而吸引更多用戶使用,然而,目前國產超算軟件研發還未能形成這種良性循環。

軟件和應用生態存在的不足使得中國高性能計算領域存在著“大而不強”的現象,與此同時,高性能基礎和應用軟件大量依賴國外軟件,也存在“卡脖子”的風險。

3.3.2 中國算力基礎設施的發展展望

“東數西算”戰略的實施將形成算力中心建設的新高潮,為了構建國家算力基礎設施,需要在研發突破關鍵技術的基礎上,補足中國超算軟件與應用的短板,并通過運營模式和機制創新,建立起豐富且自我發展的國產軟件應用生態。 為此,需要在以下方面開展重點工作:

1) 研究突破關鍵技術,支撐算力基礎設施發展。 圍繞算力中心異構化和多樣化帶來的技術挑戰,解決算力基礎設施面臨的技術難題,研發核心軟件和服務平臺,實現多樣化算力中心的互聯互通、資源共享和服務提供,為國家算力基礎設施的構建和發展提供技術支撐。

2) 強化計算軟件研發,補足國產軟件與應用短板。 以國產處理器/加速器的興起為契機,加強基于國產硬件的工具鏈、算法庫、求解器、領域應用等基礎和應用軟件研發,通過若干年的持續努力,建立較為完備的國產硬件支撐和應用軟件棧,形成可自我發展的國產軟件與應用生態。

3) 改變單一機時服務方式,推動算力中心能力建設。 國內已建成的超算中心為了彌補運行經費的不足,普遍以提供機時服務為主,即俗稱的“賣機時”。 這種低層次的算力服務消耗了較多的人力和精力,制約了算力中心向更高水平發展。通過建立國家算力基礎設施,可以推動算力中心從機時提供者向應用研發者和解決方案提供者轉變。 同時,各超算中心通過研發建立領域應用平臺,可以突出自己的技術特色,進而形成算力中心各有所長的態勢,也可以避免算力中心發展同質化。

4) 創新算力運營模式和機制,打造多方共贏的應用生態。 算力中心涉及地方政府、投資方、設備提供方和運營方,在構建國家算力基礎設施的過程中,需要以多方共贏為目標,通過運營模式和機制創新,鼓勵多方參與,通過競爭促進技術進步和服務水平提升,與此同時,以應用商店(App store)等模式打造研發、服務、運營等多方共贏的軟件和應用生態,進而推動國家算力基礎設施做大做強。

4 結束語

CNGird 在國家科技計劃支持下歷經20 余年發展,已經成為不可或缺的國家高性能計算基礎設施,并為“東數西算”背景下國家算力基礎設施的建設積累了寶貴經驗,奠定了技術基礎。 溫故而知新。 面對“東數西算”的新任務,要認真總結CNGrid 建設的歷史經驗,分析應用和技術發展的新趨勢,定位亟待解決的瓶頸技術問題,探索新的應用模式和機制,更高效地構建新一代國家算力基礎設施,實現“東數西算”的國家戰略。 這是國家創新發展賦予的歷史使命。

猜你喜歡
算力高性能網格
中國電信董事長柯瑞文:算力成為數字經濟的主要生產力
新型算力網絡架構及其應用案例分析
高性能輕集料混凝土運用分析
杭州“算力小鎮”
網格架起連心橋 海外僑胞感溫馨
高性能混凝土不同配合比下的性能研究
計算萬物 算力之下要有堅實的地基
追逐
高性能混凝土開裂成因及控制要點
新型“紡布工” 紡就高性能CFM——記國家自然科學基金青年基金獲得者王曉旭
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合