錢德沛 欒鐘治 劉軼
(北京航空航天大學 計算機學院, 北京 100083)
計算機是20 世紀人類社會最偉大的發(fā)明之一,它的出現(xiàn),徹底改變了人類生活、工作的面貌。計算與模擬和理論與分析、實驗與觀測一起,成為人類認識客觀世界、開展科學研究的重要手段。對現(xiàn)代科學研究而言,計算的重要性不言而喻。利用計算,可以更清晰地揭示客觀世界的發(fā)展規(guī)律,探索和預測未知的事物。 例如,大數據處理分析、人工智能大模型訓練和推理、新能源及其利用、新材料設計、工業(yè)產品創(chuàng)新設計、創(chuàng)新藥物研發(fā)、精確天氣預報、全球氣候變化預測、社會治理和決策支持等,都依賴計算機的強大算力。 因此,算力已經成為一個國家創(chuàng)新能力和綜合國力的體現(xiàn)。
伴隨算力的提高,如何能更容易地使用計算機,便捷地獲得所需的算力,也是人們一直追求的目標。 計算機誕生70 多年來,其使用方式一直在不斷變化。 早期,人圍著計算機轉,用戶要跑到專門的機房去上機,計算機被一個用戶單道程序所獨占。 隨著操作系統(tǒng)的進步,計算機的使用方式逐漸從單道程序的主機模式向多道程序的批作業(yè)模式[1]和分時交互模式[2]發(fā)展。 在分時計算系統(tǒng)[3]中,眾多用戶可以通過終端,同時使用一臺計算機,每個用戶在分配給他的時間片內使用計算機,但感覺上似乎是在獨占這臺計算機。 20 世紀80 年代,個人計算機的出現(xiàn)使計算機進入千家萬戶,但是個人計算機的性能有限,孤立的個人計算機難以勝任大的計算任務。 直到20 世紀另一個偉大發(fā)明計算機網絡的出現(xiàn)和普及,帶來網絡計算的新變革,計算機的使用方式才發(fā)生了影響更深遠的變化。 所謂網絡計算,就是通過網絡連接網上分散的計算機,匯聚網絡連接的各類硬件和軟件資源,形成能力更為強大的計算系統(tǒng)。 用戶可以通過網絡隨時隨地訪問計算機,使用計算資源,完成自身任務,而無需關心計算資源的物理所在。
美國的超算中心聯(lián)網是網絡計算系統(tǒng)的早期范例。 20 世紀80 年代中期,美國國防用途的Arpanet 進入商用,Internet 誕生。 在美國國家科學基金會(NSF)支持下,建設了主干速率56 Kbps、運行TCP/IP 協(xié)議的NSFNET 網絡。 NSFNET 將美國加利福尼亞大學的圣地亞哥超級計算機中心(SDSC)、伊利諾伊大學的國家超級計算應用中心(NCSA)、康奈爾大學的康奈爾國家超級計算機研究室(CNSF)、匹茲堡超級計算機中心(PBC)、馮·諾依曼國家超級計算機中心(JVNNSC)和美國國家大氣研究中心(NCAR)的科學計算分部連接起來,對大學和科研用戶提供可遠程使用的計算資源[4]。
20 世紀90 年代中期,網格計算(grid computing)的概念在美國興起[5]。 網格(grid)一詞最初是指電力網(power grid),網格計算借用電力網的概念,提出要利用高速互聯(lián)網把分布于不同地理位置的計算、數據、存儲和軟件等資源連為一體,通過調度、管理和安全保障機制,建立一個像電網一樣的計算網格,把算力像電力那樣輸送給終端用戶,支持共享使用和協(xié)同工作[6]。 在美國NSF的支持下,分別由NCSA 和SDSC 牽頭,實施了2個網格計算項目,初步建立了計算網格的雛形[7]。 網格計算研究在20 世紀末到21 世紀最初10 年達到高潮。 在美國的倡導下,成立了全球網格論壇GGF,與此對應,國際IT 大公司聯(lián)合成立了企業(yè)網格論壇EGF。 2006 年,GGF 和EGF 合并,成為開放網格論壇OGF。 GGF 提出了開放網格服務基礎設施OGSI 和開放網格服務體系架構OGSA 等標準[8-9],協(xié)調全球網格計算的研究和開發(fā)力量,研究資源管理,安全、信息服務及數據管理等網格計算基本理論和關鍵技術。 在Globus項目[10]支持下研發(fā)了Globus Toolkit 3. 0 (GT3)軟件,GT3 作為OGSI 的一個完整的參考實現(xiàn),成為網格計算的事實標準。
在網格計算熱潮中,美國、歐盟、日本、中國都實施了一批網格計算研究計劃或項目。 部分代表性項目如表1 所示。
表1 世界部分網格相關研究計劃Table 1 Part of grid-related programs in the world
美國是網格計算的發(fā)源地,該方向的研究計劃持續(xù)時間最長,實施的項目數量最多。 美國NSF 專門設立Cyberinfrastructure 部門,持續(xù)穩(wěn)定支持網格計算方向的研究。 美國的網格項目主要有2 類。 第1 類由美國NSF 支持,在先進計算伙伴計劃PACI 之后,從20 世紀末開始實施Tera-Grid 項目[11],其主要目標是用網格計算技術推動國家科技進步,保持美國的科技領先地位。 2011年,TeraGrid 的后繼項目XSEDE 項目(https://www.xsede.org/)正式啟動,該項目旨在連接全球的計算機、數據和研究人員,建立可供科學家共享的計算環(huán)境。 美國NSF 資助的開放科學網格(OSG)在其基礎軟件HTCondor(https://htcondor.org/)支持下,實現(xiàn)了眾多大學與國家實驗室的計算資源共享,為科學家提供了科學計算的環(huán)境。 第2 類網格項目由美國國防部、能源部等支持,其主要目標是更好地完成本部門的任務。 2類研究的應用目標有所不同,但共同點是要發(fā)展先進的基于網絡的應用基礎設施,實現(xiàn)應用層面的互聯(lián)互通、資源共享、協(xié)同工作。
歐盟于2000 年和2001 年分別啟動了歐洲網格計劃(EuroGrid)(https://www. eurogrid. org/)和歐洲數據網格計劃(European DataGrid)[12]。在歐洲數據網格計劃的基礎上,2004 年3 月,歐盟框架研究計劃啟動了EGEE 項目[13],其目標是基于網格技術開發(fā)歐洲的服務網格基礎設施,供科學家全天候使用。 2011 年,歐盟框架計劃又啟動了EGEE 的后繼項目EGI(https://www. egi.eu/)。 在這些項目支持下,研發(fā)了歐盟的網格中間件gLite (http://glite. cern. ch/),建立了可持續(xù)運維的泛歐計算基礎設施。
英國的網格研究計劃是UK e-Science[14],其目標是用網格技術改變科學研究的模式,推動科學技術的進步,長遠目標是影響未來的信息技術基礎設施。 在UK e-Science 計劃支持下,英國在大學和研究機構建立了一批國家e-Science中心,依托OMII-UK 項目研發(fā)了英國的開放網格中間件,開發(fā)了一批面向e-Science 的網格應用系統(tǒng)。
日本文部科學省(MEXT)在2003 年啟動了“國家研究網格基礎設施”項目NAREGI[15]。 NAREGI 構建在日本教育科研網SuperSINET 之上,旨在研制并部署面向科學研究的網格基礎設施,并參與全球開放網格組織OGF 的工作,為網格的標準化活動提供支持。 在NAREGI 之后,日本政府又結合E 級超級計算機的研制,啟動了日本高性能計算基礎設施項目HPCI。 HPCI 通過Super-SINET 連接日本大學和研究機構中的10 個大超算中心和2 個大數據中心,形成日本的國家級計算基礎設施。
中國的網格計算研究起步于20 世紀90 年代末,科學技術部(以下簡稱科技部)是支持網格計算研究的主要政府部門,從1999 年起,中國在高性能計算和網格方向連續(xù)實施了多個國家863 重大項目和國家重點研發(fā)專項,表2 列出了科技部在該方向支持的主要項目。 在這些項目的持續(xù)支持下,研發(fā)了國家高性能計算環(huán)境系統(tǒng)軟件CNGrid GOS 和CNGrid Suite,使用環(huán)境系統(tǒng)軟件,聚合了分布在全國各地近20 個超算中心和高性能計算中心的計算資源,實現(xiàn)了資源的互聯(lián)互通與統(tǒng)一共享、作業(yè)的提交與全局調度、數據的全局管理和環(huán)境的安全管控,在此基礎上,成功構建了基于網格/網絡計算技術的國家高性能計算環(huán)境——中國國家網格服務環(huán)境CNGrid(參見http://www. cngrid. org)。 CNGrid 歷經20 余年的發(fā)展,正從“可用”邁向“好用”,目前的聚合計算能力超過50 億億次,存儲容量近500 PB,部署了600 多個應用軟件和工具軟件,支撐了數千項國家科技計劃項目和重要工程項目的研究工作,用戶覆蓋基礎研究、工業(yè)設計、能源環(huán)境和信息服務等眾多領域,極大促進了中國科技創(chuàng)新能力的提高,已經成為科學研究、技術創(chuàng)新、工程設計中不可或缺的新型信息基礎設施。
表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 月,谷歌公司首席執(zhí)行官埃里克·施密特在搜索引擎大會首次提出“云計算”的概念。 此后,微軟、戴爾、IBM 等國際IT 巨頭和百度、阿里等中國互聯(lián)網公司都紛紛跟進。 在學術界,美國加利福尼亞大學伯克利分校的Armbrust 等也專門發(fā)文,闡述云計算的學術問題[16]。 幾年之內,云計算已從新興技術發(fā)展成為全球的熱點技術。 云的資源被虛擬化,可以動態(tài)升級,資源被所有云計算用戶通過網絡方便地使用。 云計算的出現(xiàn)改變了IT應用系統(tǒng)部署運行的方式。 在傳統(tǒng)IT 應用模式下,應用部門需要自行采購計算機硬件和軟件,在私有的計算系統(tǒng)上安裝部署自己的應用軟件,運行和維護應用系統(tǒng)。 在云計算模式下,用戶無須自行采購維護計算機,而是從云服務商那里租賃所需的計算資源,在云中安裝特定的應用軟件,存放應用的數據,完成應用系統(tǒng)的部署,應用系統(tǒng)就能夠運行在云端。 應用部門本身不需要采購和維護私有的計算機,當應用需求變化時,可以根據需要增加或減少租賃的云計算資源。 服務和按用付費是云計算的商業(yè)模式,是計算向基礎設施形態(tài)邁出的一大步。 根據所提供的服務內容,云計算可分為IaaS(提供基礎資源)、PaaS(提供平臺服務)和SaaS(提供應用軟件)[17]。 根據服務的范圍和應用的性質,云計算又可分為公有云、私有云和混合云[18]。 按照服務封裝部署方式又可分為虛擬機、容器、裸金屬服務器等[19]。 今天,幾乎所有大數據中心都在某種程度上使用云計算技術,提供云服務。 云計算技術也被引入傳統(tǒng)的高性能計算領域,出現(xiàn)了以云方式運行超級計算中心的“云超算”和提供高性能計算能力的“超算云”[20]。
中國的云計算和國際同步發(fā)展。 國家863 計劃在2010 年就啟動了“中國云”重大項目,支持阿里、百度等互聯(lián)網公司研發(fā)云計算系統(tǒng)。 “十三五”期間實施了“云計算與大數據”重點專項,更加系統(tǒng)全面地推進云計算關鍵技術和系統(tǒng)的研發(fā)與應用。 今天,阿里云、華為云、百度云、浪潮云等已經在國內市場舉足輕重。
物聯(lián)網(IoT)、基于移動互聯(lián)網應用的蓬勃發(fā)展催生了邊緣計算[21]。 邊緣計算的目的是使應用程序、數據和計算能力(服務)更加靠近端用戶,而不是更靠近集中的云,這樣就能減少數據的移動,降低數據傳輸的延遲,降低端系統(tǒng)和數據中心之間的傳輸帶寬需求,達到更低的成本和更好的用戶體驗的效果。 隨著邊緣計算技術的進步,云-邊-端融合的IT 應用模式也日趨流行,成為滲透更寬廣應用領域的網絡計算的新形態(tài)。
建設國家級高性能計算基礎設施是創(chuàng)新型國家建設的戰(zhàn)略需求。 基于網絡計算的計算基礎設施具有如下特征:①動態(tài)性。 系統(tǒng)的狀態(tài)和行為動態(tài)變化,資源動態(tài)接入和退出、設備隨時會出故障、網絡可能擁塞甚至斷開、用戶的數量會不斷變化等。 ②自治性。 地理分散的資源在支持廣泛共享的同時,仍能保持原有的隸屬和管理屬性。 ③開放性。 硬件、軟件和服務來自不同的廠商,由不同的團隊開發(fā),遵循不同的技術規(guī)范,兼容并蓄,形成自然生長演化的計算生態(tài)環(huán)境。 這種動態(tài)、自治、開放的基礎設施不同于資源集中擁有和控制的云計算環(huán)境。
在開放、動態(tài)的互聯(lián)網環(huán)境下,聚合網上異構、自治的分散資源,構建在全國范圍共享使用的國家高性能計算基礎設施,面臨重大技術挑戰(zhàn):①在動態(tài)環(huán)境下如何應對系統(tǒng)資源的不確定性,對用戶提供穩(wěn)定的高質量服務;②在不改變原有資源隸屬關系和管理模式的條件下,如何實現(xiàn)受控共享;③在開放異構的環(huán)境下,如何高效開發(fā)和運行大規(guī)模分布并行應用,建立高性能計算應用的生態(tài)環(huán)境。 國家高性能計算基礎設施CNGrid 通過體系結構、系統(tǒng)軟件、應用模式、應用開發(fā)與優(yōu)化技術等創(chuàng)新應對上述挑戰(zhàn),為在中國形成高性能計算資源提供、應用開發(fā)和運行服務的完整產業(yè)鏈奠定了技術基礎。
針對開放動態(tài)環(huán)境下分布異構資源的統(tǒng)一管理與受控共享、系統(tǒng)安全及服務質量保障等重大技術難題,設計并實現(xiàn)了國家高性能計算基礎設施“三橫兩縱”的非集中層次虛擬化體系結構,如圖1所示。 “三橫”是指自底向上的內核系統(tǒng)層、系統(tǒng)服務層和應用層。 內核系統(tǒng)層通過資源實體和虛擬組織等抽象,將地理分布、自治的高性能計算物理資源抽象和聚合為可動態(tài)劃分、申請和調度的虛擬資源,通過運行時虛擬地址空間和自治安全策略,解決資源視圖、資源發(fā)現(xiàn)及定位、異構資源統(tǒng)一訪問等基礎性問題。 系統(tǒng)服務層通過訪問虛擬資源,以服務化形式向上層應用提供作業(yè)管理、數據訪問與傳輸、應用編程、用戶映射等功能。 應用層使用系統(tǒng)服務層提供的功能,實現(xiàn)應用的業(yè)務邏輯,服務最終用戶。 “兩縱”是貫穿內核系統(tǒng)層、系統(tǒng)服務層、應用層3 個層次的環(huán)境監(jiān)控管理和安全機制,保障環(huán)境的可管理性和安全性。
圖1 國家高性能計算基礎設施的非集中層次虛擬化體系結構Fig.1 Decentralized hierarchical virtualization architecture for national high performance computing infrastructure
體系結構的非集中是指CNGrid 的管控采用地理分布模式,即在每個CNGrid 結點部署一臺運行系統(tǒng)軟件的服務器,通過覆蓋網絡將各個CNGrid結點動態(tài)組織成星型、網狀或混合結構,以適應國家高性能計算基礎設施對資源的分層分域管理的需求。
基于非集中層次虛擬化體系結構,研發(fā)了基礎設施系統(tǒng)軟件CNGrid Suite,其系統(tǒng)架構如圖2 所示。 CNGrid Suite 提出并實現(xiàn)了“資源實體”、“虛擬組織”和“運行時虛擬地址空間”等3個系統(tǒng)核心抽象,來表達系統(tǒng)中的各種資源要素、要素間的靜態(tài)關系和運行時的動態(tài)關系,通過這些抽象,將分散、異構、無序的計算機硬件資源、軟件資源和用戶組織成邏輯有序、可受控共享的虛擬資源,支持資源的動態(tài)聚合、調度和安全訪問。
圖2 CNGrid Suite 系統(tǒng)架構Fig.2 CNGrid suite system architecture
針對國家高性能計算基礎設施特點和應用需求,提出了“資源實體”、“虛擬組織”和“運行時虛擬地址空間”等系統(tǒng)軟件創(chuàng)新概念,應對資源描述、組織和訪問的挑戰(zhàn)。
在CNGrid 中,用戶、資源和社區(qū)都被統(tǒng)一抽象為資源實體。 每個資源實體由一個全局id 來標識,代表一個可以訪問其他實體,也可被其他實體所訪問的全局資源要素。 系統(tǒng)軟件的全局命名管理模塊對資源實體實施統(tǒng)一管控,完成資源實體創(chuàng)立與消除、資源定位、資源解耦等功能。
多個相關資源實體可構成一個虛擬組織。 虛擬組織描述資源實體之間的靜態(tài)關系,實現(xiàn)資源實體注冊、資源實體接入與剔除、資源實體元信息管理、資源實體權限管理、資源實體訪問控制等功能。 通過虛擬組織把資源實體組織成可有效管控、相互協(xié)同的資源集合。
運行時虛擬地址空間描述了資源實體間的動態(tài)訪問和調用關系,結合動態(tài)綁定的安全策略,解決了資源命名、資源視圖、資源發(fā)現(xiàn)及定位、資源統(tǒng)一安全訪問等基礎性問題。 與傳統(tǒng)操作系統(tǒng)的進程概念相對應,CNGrid 提出了網程(Grip)概念。 網程在運行時虛擬地址空間中代表資源實體動態(tài)訪問其他資源,實施訪問控制,分配、管理和回收資源,實現(xiàn)應用的可控啟動和終止。
CNGrid 聚合了分布在不同地域、不同組織機構中的各種各樣的高性能計算資源,面向用戶提供統(tǒng)一的系統(tǒng)映像和透明的作業(yè)調度是基本需求。 CNGrid 的作業(yè)調度由服務端、驅動器和客戶端3 部分組成[22]。 面向用戶提供統(tǒng)一的訪問入口和使用方式。 系統(tǒng)軟件根據用戶作業(yè)請求性質為其自動匹配適當的高性能計算資源。 另外,也提供開放接口,為作業(yè)調度模型和調度策略的優(yōu)化提供了可能。 作業(yè)調度核心模塊由資源收集器、資源匹配器和資源調度器構成,通過引入多種優(yōu)先級作業(yè)隊列,細化作業(yè)的系統(tǒng)狀態(tài),改善了作業(yè)調度策略的可配置性[23]。
針對資源的分布性、異構性和動態(tài)性,服務和應用的多樣性及管理需求的各異性等特征,CNGrid 提出了統(tǒng)一實體監(jiān)控管理、管理功能動態(tài)構造、管理功能跨域動態(tài)部署及協(xié)同工作等創(chuàng)新概念與機制,設計了基于統(tǒng)一實體的監(jiān)控管理體系架構,研發(fā)了一體化的監(jiān)控管理系統(tǒng)(見圖3),實現(xiàn)了CNGrid 的資源監(jiān)控和運行管理,為多層次資源的按需共享和自主協(xié)同提供了支撐。
圖3 一體化基礎設施監(jiān)控管理體系結構框架Fig.3 Architectural framework of integrated infrastructure monitoring and management
與CNGrid 系統(tǒng)軟件中的資源實體抽象相對應,設計了基于實體的資源管理信息描述方法,采用統(tǒng)一的“被管對象”抽象建立全局信息模型,對各類資源信息進行有效的建模與表示,形成對不同層次、不同類別資源精確監(jiān)控和管理的基礎。
針對資源的動態(tài)性和多樣性,提供了監(jiān)控管理功能的動態(tài)生成、部署、運行的能力,支持管理功能的動態(tài)擴展和更新,實現(xiàn)監(jiān)控管理系統(tǒng)的動態(tài)構造與演化。 針對資源的跨域特點,提出了監(jiān)控管理功能跨域動態(tài)部署的概念。 基礎設施的監(jiān)控管理按分布層次式組織,監(jiān)控管理功能分布在各個監(jiān)控管理域中,各管理域既局部自治又相互協(xié)作。 管理域設立自身的監(jiān)控管理中心,形成多級監(jiān)控管理中心的協(xié)同機制。 同時,實現(xiàn)了基于復雜事件處理的監(jiān)控信息高效獲取、傳輸和控制的機制。 這些措施有效減少了與監(jiān)控管理有關的數據流量,降低了監(jiān)控管理對基礎設施正常應用業(yè)務的影響。
針對CNGrid 環(huán)境下資源種類繁多、數目巨大的現(xiàn)狀,設計實現(xiàn)了單維度、多維度及基于日志等多種故障掃描、識別和應對方法,能夠準確定位故障,分析故障根因,及時通告故障事件并推薦應對的策略,為提高CNGrid 的可用性、可靠性和可管理性提供了保障。
CNGrid 的安全機制采用基于證書的身份認證和訪問權限控制,系統(tǒng)軟件基于代理證書實現(xiàn)用戶認證和權限代理。 首先定義訪問控制的策略構建資源共享操作上下文,操作上下文包含用戶在CNGrid 中的身份信息(用戶的代理證書)、用戶所屬虛擬組織及其所在組別,以及虛擬組織簽發(fā)的資源訪問令牌。 資源提供者能夠在虛擬組織中注冊資源并對其進行持續(xù)的管理,通過向用戶分配相應的權限,控制應用占用的資源并有效支持多個應用間的協(xié)同。 在運行時,由網程維護用戶身份并實施訪問控制。 當用戶需要訪問資源時,把自己的操作上下文從用戶端傳送到資源端,基于證書權限驗證的結果控制資源的訪問[24]。CNGrid 中部署了證書的認證中心(CA),用戶可通過CA 的Web 界面申請用戶證書。 CNGrid 安全機制基于公鑰基礎設施(PKI),使用標準的X.509證書,提供用戶和資源的雙向認證。
CNGrid 的安全機制在權限控制的前提下,盡可能地支持基礎設施資源的共享。 受控共享是CNGrid 提出的一個重要概念。 在受控共享機制下,只要訪問控制權限允許,非屬主用戶和屬主用戶均可完成對資源的操作,此過程稱為屬主用戶和非屬主用戶對資源的受控共享。
高效存儲和訪問分布、異構、自治的數據資源是CNGrid 要解決的另一個關鍵問題。 針對科學研究和行業(yè)應用的實際需求,設計并實現(xiàn)了基于虛擬數據空間的數據管理體系,有效集成了環(huán)境中的數據資源,構建了統(tǒng)一的數據管理空間,為用戶提供了透明統(tǒng)一的數據存儲、訪問和管理能力。CNGrid 的數據資源主要包括文件系統(tǒng)和數據庫系統(tǒng)。 虛擬數據空間為文件系統(tǒng)的集成共享提供虛擬文件系統(tǒng),為數據庫系統(tǒng)的集成共享提供虛擬數據庫系統(tǒng)。 在這兩者之上,虛擬數據空間提供數據基礎服務,簡化了存儲和數據的使用邏輯,為用戶或應用提供便利。
針對CNGrid 中數據分布存儲和自治管理等特點,虛擬數據空間采用面向服務的分布式層次結構進行構建。 設計了基于分布域的聯(lián)邦數據存儲管理機制,在各數據域的自治管理基礎上實現(xiàn)全局統(tǒng)一管理,保障數據管理的可擴展性。 通過數據域之間的協(xié)作來滿足應用的分布式存儲需求,系統(tǒng)根據用戶的訪問位置等信息實現(xiàn)數據資源的就近存儲和管理,以便提高用戶對數據的訪問效率。 設計實現(xiàn)了異構數據庫的整合機制,以統(tǒng)一的接口實現(xiàn)對不同數據庫管理系統(tǒng)的數據訪問,并且通過并行機制保障在大規(guī)模分布式環(huán)境下的訪問效率。
影響CNGrid 中數據傳輸效率的主要因素包括單次傳輸的數據量、網絡帶寬的利用率和傳輸引入的額外開銷。 因此,提高效率的關鍵在于減小單次傳輸的數據量,充分利用網絡帶寬,降低傳輸額外開銷。 數據傳輸不可靠的主要原因是網絡鏈路及主機的不穩(wěn)定,增強可靠性的關鍵在于克服不穩(wěn)定因素,減少數據傳輸錯誤造成的損失。CNGrid 通過多個副本并行傳輸來提高帶寬利用率,通過文件的分塊傳輸來減少每次傳輸的數據量,通過就近傳輸來提高傳輸速度和可靠性,提供斷點續(xù)傳和三方傳輸來提高數據傳輸效率,減少額外開銷。
CNGrid 環(huán)境的動態(tài)變化特性使數據存儲資源難以保證持續(xù)的服務。 CNGrid 引入數據副本管理機制來保證數據服務的可靠性。 數據副本的引入帶來數據一致性維護問題。 為此設計實現(xiàn)了并行化的一致性有限狀態(tài)機,有效降低了數據一致性維護的代價。 數據按照其使用頻度被定義為冷熱數據,系統(tǒng)根據數據溫度動態(tài)調整其副本數量,在提高訪問效率的同時減少了不必要的開銷。此外,還設計實現(xiàn)了位置及網絡實時狀態(tài)感知的數據副本放置策略,在保證一致性的同時提高了數據訪問的效率。
CNGrid 的數據管理服務通過靈活和自適應的數據訪問授權控制,解決了數據安全性與環(huán)境復雜動態(tài)性之間的矛盾。 其采用細粒度的訪問控制策略,為不同的資源擁有者和使用者對不同粒度的數據資源的訪問,提供個性化的訪問控制策略,滿足了自治性和個性化的要求。
針對以公共計算平臺支撐個性化領域應用的需求,CNGrid 提出了體現(xiàn)領域應用特點的個性化領域應用社區(qū)概念。 應用社區(qū)具有“批零”結合的資源管控與按需服務機制,既有網格聚合分散資源的能力,又有云計算集中管控、按用付費的特點,成為國家高性能計算基礎設施的應用新模式。為了支撐應用社區(qū)的構建和運行,發(fā)展了領域應用中間件Xfinity,實現(xiàn)了多層次的用戶管理機制、按域劃分的資源管理模式、基于模板的應用零開發(fā)熱部署技術及資源動態(tài)綁定的工作流技術等體系架構和關鍵技術創(chuàng)新。
按需定制的服務模式體現(xiàn)在服務方式和內容的定制,可為不同用戶定制滿足其特定需求的專用社區(qū)。 通過社區(qū)動態(tài)配置、資源動態(tài)綁定與復用、應用按需集成與動態(tài)部署等技術,實現(xiàn)了服務的按需定制。 按需付費的交易模式貫穿服務交易全過程。 資源擁有者在社區(qū)發(fā)布資源與價格信息,用戶通過社區(qū)選擇能滿足其需求且價格合適的服務。 社區(qū)監(jiān)督服務交易過程和服務完成情況,保證交易各方的利益。
為實現(xiàn)按需調配的資源管理模式,提出了權屬策略靈活配置的社區(qū)資源管理技術,將特定資源組織成資源子域授權給不同用戶使用。不同資源子域的用戶相互隔離,互不干擾。 用戶對其資源子域擁有完全的支配權,可做更精細的分級授權管理,實現(xiàn)社區(qū)內資源的有效調配和充分共享。
社區(qū)通過基于角色的權限訪問控制、組管理和雙層映射等技術實現(xiàn)了多層次、分角色的用戶與資源的精細管理。 實現(xiàn)了與企業(yè)業(yè)務系統(tǒng)相容的低開銷安全機制,允許獨立制定和修改國家高性能計算基礎設施、社區(qū)、企業(yè)這3 個管理域的安全機制,在管理域之間建立信任關系和映射機制,消解各管理域不同安全策略間的矛盾。
工業(yè)創(chuàng)新設計社區(qū)是該新型應用模式的一個實例,其系統(tǒng)框架如圖4 所示。 工業(yè)社區(qū)將國家高性能計算基礎設施的計算服務推送到汽車制造、核電、飛機制造等行業(yè)的企業(yè)內部,加快了產品設計,降低了研發(fā)成本,提高了企業(yè)競爭力,取得很好的經濟效益。
圖4 工業(yè)社區(qū)系統(tǒng)框架Fig.4 Industrial community system framework
CNGrid 的地理分布、資源異構的特征給大型應用的開發(fā)帶來新的挑戰(zhàn)。 針對大規(guī)模應用的流程化與跨結點分布特征,CNGrid 突破了構件與流程相結合的工作流編排、部署和運行技術,實現(xiàn)了流程在線組裝、即時協(xié)作、即插即用的服務適配機制,支持分布資源的動態(tài)綁定、應用的快速開發(fā)和靈活部署執(zhí)行,允許領域專業(yè)人員以低代碼方式開發(fā)應用。
針對國產超級計算機多級并行和多種異構的特點,提出并實現(xiàn)了一系列并行程序優(yōu)化方法和技術。 例如,提出了節(jié)點間MPI、節(jié)點內OpenMP、處理器內多核并行的多級混合并行模式。 提出了適用于不同異構平臺的區(qū)域分解和動態(tài)負載平衡方法,通過動態(tài)可調的區(qū)域劃分,實現(xiàn)加速器和通用處理器之間的負載均衡,隱藏加速器和通用處理器間的通信開銷。 提出了定制緩存及計算/訪存重疊技術,充分發(fā)揮數據在片內核間的最佳重用。 提出以定制DMA 傳輸等方式實現(xiàn)計算和訪存的最優(yōu)化重疊,緩解內存帶寬對應用整體性能的限制,大幅提升系統(tǒng)效率。 研發(fā)了應用級斷點保護技術,保證了大規(guī)模長時間作業(yè)的正確執(zhí)行。發(fā)展了屏蔽硬件細節(jié)的并行算法庫和編程接口,使不熟悉并行計算的應用領域專家能編寫高效的并行應用軟件。
在上述關鍵技術突破的基礎上,研發(fā)了面向國家高性能計算基礎設施的應用集成開發(fā)環(huán)境。集成開發(fā)環(huán)境包含基礎算法庫、應用模塊庫、程序模板庫、優(yōu)化工具庫、拖拽式的工作流編排器、適配多種國產處理器的跨異構結點編譯環(huán)境等,其系統(tǒng)架構如圖5 所示。 開發(fā)人員可以使用集成開發(fā)環(huán)境中基于模板庫的開發(fā)向導,自動生成程序代碼框架,重用基本算法和模塊庫中的代碼,快速構建應用程序,并在國家高性能計算基礎設施中交互式地部署、優(yōu)化和運行。
圖5 高性能計算應用集成開發(fā)環(huán)境系統(tǒng)架構Fig.5 System architecture of integrated development environment for high performance computing applications
3.1.1 新興應用及算力需求
近年來,一系列新興技術與應用的快速發(fā)展對算力基礎設施提出了更高的要求。 其中,最具代表性的有人工智能、大數據和云計算等。
新一代人工智能的核心驅動力來自深度學習技術。 通過對多層大規(guī)模人工神經網絡進行訓練并用于推理,促進了計算機視覺、自然語言處理等領域的突破性進展。 雖然人工神經網絡概念的出現(xiàn)和應用已有數十年,但之所以近年來才取得快速發(fā)展,離不開算力的支持。 深度學習是一種計算和數據驅動的技術,由于深度神經網絡規(guī)模龐大,且通常需要使用大量的數據進行訓練,這帶來了巨大的計算量。 表3[25]給出了幾種典型神經網絡模型的訓練計算量。 龐大的計算量使得神經網絡訓練通常需要借助加速部件進行,即使這樣,一次模型訓練也需要花費數小時到數天時間。
表3 典型深度神經網絡模型的訓練計算量[25]Table 3 Training computations of typical deep neural networks[25]
大數據和云計算是另一種推動算力設施發(fā)展的新興技術。 在虛擬機和容器技術的支持下,人們可以在硬件平臺上實現(xiàn)計算資源的靈活劃分和隔離,以及軟件環(huán)境的快速部署,這使得用戶可以從云平臺獲得按需分配、可動態(tài)伸縮、易于部署且穩(wěn)定可靠的硬軟件平臺和算力服務,這一特性吸引越來越多的用戶將網站、業(yè)務平臺和信息系統(tǒng)等遷移托管到云數據中心。 由于企事業(yè)單位數量眾多,此類應用的需求聚合到一起形成了對算力資源的龐大需求。
3.1.2 體系結構及算力設施的發(fā)展趨勢
隨著集成電路延續(xù)數十年的“摩爾定律”減緩并走向停滯,計算機體系結構進入了變革期,多樣化的體系結構不斷涌現(xiàn)。 為了在集成電路規(guī)模和性能增長減緩的背景下持續(xù)提升應用性能,定制化(customization)成為近年來體系結構發(fā)展的一大特點,即通過設計面向不同應用的加速部件/處理器,持續(xù)提升應用性能,典型代表有GPU 和深度學習處理器/加速器。 在GPU 方面,除了Nvidia GPU 外,傳統(tǒng)處理器廠商AMD 和Intel 也陸續(xù)推出自己的GPU,國內也已研發(fā)出多款自主GPU 芯片,為人工智能、科學計算、圖形/圖像處理等應用提供了高性能計算平臺;在深度學習處理器/加速器方面,比較有代表性的有寒武紀、Google TPU、華為昇騰等,這些處理器/加速器專為神經網絡計算而設計,其性價比和能效均優(yōu)于通用CPU 和GPU。
在多種新興應用的推動下,各種處理器/加速器被應用于算力設施中,這帶來了以下2 方面的變化:
1) 算力中心內的異構化。 在算力中心內部,異構已成為主流架構。 表4[26]給出了TOP500 超級計算機排行榜中前十位高性能計算機的體系結構。 可以看出,10 臺機器中僅有1 臺(富岳)采用同構架構,其他9 臺均為異構架構,除CPU +GPU結構外,中國的神威·太湖之光采用片內異構眾核處理器,天河2A 采用CPU + 加速器結構。 算力中心異構化的另一個體現(xiàn)是面向人工智能應用的異構體系結構,除了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) 算力中心的多樣化(算力中心間的異構化)。 傳統(tǒng)的超算中心主要面向科學/工程計算,應用類型以并行數值模擬為主,主要特征是以雙精度浮點運算為核心的計算密集型應用。 與之相比,人工智能應用的計算類型主要是單精度/半精度浮點和定點運算,而大數據和云計算則以數據密集型應用為主。 為了適應這些新興應用的需求,算力中心的硬件配置也開始出現(xiàn)變化,出現(xiàn)了配置深度學習處理器/加速器、主要面向人工智能應用的智算中心,以及配置大容量內存和網絡虛擬化設備、主要面向大數據和云計算應用的云算中心,同時,超算中心也開始支持人工智能和大數據應用。
隨著“東數西算”國家戰(zhàn)略的實施,西部多個算力樞紐將建設算力中心,并面向東部經濟發(fā)達地區(qū)提供算力服務。 在這一背景下,如果由各個算力中心單打獨斗,分散運營,則算力中心需投入人力物力自行發(fā)展用戶,容易出現(xiàn)算力中心間的負載不均衡,導致算力碎片化和算力資源浪費;而在用戶側,由于各算力平臺的硬件配置、軟件資源、服務接口存在差異,也將給用戶的軟件開發(fā)和資源使用帶來諸多不便。 因此,通過將多個算力中心互聯(lián),向用戶提供一站式、集成化的算力服務,形成覆蓋全國的算力基礎設施,對于提升算力資源利用效率和服務水平,促進國產軟件和應用生態(tài)發(fā)展,支撐“東數西算”國家戰(zhàn)略具有重要意義。
為了構建算力基礎設施,需要解決算力中心異構化和多樣化帶來的諸多技術挑戰(zhàn),主要體現(xiàn)在以下幾方面:
1) 計算任務在異構算力中心間的透明調度。算力基礎設施必須具備的一項功能是:用戶通過算力基礎設施的服務平臺提交一個計算任務后,可以直接得到計算結果,無需關心該計算任務在哪個算力中心上運行。 這需要按照計算任務的類型和需求確定其所需資源,并根據各個算力中心的硬軟件配置及可用資源數量進行任務分配和調度。 例如,如果用戶提交的是一個使用CUDA 編寫的可執(zhí)行程序,就要在各算力中心尋找配置Nvidia GPU 的節(jié)點并獲取其當前使用狀態(tài),在此基礎上進行調度;而如果用戶只是希望在指定的數據集上完成深度神經網絡模型訓練,或者只是希望對所設計零件進行結構強度分析,那么計算任務的分派調度就不但要考慮硬件資源,還要考慮是否具備所需的軟件資源。 在以上基本調度功能的基礎上,如果進一步考慮用戶的服務質量和計費需求,如限定任務完成時間、限定資費水平等,任務調度要考慮的因素就更多。
2) 如何提供多層次、多樣化的算力服務。 算力服務的層次與云計算服務相似,也可分為基礎設施(IaaS)、平臺(PaaS)、應用軟件(SaaS)3 個層次。 在基礎設施層,算力服務以處理器/加速器/計算節(jié)點的形式提供;在平臺層,算力服務在基礎設施之上還提供系統(tǒng)軟件和支撐軟件,如高性能計算用戶需要的MPI 環(huán)境和基礎算法庫,人工智能用戶需要的深度學習框架,大數據用戶需要的分布式處理框架等;在應用軟件層次,用戶則可以直接使用不同種類的應用軟件和服務。 在算力基礎設施中,算力中心的異構化和多樣化使得算力服務變得更加復雜。 以平臺層為例,即使是高性能計算所需的MPI 環(huán)境和基礎算法庫,在不同的算力中心中也會有不小的差異,用戶在不同算力中心中使用這些服務時往往需要進行適配和修改(如修改作業(yè)腳本等)。 由于算力基礎設施需要向用戶提供透明、一致的算力服務,如何屏蔽這些差異,就是需要著力研究和解決的問題。
3) 多算力中心分布式協(xié)同計算與虛擬超級計算機。 在過去,由于算力中心間的網絡帶寬有限,計算任務通常分配在單個算力中心上完成,即使進行跨中心計算,一般也僅限于工作流中的不同計算階段。 近年來,隨著網絡基礎設施和算網融合技術的發(fā)展,算力中心間的網絡互聯(lián)帶寬不斷提升,傳輸延遲顯著下降。 國內已有超算中心間網絡互聯(lián)達到傳輸帶寬10 Gbps、延遲接近1 ms的水平,這給多個算力中心進行分布式協(xié)同計算提供了可能性。 這一方面需要算力中心基礎支撐軟件互聯(lián)互通構成分布式計算環(huán)境,另一方面,還需要研究在這種環(huán)境中的任務劃分、調度和遷移等技術。 更進一步,在互聯(lián)帶寬和延遲滿足要求的情況下,是否可能將多個超算中心互聯(lián)成為統(tǒng)一管理、統(tǒng)一調度的單一計算系統(tǒng),形成可完成數倍于原有規(guī)模并行計算的“虛擬超級計算機”,也是值得研究和探討的問題。
4) 多樣化算力中心和異構化體系結構的編程問題。 異構體系結構顯著增加了并行編程的復雜性,該問題在多樣化算力中心場景下更加突出。為了支持異構處理器/加速器編程,廠商推出了相應的 編 程 語 言/接 口, 如 用 于 Nvidia GPU 的CUDA、用于申威眾核處理器的Athread、用于AMD GPU 的ROCm/HIP 等,并基于這些編程接口開發(fā)/移植了各種基礎算法庫、求解器、深度學習框架等,但異構平臺編程的復雜度仍然遠高于傳統(tǒng)的CPU 平臺。 在多樣化算力中心中,異構硬件平臺的種類更多,為使程序具有更好的平臺適應性,在軟件編程模型和語言方面還需要進行更多的工作。 雖然近年來已經出現(xiàn)了一些獨立于廠商的加速器編程接口,如OpenCL、OpenAcc、SYCL等,但這些編程接口在不同硬件平臺上的實現(xiàn)仍然有差異,為一種平臺編寫的程序通常難以不加修改地在另一種平臺上編譯和運行。 有鑒于此,仍然有必要提出獨立于硬件平臺且可屏蔽硬件細節(jié)的編程模型/語言,與此同時,研究開發(fā)異構程序轉換工具,實現(xiàn)并行程序在不同硬件平臺間的透明轉換和自動編譯,進而支持并行程序在多樣化算力中心的透明調度和運行,也將是一項很有價值的工作。
5) 數據在分布式算力中心間的放置問題。無論是科學工程計算,還是人工智能或大數據應用,其數據規(guī)模都較為龐大。 由于算力中心間的數據傳輸和訪問開銷較大,在算力中心間進行計算任務調度和遷移時,數據放置就成為必須考慮的一個重要因素。
6) 公共算力中心的數據安全和隱私問題。在人工智能領域,為了滿足數據隱私和安全需求,提出了聯(lián)邦學習技術(federated learning)[27],通過多個數據擁有者協(xié)同完成訓練,避免了數據向其他實體公開。 這種數據隱私和安全性需求同樣存在于大數據分析、科學與工程計算等領域。 為了使用公共算力中心的計算服務,用戶往往需要將數據上傳至算力中心,雖然通過VPN 等技術可以保證數據在網絡中傳輸時的安全性,但在多用戶共享的算力中心中,數據在外存中的存放,以及計算過程中數據在內存的存放,仍然存在數據外泄的可能性。 為滿足對數據安全性要求較高用戶的需求,如何在大數據分析和科學工程計算領域提供類似于聯(lián)邦學習的機制,或實現(xiàn)“可計算但不可讀寫”,是值得深入研究的問題。
3.3.1 中國超算應用生態(tài)存在的問題
近年來,中國高性能計算技術水平取得了長足進步,超級計算機研制水平已處于國際前列,擁有性能排名前列的超級計算機,生產和部署的高性能計算系統(tǒng)數量也世界領先。 在高性能計算應用軟件方面,面向國產超算系統(tǒng)研發(fā)了一批重點行業(yè)/領域應用軟件,取得了眾多的應用成果,大規(guī)模并行算法及應用也2 次獲得代表國際超算應用最高水平的Gordon Bell 獎,但總體上,高性能計算軟件與應用的發(fā)展相對不足,應用生態(tài)也不夠豐富。 產生這種現(xiàn)象的原因有多個方面:
1) 軟件和應用研發(fā)投入不足。 中國科研領域和產業(yè)界長期存在著“重硬輕軟”的現(xiàn)象,在高性能計算領域,國家投入經費的大部分都用于高性能計算機系統(tǒng)研制,軟件和應用處于配合和支撐地位,與發(fā)達國家超算研究計劃中硬軟件投入接近1:1 相比,中國的軟件和應用研發(fā)投入明顯不足。
2) 軟件和應用種類多、研發(fā)持續(xù)時間長。 軟件和應用種類繁多,應用生態(tài)的建立需要長期持續(xù)的努力。 一種新型處理器/加速器推出后,初期往往只具備操作系統(tǒng)和編譯等核心軟件,而單靠硬件研發(fā)單位完成多種編程語言編譯器、調試及性能分析工具、基礎算法庫、求解器、各種領域應用軟件的研發(fā)非常困難,需要多方參與,經過若干年的持續(xù)努力,逐步研發(fā)和完善。
3) 用戶使用習慣不利于國產軟件的推廣。中國超算應用軟件研發(fā)起步相對較晚,西方國家在很多行業(yè)和領域已推出了商業(yè)化軟件,用戶已形成了商業(yè)軟件使用習慣和對商業(yè)軟件的認知度,某些行業(yè)甚至只認可某種軟件的仿真結果,這給國內應用軟件的自主研發(fā)和推廣應用帶來了很大困難。 一種軟件研發(fā)完成后,需要通過推廣應用來支撐驅動軟件維護和持續(xù)升級,通過軟件持續(xù)升級,不斷增強功能并改善用戶體驗,進而吸引更多用戶使用,然而,目前國產超算軟件研發(fā)還未能形成這種良性循環(huán)。
軟件和應用生態(tài)存在的不足使得中國高性能計算領域存在著“大而不強”的現(xiàn)象,與此同時,高性能基礎和應用軟件大量依賴國外軟件,也存在“卡脖子”的風險。
3.3.2 中國算力基礎設施的發(fā)展展望
“東數西算”戰(zhàn)略的實施將形成算力中心建設的新高潮,為了構建國家算力基礎設施,需要在研發(fā)突破關鍵技術的基礎上,補足中國超算軟件與應用的短板,并通過運營模式和機制創(chuàng)新,建立起豐富且自我發(fā)展的國產軟件應用生態(tài)。 為此,需要在以下方面開展重點工作:
1) 研究突破關鍵技術,支撐算力基礎設施發(fā)展。 圍繞算力中心異構化和多樣化帶來的技術挑戰(zhàn),解決算力基礎設施面臨的技術難題,研發(fā)核心軟件和服務平臺,實現(xiàn)多樣化算力中心的互聯(lián)互通、資源共享和服務提供,為國家算力基礎設施的構建和發(fā)展提供技術支撐。
2) 強化計算軟件研發(fā),補足國產軟件與應用短板。 以國產處理器/加速器的興起為契機,加強基于國產硬件的工具鏈、算法庫、求解器、領域應用等基礎和應用軟件研發(fā),通過若干年的持續(xù)努力,建立較為完備的國產硬件支撐和應用軟件棧,形成可自我發(fā)展的國產軟件與應用生態(tài)。
3) 改變單一機時服務方式,推動算力中心能力建設。 國內已建成的超算中心為了彌補運行經費的不足,普遍以提供機時服務為主,即俗稱的“賣機時”。 這種低層次的算力服務消耗了較多的人力和精力,制約了算力中心向更高水平發(fā)展。通過建立國家算力基礎設施,可以推動算力中心從機時提供者向應用研發(fā)者和解決方案提供者轉變。 同時,各超算中心通過研發(fā)建立領域應用平臺,可以突出自己的技術特色,進而形成算力中心各有所長的態(tài)勢,也可以避免算力中心發(fā)展同質化。
4) 創(chuàng)新算力運營模式和機制,打造多方共贏的應用生態(tài)。 算力中心涉及地方政府、投資方、設備提供方和運營方,在構建國家算力基礎設施的過程中,需要以多方共贏為目標,通過運營模式和機制創(chuàng)新,鼓勵多方參與,通過競爭促進技術進步和服務水平提升,與此同時,以應用商店(App store)等模式打造研發(fā)、服務、運營等多方共贏的軟件和應用生態(tài),進而推動國家算力基礎設施做大做強。
CNGird 在國家科技計劃支持下歷經20 余年發(fā)展,已經成為不可或缺的國家高性能計算基礎設施,并為“東數西算”背景下國家算力基礎設施的建設積累了寶貴經驗,奠定了技術基礎。 溫故而知新。 面對“東數西算”的新任務,要認真總結CNGrid 建設的歷史經驗,分析應用和技術發(fā)展的新趨勢,定位亟待解決的瓶頸技術問題,探索新的應用模式和機制,更高效地構建新一代國家算力基礎設施,實現(xiàn)“東數西算”的國家戰(zhàn)略。 這是國家創(chuàng)新發(fā)展賦予的歷史使命。