吳虹佳,劉 芳,劉 斌,蔡志平+
1.國防科技大學(xué) 計算機(jī)學(xué)院,長沙 410073
2.中山大學(xué) 數(shù)據(jù)科學(xué)與計算機(jī)學(xué)院,廣州 510006
3.中國科學(xué)院 電子學(xué)研究所,北京 100190
云技術(shù)為人們提供了強(qiáng)大的計算服務(wù),用戶可以通過電腦或手機(jī)等方式進(jìn)入數(shù)據(jù)中心,并根據(jù)自己的需要進(jìn)行計算。然而,隨著越來越多的設(shè)備連接到互聯(lián)網(wǎng)并生成數(shù)據(jù),云計算的集中式處理和長距離傳輸會導(dǎo)致網(wǎng)絡(luò)的擁塞,數(shù)據(jù)不能及時反饋,無法滿足用戶的實時需求,尤其是在對時延敏感的使用場景中。例如,具有重要計算需求的軍事用戶依賴訪問大型共享數(shù)據(jù)中心來獲取數(shù)據(jù),他們需要將自己的圖像、視頻或網(wǎng)絡(luò)日志文件進(jìn)行回傳處理。然而,回傳的成本和時延可能在不同的戰(zhàn)斗環(huán)境中引起問題,尤其是在網(wǎng)絡(luò)吞吐量嚴(yán)重受限或用戶應(yīng)用需要接近實時響應(yīng)的情況下[1]。為了緩解這些情況,研究人員開始尋找可用的計算范式,研究如何利用網(wǎng)絡(luò)中分散的閑置/可用的計算資源減少網(wǎng)絡(luò)時延。
在這種應(yīng)用背景下,分散計算(dispersed computing,DC)應(yīng)運(yùn)而生,并受到越來越多的關(guān)注。將這種新的、以資源為中心的體系架構(gòu)描述為霧/邊緣網(wǎng)絡(luò)的演化。
如圖1 所示,它由一組網(wǎng)絡(luò)計算節(jié)點(如服務(wù)器、基站和用戶的計算機(jī)等)組成。在分散計算場景中,不同節(jié)點之間的通信帶寬非常有限且異構(gòu),不同的計算節(jié)點支持廣泛的計算能力。分散計算將具有計算能力的設(shè)備連接到網(wǎng)絡(luò)中,節(jié)點直接或間接進(jìn)行通信,大大減少了數(shù)據(jù)的遠(yuǎn)程傳輸時間[2]。在分散計算范式中,事物不僅是數(shù)據(jù)的消費(fèi)者,也是數(shù)據(jù)的生產(chǎn)者。
在一個分散的網(wǎng)絡(luò)中,數(shù)據(jù)不僅可以在本地處理,還可以在地理上分散的其他節(jié)點上處理[3]。網(wǎng)絡(luò)計算節(jié)點可以執(zhí)行計算卸載、數(shù)據(jù)緩存和處理,以及移動性管理等功能。為了更好地實現(xiàn)這些功能,計算節(jié)點本身需要仔細(xì)設(shè)計,以有效滿足節(jié)點之間的可靠性、安全性和協(xié)作性等服務(wù)需求。這是一種功能強(qiáng)大的計算范式,可以顯著提高應(yīng)用程序在延遲和可用吞吐量方面的性能,從而對其他性能(如能耗)產(chǎn)生間接影響。
Fig.1 Dispersed computing paradigm圖1 分散計算范式圖
分散計算由于其突出的優(yōu)點,廣泛用于軍事場景中。2017 年11 月9 日,美國國防部高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)啟動了分散計算項目(dispersed computing project,DCOMP)[1,4],旨在利用智能手機(jī)、平板電腦、聯(lián)網(wǎng)汽車、物聯(lián)網(wǎng)終端等隨處可見的設(shè)備的計算資源,隨時滿足用戶的需求。
本文總結(jié)了分散計算的相關(guān)概念,分析了分散計算的核心技術(shù),介紹了相關(guān)實際應(yīng)用場景,并闡述了分散計算面臨的挑戰(zhàn)。
分散計算是一種將所有具有計算能力的設(shè)備連接到一個網(wǎng)絡(luò)有機(jī)體的計算范式。當(dāng)需要大量計算時,利用網(wǎng)絡(luò)中閑置的計算資源來劃分任務(wù),以計算節(jié)點協(xié)作和共享的方式給用戶提供服務(wù),并使其中任何一個節(jié)點能夠在全球范圍內(nèi)共享、訪問和執(zhí)行信息。此外,分散計算是分布式計算的一種特定范式,給包括霧計算、邊緣計算和分布式計算在內(nèi)的一系列新興技術(shù)增加了另一個名稱[1]。同時,將這些計算范式又向前推進(jìn)了一步。
分散還意味著并行使用多個類似的資源,每個子單元至少使用其中一個資源以防止不可靠性[5]。其數(shù)據(jù)不沿邏輯單元邊界(即變量或結(jié)構(gòu))劃分,而是將單元劃分為子單元。分散計算設(shè)想這樣一種網(wǎng)絡(luò),可以從其他許多節(jié)點借用計算和通信資源,以滿足用戶的需求,并幫助完成他們可能拋出的任何任務(wù)。通過分散計算最終想要達(dá)到的目的是:
(1)利用無處不在但物理上分散的計算平臺,將應(yīng)用程序和網(wǎng)絡(luò)性能提高幾個數(shù)量級。這種計算架構(gòu)包括網(wǎng)絡(luò)元件、無線電、具有可編程執(zhí)行環(huán)境的智能電話或傳感器,以及不同形式的便攜式微云。
(2)能夠支持用戶跨眾多不同計算平臺進(jìn)行安全、集體的計算任務(wù)分配。
(3)能夠在網(wǎng)絡(luò)連接存在變數(shù)或降級的環(huán)境下運(yùn)行,使用戶能夠在代碼和數(shù)據(jù)之間切換,以更好地滿足用戶、應(yīng)用程序和任務(wù)需求。
綜上所述可知,分散計算是一種新的計算范式,用于設(shè)計能夠在高度可變和不可預(yù)測(也可能是退化的)網(wǎng)絡(luò)連接條件下運(yùn)行的系統(tǒng)。
分散計算架構(gòu)能夠根據(jù)任務(wù)需求在最合適的位置進(jìn)行計算,并利用協(xié)議棧的可編程性來緩解當(dāng)今通信網(wǎng)絡(luò)中的設(shè)計約束。分散計算利用網(wǎng)絡(luò)中計算點的多樣性,以及網(wǎng)絡(luò)鏈接和連接它們的協(xié)議棧的異構(gòu)性,應(yīng)運(yùn)而生一種新的以資源為中心的體系架構(gòu)[6]。與其他計算范式相對比,其特點是:
(1)從用戶和任務(wù)的角度出發(fā),在最方便的地方進(jìn)行計算。
(2)利用逐跳堆棧編程能力來消除當(dāng)前的端到端協(xié)議設(shè)計約束,例如TCP(transmission control protocol)。
分散計算的目標(biāo)是將計算轉(zhuǎn)移到地理上分散的、異構(gòu)的計算點,這些計算點可以位于網(wǎng)絡(luò)核心、網(wǎng)絡(luò)邊緣,或者介于兩者之間的任何位置。它是一個以跨層計算和通信資源為中心的體系架構(gòu),使異構(gòu)網(wǎng)絡(luò)資源能夠處理數(shù)據(jù)到代碼(或代碼到數(shù)據(jù))位置的戰(zhàn)略移動,以滿足應(yīng)用程序的需求。此架構(gòu)的目標(biāo)是解決當(dāng)前網(wǎng)絡(luò)架構(gòu)的缺點,進(jìn)一步提高網(wǎng)絡(luò)的穩(wěn)定性和可用性。
在分散計算中,引入了網(wǎng)絡(luò)計算節(jié)點(networked computation point,NCP)的概念(https://www.darpa.mil/program/dispersed-computing/2016.9.7)。NCP 可以執(zhí)行支持用戶應(yīng)用程序的功能。具有當(dāng)前NCP 功能的可能設(shè)備包括可編程網(wǎng)絡(luò)元素、帶有嵌入式可編程處理器的傳感器和智能手機(jī)等。
NCP 需要滿足三個屬性:(1)一個NCP 必須包含一個可編程執(zhí)行環(huán)境,該環(huán)境可以根據(jù)應(yīng)用程序的需要執(zhí)行數(shù)據(jù)計算;(2)NCP 必須支持安全的、任務(wù)響應(yīng)式的資源共享和代碼-數(shù)據(jù)移動,能夠?qū)?shù)據(jù)路由到指定的路徑和不同的協(xié)議棧;(3)用戶必須能夠通過守護(hù)進(jìn)程或類似的透明軟件在終端主機(jī)上與NCPs交互。
云計算(could computing,CC)[7]是一種服務(wù)范式,其中遠(yuǎn)程可用的計算服務(wù)允許用戶根據(jù)需要通過高度異構(gòu)的訪問設(shè)備訪問網(wǎng)絡(luò)上的應(yīng)用程序、數(shù)據(jù)和物理計算資源。正如大型硬件機(jī)器一樣,云計算數(shù)據(jù)中心將基礎(chǔ)設(shè)施、平臺和軟件應(yīng)用程序作為服務(wù)交付給消費(fèi)者。云計算基礎(chǔ)設(shè)施包括三種服務(wù)范式[8],分別是軟件即服務(wù)(software as a service,SaaS)、平臺即服務(wù)(platform as a service,PaaS)和基礎(chǔ)設(shè)施即服務(wù)(infrastructure as a service,IaaS)。但是,隨著云中數(shù)據(jù)處理和存儲的大量增加,大量數(shù)據(jù)在網(wǎng)絡(luò)上傳播,增加了它們與第三方和攻擊者的接觸,因此數(shù)據(jù)安全成為一個重要的挑戰(zhàn)[9]。除了安全性之外,在使用和實現(xiàn)云服務(wù)方面還有其他障礙,如數(shù)據(jù)延遲不可靠、不穩(wěn)定和缺乏位置意識等。另外,隨著接入設(shè)備數(shù)量的增加,在傳輸數(shù)據(jù)和獲取信息時,帶寬變得越來越不充足。這些問題給網(wǎng)格計算、霧計算和邊緣計算等新的計算范式的產(chǎn)生提供了空間。
網(wǎng)格計算(grid computing,GC)[10]是分布式計算的一種,與云不同主要側(cè)重于不同組織間計算能力的連接。它的目標(biāo)是使任何計算機(jī)都可以提供無限的計算能力和對海量信息的訪問,主要針對的是各大學(xué)和研究實驗室的高性能計算項目。這些項目需要大量的計算能力,或者訪問大量的數(shù)據(jù)。網(wǎng)格計算關(guān)注的是超強(qiáng)的數(shù)據(jù)處理能力,適用于網(wǎng)絡(luò)狀態(tài)良好條件下的計算密集型應(yīng)用。
引入霧計算(fog computing,F(xiàn)C)[11]是為了解決數(shù)十億物聯(lián)網(wǎng)設(shè)備無法通過簡單地連接到云中服務(wù)器來運(yùn)行的問題。與傳統(tǒng)的云計算范式相比,霧計算更接近終端節(jié)點和設(shè)備,并且支持用戶遷移。然而,霧并不是一個獨立的計算范式,需要與云交互才能實現(xiàn)一致的數(shù)據(jù)管理[12]。霧計算為大多數(shù)應(yīng)用提供了重要的優(yōu)勢,例如低延遲、位置感知、實時操作、異構(gòu)性和終端設(shè)備移動性。
邊緣計算(edge computing,EC)[13]是與霧計算相關(guān)的另一個概念,進(jìn)一步推進(jìn)了霧計算的理念。霧計算和邊緣計算的關(guān)鍵區(qū)別在于處理數(shù)據(jù)的位置。霧計算更加分層和平坦,多個層形成網(wǎng)絡(luò)[14],節(jié)點之間具有廣泛的對等互連功能。而邊緣計算依賴于不形成網(wǎng)絡(luò)的單個節(jié)點,在孤島中運(yùn)行其節(jié)點。邊緣計算是一個重載的概念,在不同的文獻(xiàn)中有不同的定義,其宗旨是將移動設(shè)備上的計算卸載到附近的基站中,伴隨著5G 技術(shù)的發(fā)展,把計算放到距離設(shè)備更近的骨干網(wǎng)絡(luò)邊緣上來降低延遲[15]。邊緣計算的思想很大程度上補(bǔ)充了云計算的不足,霧計算和邊緣計算都是基于邊緣的想法利用具有計算資源的終端設(shè)備來處理數(shù)據(jù)。
隨著海量數(shù)據(jù)的爆發(fā),邊緣計算將數(shù)據(jù)處理轉(zhuǎn)移到邊緣節(jié)點,試圖減少發(fā)送到云的數(shù)據(jù)量,從而降低任務(wù)響應(yīng)時間。當(dāng)邊緣節(jié)點不斷增多,霧計算在本地部署微數(shù)據(jù)中心,以便分析來自多個邊緣節(jié)點的數(shù)據(jù)。霧或邊緣計算哪個更好將取決于物聯(lián)網(wǎng)的具體應(yīng)用及其要求。
分散計算是完全分散的架構(gòu),將每個計算設(shè)備都看作一個網(wǎng)絡(luò)計算節(jié)點。這種架構(gòu)更快,更高效,更具可擴(kuò)展性。旨在提供可擴(kuò)展且強(qiáng)大的計算網(wǎng)絡(luò),將所有設(shè)備連接成一個網(wǎng)絡(luò)化的有機(jī)體,充分利用網(wǎng)絡(luò)中的閑置計算資源,使用異構(gòu)計算平臺來處理大量數(shù)據(jù)。盡管分散計算、網(wǎng)格計算、霧計算和邊緣計算不盡相同,但它們都反映了互聯(lián)網(wǎng)計算范式在萬物互聯(lián)時代的新需求。網(wǎng)格計算、霧計算和邊緣計算都是對云計算的補(bǔ)充,然而分散計算將這些計算范式又向前推進(jìn)了一步。
上述五種計算范式在計算、網(wǎng)絡(luò)、應(yīng)用場景等方面的對比如表1 所示。
與云計算、網(wǎng)格計算、邊緣計算和霧計算相比,分散計算更加適用于動態(tài)的任務(wù)處理和惡劣的網(wǎng)絡(luò),具有以下明顯的優(yōu)勢。
Table 1 Comparison and analysis of five computing paradigms表1 五種計算范式的對比與分析
(1)充分利用空閑計算資源,實現(xiàn)單一設(shè)備的性能無法實現(xiàn)的功能應(yīng)用。有效地使用網(wǎng)絡(luò)化但地理上分散的計算資源[3],這將有利于那些由于延遲而難以與遠(yuǎn)程數(shù)據(jù)中心交互的用戶,或者由于計算復(fù)雜性而不能完全依賴終端設(shè)備的用戶。
(2)利用全球已有的計算資源,重新思考互聯(lián)網(wǎng)的架構(gòu)是如何連接和計算的。通過使用新的算法和協(xié)議棧提高應(yīng)用程序和網(wǎng)絡(luò)性能,開發(fā)新的網(wǎng)絡(luò)協(xié)議,去除中心化,將云數(shù)據(jù)中心視為通用的計算節(jié)點。
(3)節(jié)點之間以合作共享的方式提供服務(wù)。計算節(jié)點間是相互連接的,因此它們中的任何一個都可以在整個網(wǎng)絡(luò)范圍內(nèi)共享、訪問和執(zhí)行信息。
本章將重點介紹分散計算中的三個核心技術(shù):分散的任務(wù)感知計算算法、可編程節(jié)點和協(xié)議棧、分散計算的跨層方法。
三種核心技術(shù)的整體架構(gòu)如圖2 所示,突出顯示了三個核心技術(shù)之間的相互關(guān)系[6]。分散的任務(wù)感知計算算法關(guān)注于如何聯(lián)合管理計算和網(wǎng)絡(luò)資源,共享任務(wù)細(xì)節(jié)、數(shù)據(jù)流細(xì)節(jié)和性能邊界等信息??删幊坦?jié)點和協(xié)議棧關(guān)注于如何實現(xiàn)應(yīng)用程序的整體資源分配,提供NCPs 列表、覆蓋網(wǎng)絡(luò)抽象、流性能細(xì)節(jié)以及具有覆蓋鏈路特征(包括延遲、可用帶寬和損耗)的網(wǎng)絡(luò)態(tài)勢感知。
Fig.2 Core technology architecture diagram圖2 核心技術(shù)架構(gòu)圖
跨層方法關(guān)注于如何增強(qiáng)核心技術(shù)的核心功能,將應(yīng)用程序流如何對可變資源做出反應(yīng)的知識與傳輸層和網(wǎng)絡(luò)層的資源分配控制機(jī)制結(jié)合起來,進(jìn)行聯(lián)合管理。這種聯(lián)合管理可以實現(xiàn)更智能、更動態(tài)的資源分配。
分散的任務(wù)感知計算旨在有效利用地理位置分散的計算資源來聯(lián)合優(yōu)化數(shù)據(jù)的移動和任務(wù)在可用的NCPs 之間的放置。嚴(yán)格限制延遲的用戶應(yīng)用程序很難與遠(yuǎn)程數(shù)據(jù)中心進(jìn)行交互。在這種情況下,NCP可以根據(jù)負(fù)載、計算能力和網(wǎng)絡(luò)路徑等特性有效地利用附近NCPs 的計算能力,從用戶的角度提供顯著的性能優(yōu)勢。任務(wù)感知計算技術(shù)的具體三大需求:
(1)實現(xiàn)跨異構(gòu)、物理上分散的平臺的計算能力的可用性以及跨平臺的計算任務(wù)的有效調(diào)度與分配。整個任務(wù)完成時間將取決于處理延遲、網(wǎng)絡(luò)延遲和網(wǎng)絡(luò)吞吐量。
(2)算法應(yīng)該包括感知和從失敗中恢復(fù)的能力,并將失敗的風(fēng)險納入關(guān)于作業(yè)(和數(shù)據(jù))放置和復(fù)制的決策中。
(3)算法必須能夠以最能滿足任務(wù)或企業(yè)總體需求的方式,在相互競爭的任務(wù)和用戶之間優(yōu)先分配資源。
在分散計算場景中,不同節(jié)點之間的通信帶寬也可能非常有限且異構(gòu)。因此,為了在這樣的網(wǎng)絡(luò)中調(diào)度計算任務(wù),設(shè)計有效的動態(tài)算法來仔細(xì)考慮計算和通信的異構(gòu)性是至關(guān)重要的。在動態(tài)調(diào)度問題上,任務(wù)以一個隨機(jī)過程到達(dá),并被動態(tài)調(diào)度。在現(xiàn)有文獻(xiàn)的工作中,各任務(wù)在專用服務(wù)器中處理,其目標(biāo)是確保網(wǎng)絡(luò)的穩(wěn)定[16]。在確保網(wǎng)絡(luò)穩(wěn)定后,下一個目標(biāo)是計算各任務(wù)的期望完成時間或者時延分布。當(dāng)任務(wù)沒有專用服務(wù)器時,需要尋找一個吞吐量最優(yōu)化的調(diào)度策略。
經(jīng)分析發(fā)現(xiàn),分散計算中任務(wù)感知的調(diào)度算法存在三個瓶頸:設(shè)備之間低帶寬鏈路;前驅(qū)任務(wù)與后繼任務(wù)大量數(shù)據(jù)的傳輸;單個任務(wù)的大量計算負(fù)載。
可編程節(jié)點和協(xié)議棧旨在根據(jù)應(yīng)用程序和動態(tài)路徑特性開發(fā)終端-主機(jī)和路徑內(nèi)棧。它們提供了NCP 列表、覆蓋網(wǎng)絡(luò)抽象和數(shù)據(jù)流性能的詳細(xì)信息,具體包含延遲、可用帶寬和覆蓋鏈路特征等。其技術(shù)核心包含但不限于以下幾點:
(1)本地化NCP 啟動探測,測量和分析,以通知路徑內(nèi)或端點協(xié)議修改,或促進(jìn)有效的網(wǎng)絡(luò)診斷。
(2)動態(tài)修改NCP 平臺資源分配(如CPU、內(nèi)存),以確保使用給定的NCP 在多個流之間實現(xiàn)集體效用的公平或最大化。
(3)自適應(yīng)包或流操作(如復(fù)制、編碼或重定向),當(dāng)網(wǎng)絡(luò)條件發(fā)生變化時,NCPs 會覆蓋路徑的某些部分,以滿足任務(wù)和應(yīng)用程序性能需求。
NCPs 和NCP 覆蓋網(wǎng)絡(luò)提供的靈活性支持各種數(shù)據(jù)傳輸方法。為了滿足應(yīng)用程序的數(shù)據(jù)傳輸需求,可以利用可編程節(jié)點和協(xié)議棧來動態(tài)確定流的路由,以及沿路由的覆蓋鏈路上使用的協(xié)議棧。NCP 根據(jù)觀察到的鏈路狀況來顯式避免瓶頸鏈路,它可實現(xiàn)動態(tài)的每跳(重疊)傳輸協(xié)議堆棧自適應(yīng),從而減輕每跳性能的降低。
其中,流、測量和協(xié)議修改的處理不能過于耗費(fèi)資源,以致影響數(shù)據(jù)平面吞吐量或NCPs 響應(yīng)網(wǎng)絡(luò)中動態(tài)變化條件的能力。通過分布式控制和優(yōu)化技術(shù)協(xié)調(diào)NCP 操作的方法比純粹的集中方法更受歡迎,以支持可伸縮的、健壯的操作??删幊叹W(wǎng)絡(luò)節(jié)點體系結(jié)構(gòu)的主要目標(biāo)不僅包括節(jié)點的可編程性,還包括用戶的節(jié)點編程和通過封裝在包中的代碼進(jìn)行編程。相比之下,分散計算專注于可編程性對構(gòu)建未來分布式系統(tǒng)的影響,因此假定只有指定的實體(例如,管理員或自動邊界控制器)才能編寫和安裝代碼,并且代碼將通過安裝在NCP 中的專用安全通道。
跨層技術(shù)的目標(biāo)是使網(wǎng)絡(luò)流帶來的負(fù)面外部性內(nèi)部化[6],進(jìn)而減少顯式應(yīng)用需求和可變資源對性能的影響。分散計算的跨層方法主要是實現(xiàn)以下兩點:
(1)聯(lián)合管理數(shù)據(jù)的傳輸和計算。
(2)多個流程的聯(lián)合管理。
跨層管理使應(yīng)用層有關(guān)應(yīng)用程序流如何對可變資源做出反應(yīng)的信息與用于分配資源的傳輸層和網(wǎng)絡(luò)層控制機(jī)制結(jié)合起來。這種聯(lián)合管理可以實現(xiàn)更智能、更動態(tài)的資源分配。NCP 的可編程性允許分散的路徑內(nèi)路由和堆棧管理,從而可以更快地進(jìn)行診斷和修復(fù)路徑退化。
針對網(wǎng)絡(luò)通信和計算資源有限的情況下,跨層技術(shù)以分散的方式聯(lián)合優(yōu)化多個作業(yè),同時滿足應(yīng)用程序需求,進(jìn)一步支持分散計算的可伸縮性目標(biāo)。
分散計算利用網(wǎng)絡(luò)中可用的所有計算能力和資源,各節(jié)點之間相互合作提供服務(wù),使其可以在物聯(lián)網(wǎng)的應(yīng)用上發(fā)揮巨大優(yōu)勢。本章將列舉一些典型的應(yīng)用實例,結(jié)合這些實例可以幫助人們更好地了解分散計算的現(xiàn)狀和優(yōu)勢。
現(xiàn)在,軍方比以往任何時候都更依賴于對實時信息的處理。然而,由于戰(zhàn)斗信息的高度機(jī)密性,不可能利用云的強(qiáng)大計算能力。同時,高度可變的戰(zhàn)爭環(huán)境會導(dǎo)致間歇性的連接,需要良好的網(wǎng)絡(luò)魯棒性。此外,由于戰(zhàn)爭破壞造成的通信環(huán)境惡劣,必須要有強(qiáng)大的網(wǎng)絡(luò)修復(fù)能力來支持軍事信息戰(zhàn)。由此可知,這種軍事戰(zhàn)爭環(huán)境需要依靠一個能夠處理動態(tài)任務(wù)的網(wǎng)絡(luò)。而現(xiàn)有的網(wǎng)絡(luò)計算范式,包括云計算和邊緣計算,是不能滿足的。
為此,美國國防部專注于一個應(yīng)用于軍事作戰(zhàn)場景的總體大戰(zhàn)略。運(yùn)用分散計算的思想,如圖3 所示(http://cci.usc.edu/index.php/2017/06/28/turning-datainto-power/),將軍方的所有設(shè)備連接起來,涵蓋前線最基本的傳感器,戰(zhàn)場上的坦克、飛機(jī)和專用設(shè)備,以及海外指揮中心和美國本土的大型數(shù)據(jù)倉庫等,將它們連接成為一個單一的網(wǎng)絡(luò)化有機(jī)體,使得當(dāng)中的任何一個節(jié)點都能夠分享、訪問和執(zhí)行全球范圍的信息。
Fig.3 Military operations圖3 軍事作戰(zhàn)
分散計算可以很好地應(yīng)用到網(wǎng)絡(luò)環(huán)境惡劣、高度多變的場景中,具有很強(qiáng)的魯棒性。將是未來支持軍事作戰(zhàn)環(huán)境的首選計算范式。
安珀警戒(AMBER Alert)[17]是當(dāng)國內(nèi)確認(rèn)發(fā)生兒童綁架案時,透過各種媒體向社會大眾傳播的一種警戒告知。最大限度地發(fā)布警報信息,并在第一時間讓更多人知道,從而提高破案的可能性和公眾參與保護(hù)兒童的意識。安珀警報系統(tǒng)已經(jīng)在全美50個州、哥倫比亞特區(qū)、印第安人聚居區(qū)、波多黎各、美屬維爾京群島和其他30 個國家使用。截至2019 年9月,共有967 名兒童通過琥珀預(yù)警系統(tǒng)成功康復(fù)。
當(dāng)執(zhí)法機(jī)構(gòu)確定一名兒童已被綁架并面臨迫在眉睫的危險時發(fā)出緊急信息,信息將通過廣播、電視、路標(biāo)、手機(jī)和其他數(shù)據(jù)設(shè)備等進(jìn)行傳播。其中車輛作為網(wǎng)絡(luò)計算節(jié)點,借助安珀響應(yīng),安裝在儀表板上的攝像頭可以捕獲附近車輛的車牌,并將其與活動的安珀警報數(shù)據(jù)庫進(jìn)行比較。在安珀警戒的背后,需要一個十分強(qiáng)大的分散網(wǎng)絡(luò)系統(tǒng)作為支撐,通過一系列幾乎無死角的信息覆蓋,使得失蹤兒童找回的可能性大大提高。
分散計算的體系結(jié)構(gòu)能夠在高速變化、網(wǎng)絡(luò)節(jié)點地理位置分散的條件下對數(shù)據(jù)進(jìn)行時效性分析,將是未來支持公共安全的移動環(huán)境的首選計算范式。
在火災(zāi)救援中,借助分散計算的跨層技術(shù)管理,可以簡化從邊緣智能傳感器到人類第一響應(yīng)者的網(wǎng)絡(luò)實體的傳感、通信和協(xié)作[18]。
例如,當(dāng)一架無人機(jī)在自然災(zāi)害現(xiàn)場上空飛行,需要運(yùn)行圖像識別以快速識別、分類和評估潛在幸存者的安全性。但是在火災(zāi)環(huán)境中,通信資源不僅受到破壞且高度可變,無人機(jī)等終端設(shè)備無法進(jìn)行有效的數(shù)據(jù)處理和遠(yuǎn)距離的信息傳播,這大大降低了救援的效率。因此研究者們提出了云邊協(xié)作[19-20]的方法來提高網(wǎng)絡(luò)性能,但是仍然無法克服遠(yuǎn)距離的信息傳輸帶來的時延問題。而且,邊緣協(xié)同通常都是假設(shè)在良好的網(wǎng)絡(luò)環(huán)境下,無法很好地應(yīng)用于惡劣多變的災(zāi)難場景中。
此時,可以利用分散計算的思想,將所有具有計算能力的移動設(shè)備連接成一個網(wǎng)絡(luò)化的有機(jī)體,節(jié)點之間共享合作,無需依賴于云計算中心,減少了遠(yuǎn)距離通信帶來的時間延遲。更重要的是,分散計算的設(shè)計目標(biāo)是可操作性、安全性、穩(wěn)定性,它能夠根據(jù)任務(wù)需求在最合適的位置進(jìn)行計算,并利用協(xié)議棧的可編程性來緩解路徑退化。
目前,關(guān)于分散計算在學(xué)術(shù)界的研究才剛剛起步,雖然分散計算作為物聯(lián)網(wǎng)時代的一種新的計算范式,相對于傳統(tǒng)的計算范式有一定的優(yōu)勢,但仍存在很多問題需要研究。最后提出幾個未來實現(xiàn)分散計算架構(gòu)需要面臨的挑戰(zhàn)和發(fā)展方向。
(1)任務(wù)驅(qū)動的服務(wù)同步是分散計算面臨的一個挑戰(zhàn)也是未來重點的研究方向。在分散計算中,終端節(jié)點發(fā)揮作用,端節(jié)點需要與其他端節(jié)點交互以進(jìn)行快速信息交換。由于所有參與節(jié)點都由一個共享的任務(wù)驅(qū)動[21],因此它們必須以同步的方式共享部分?jǐn)?shù)據(jù)和計算,并且必須在時域內(nèi)正確標(biāo)記交換的數(shù)據(jù),以滿足全局目標(biāo)。
可能的解決方案:在不影響網(wǎng)絡(luò)上的其他遺留作業(yè)和流的情況下,對NCP 上的計算資源和網(wǎng)絡(luò)內(nèi)的網(wǎng)絡(luò)資源執(zhí)行高效、同步、聯(lián)合的控制。由于各種原因,聯(lián)合優(yōu)化[22]具有內(nèi)在的挑戰(zhàn)性。首先,不同任務(wù)的數(shù)據(jù)量和計算復(fù)雜度存在顯著差異。因此,資源分配必須適應(yīng)異構(gòu)任務(wù)[23]需求。其次,由于爭奪資源的設(shè)備通常是自治實體,因此任務(wù)的選擇應(yīng)該與設(shè)備的利益相一致。最后,必須協(xié)調(diào)各任務(wù)的卸載決策和各計算節(jié)點的資源分配,才能達(dá)到良好的整體節(jié)能效果。
(2)在優(yōu)化傳輸和計算之間找到正確的平衡。計算和網(wǎng)絡(luò)資源管理的時間尺度是不同的,發(fā)送和接收數(shù)據(jù)可能只持續(xù)幾十或幾百毫秒,但是圖像識別可能需要幾秒鐘甚至更多的時間。因此,如何在優(yōu)化傳輸和計算之間找到正確的平衡是一個具有挑戰(zhàn)性的問題。
可能的解決方案:可以利用分散在網(wǎng)絡(luò)各處的異構(gòu)資源的計算能力來處理在網(wǎng)絡(luò)邊緣收集的大量數(shù)據(jù)。重點優(yōu)化策略的延遲特性、開發(fā)不受服務(wù)速率等詳細(xì)系統(tǒng)參數(shù)影響的魯棒調(diào)度策略。在數(shù)學(xué)模型的基礎(chǔ)上,將調(diào)度問題擴(kuò)展到有向無環(huán)圖(directed acyclic graph,DAG)模型,開發(fā)低復(fù)雜度的有向無環(huán)圖調(diào)度與最優(yōu)吞吐量策略。
(3)準(zhǔn)確地識別網(wǎng)絡(luò)何時發(fā)生變化(退化和/或故障)以及相關(guān)的影響。分散計算中節(jié)點可以在任何時候從網(wǎng)絡(luò)中添加或刪除[24],可以是由控制機(jī)構(gòu)添加的,也可以是由于故障條件而無意中添加或刪除的,這種動態(tài)特性給移動性帶來了更大的挑戰(zhàn)。
可能的解決方案:建立新的機(jī)制來實現(xiàn)切換策略,以應(yīng)對移動性導(dǎo)致的網(wǎng)絡(luò)不穩(wěn)定連接。開發(fā)網(wǎng)絡(luò)性能監(jiān)控工具,實時監(jiān)測網(wǎng)絡(luò)動態(tài),在第一時間處理異常情況。
(4)在有限和可變的帶寬、高度分散的異構(gòu)計算資源下,保證服務(wù)質(zhì)量。嚴(yán)格的服務(wù)質(zhì)量要求是分散計算面對的另一個挑戰(zhàn),一些分散的應(yīng)用程序需要向用戶提供實時服務(wù),這就需要實施一些服務(wù)質(zhì)量管理策略,以確保時間限制操作。
可能的解決方案:設(shè)計一種高效的服務(wù)劃分方案,加速交互式分散計算,確保服務(wù)質(zhì)量。在提供一個服務(wù)時,必須基于每個應(yīng)用程序做出決策,明確地知道在何處進(jìn)行處理。受到文獻(xiàn)[25]的啟發(fā),在高度異構(gòu)的環(huán)境中避開低帶寬數(shù)據(jù)鏈接,可以從復(fù)制關(guān)鍵任務(wù)來重新路由通信路徑的角度出發(fā),設(shè)計復(fù)雜度更低、效率更高的管理策略。
美國國防高級研究計劃局(DARPA)希望通過分散計算項目開發(fā)一個決策系統(tǒng),可以在大量分布式、異構(gòu)平臺上集中分配計算和評估任務(wù)。此外,DARPA還尋求開發(fā)利用物理上分散計算能力的算法和協(xié)議,以將應(yīng)用程序和網(wǎng)絡(luò)傳輸性能提高幾個數(shù)量級。其目標(biāo)是使網(wǎng)絡(luò)成為云,自動化數(shù)據(jù)到代碼的戰(zhàn)略移動,最終促使人們遠(yuǎn)離當(dāng)前互聯(lián)網(wǎng)架構(gòu)的問題。
通過開源跨機(jī)構(gòu)公告,DARPA 的分散計算項目已收到42 份方案。其中,雷神BBN 公司將開發(fā)算法和控制機(jī)制,以有效利用網(wǎng)絡(luò)化但地理分散的計算能力,預(yù)計2021 年完成。同時BAE 系統(tǒng)公司、LGS創(chuàng)新公司和Vencore Labs 也作為項目的參與者,加入分散計算的研究中。截止到2019 年,分散計算已有一些代表性研究成果。
其中南加利福尼亞大學(xué)的自主網(wǎng)絡(luò)研究組(https://anrg.usc.edu/www/)的成果尤為突出,將理論的進(jìn)步與實際的系統(tǒng)實現(xiàn)相結(jié)合,提供一個全面的分散計算框架,解決了以下三個問題。
(1)開發(fā)了一個創(chuàng)新的“分散任務(wù)調(diào)度框架和基于價格的算法”,用于分散計算中的資源分配。與傳統(tǒng)的分布式計算和網(wǎng)格計算環(huán)境中的集中式調(diào)度器不同,提出的分散式任務(wù)調(diào)度框架將減少與不斷從所有NCP 中收集有關(guān)計算和通信的新狀態(tài)信息相關(guān)的協(xié)調(diào)開銷,這將使分散計算系統(tǒng)不僅具有更強(qiáng)的可伸縮性,而且在發(fā)生網(wǎng)絡(luò)故障或受到攻擊時的響應(yīng)更快。其中基于價格的資源分配方法將允許對競爭性工作的任務(wù)分配進(jìn)行動態(tài)優(yōu)化,為工作優(yōu)先級和滿足最后期限提供支持。
(2)提供了一種全新的體系結(jié)構(gòu)[26-27],利用網(wǎng)絡(luò)各個部分可用或未充分利用的計算能力。在此基礎(chǔ)上,開發(fā)了一種新的編碼類型,稱為最大魯棒性代碼,它對最大數(shù)量的失敗或掉線節(jié)點提供魯棒性。與當(dāng)今的非編碼計算系統(tǒng)相比,顯著提高了帶寬利用率和對故障和掉隊的恢復(fù)能力。
(3)設(shè)計并部署了一個異構(gòu)的分散計算實驗臺(https://anrg.usc.edu/www/research/apac/),將模擬真實世界的場景,其中視頻數(shù)據(jù)是通過分布式傳感器節(jié)點收集的。該實驗臺將是一個獨特的融合超低功率NCPs,集成了先進(jìn)的收集視頻和音頻的傳感器。在此基礎(chǔ)上,開發(fā)了一套完整的軟件功能,以統(tǒng)一的方式公開底層的異構(gòu)測試床功能,以便應(yīng)用程序能夠透明地利用測試床。內(nèi)部實驗臺將與商業(yè)分散計算實驗臺相補(bǔ)充。
此外,在系統(tǒng)架構(gòu)方面,Schurgot 等人[6]描述了聯(lián)合計算和通信資源管理的新愿景。利用網(wǎng)絡(luò)中網(wǎng)絡(luò)計算點的多樣性,以及網(wǎng)絡(luò)鏈接和連接它們的協(xié)議棧的異構(gòu)性,提出了一種新的以資源為中心的體系結(jié)構(gòu)。Ghosh 等人[28]提出了一個用于分散計算的容器編排體系結(jié)構(gòu)。該系統(tǒng)可自動在一組聯(lián)網(wǎng)的計算節(jié)點之間高效地分配任務(wù),并在此之后協(xié)調(diào)任務(wù)的執(zhí)行。Knezevic 等人[29]開發(fā)出一種用于分散計算的運(yùn)行時調(diào)度軟件工具。它可以在邊緣和云中以有向無環(huán)圖的形式在多個地理上分散的計算節(jié)點上部署流水線計算。
在任務(wù)感知算法方面,Nguyen 等人[30]開發(fā)了一個分散網(wǎng)絡(luò)性能分析器,它對分散計算集群中的通信鏈路進(jìn)行周期性分析,并對數(shù)據(jù)進(jìn)行二次擬合,然后將信息發(fā)送回調(diào)度器。實驗表明,此網(wǎng)絡(luò)分析器能在運(yùn)行的分散網(wǎng)絡(luò)中有效地測量網(wǎng)絡(luò)性能,并給出優(yōu)化的分散網(wǎng)絡(luò)調(diào)度策略。Hu 等人[25]針對計算機(jī)視覺和視頻處理的應(yīng)用程序提出了一個吞吐量優(yōu)化的任務(wù)調(diào)度器,該調(diào)度器集成了兩種創(chuàng)新技術(shù):任務(wù)復(fù)制和任務(wù)分割。為了捕獲網(wǎng)絡(luò)中計算和通信的異構(gòu)性,Yang 等人[2]提出了一種新的虛擬排隊網(wǎng)絡(luò)。將分散計算的調(diào)度問題擴(kuò)展到一個更一般的計算范式。
在國內(nèi)分散計算也受到了關(guān)注,根據(jù)美國的分散計算項目,中國航天系統(tǒng)科學(xué)與工程研究院的李臻等人[31]從分散計算的概念著手,對比DARPA 分散式計算需求,剖析了我軍網(wǎng)絡(luò)技術(shù)存在的主要問題及其對我軍網(wǎng)絡(luò)建設(shè)的啟示與借鑒,提出了我軍在分散計算研究領(lǐng)域的措施建議。
分散計算是一種很有前途的新計算范式,將邊緣和霧計算的理念更推進(jìn)了一步。它適用于目前提供的主要基礎(chǔ)設(shè)施服務(wù),包括計算、存儲和通信服務(wù)。本文首先介紹了分散計算的研究背景,其次介紹了分散計算的相關(guān)概念。為進(jìn)一步理解分散計算的思想,詳細(xì)闡述了分散計算的三個核心技術(shù),并提出了三大實際應(yīng)用。最后討論分散計算面臨的挑戰(zhàn)及研究方向。這些闡述旨在為分散計算的研究人員提供未來的研究方向。