吳虹佳,劉 芳,劉 斌,蔡志平+
1.國防科技大學 計算機學院,長沙 410073
2.中山大學 數據科學與計算機學院,廣州 510006
3.中國科學院 電子學研究所,北京 100190
云技術為人們提供了強大的計算服務,用戶可以通過電腦或手機等方式進入數據中心,并根據自己的需要進行計算。然而,隨著越來越多的設備連接到互聯網并生成數據,云計算的集中式處理和長距離傳輸會導致網絡的擁塞,數據不能及時反饋,無法滿足用戶的實時需求,尤其是在對時延敏感的使用場景中。例如,具有重要計算需求的軍事用戶依賴訪問大型共享數據中心來獲取數據,他們需要將自己的圖像、視頻或網絡日志文件進行回傳處理。然而,回傳的成本和時延可能在不同的戰斗環境中引起問題,尤其是在網絡吞吐量嚴重受限或用戶應用需要接近實時響應的情況下[1]。為了緩解這些情況,研究人員開始尋找可用的計算范式,研究如何利用網絡中分散的閑置/可用的計算資源減少網絡時延。
在這種應用背景下,分散計算(dispersed computing,DC)應運而生,并受到越來越多的關注。將這種新的、以資源為中心的體系架構描述為霧/邊緣網絡的演化。
如圖1 所示,它由一組網絡計算節點(如服務器、基站和用戶的計算機等)組成。在分散計算場景中,不同節點之間的通信帶寬非常有限且異構,不同的計算節點支持廣泛的計算能力。分散計算將具有計算能力的設備連接到網絡中,節點直接或間接進行通信,大大減少了數據的遠程傳輸時間[2]。在分散計算范式中,事物不僅是數據的消費者,也是數據的生產者。
在一個分散的網絡中,數據不僅可以在本地處理,還可以在地理上分散的其他節點上處理[3]。網絡計算節點可以執行計算卸載、數據緩存和處理,以及移動性管理等功能。為了更好地實現這些功能,計算節點本身需要仔細設計,以有效滿足節點之間的可靠性、安全性和協作性等服務需求。這是一種功能強大的計算范式,可以顯著提高應用程序在延遲和可用吞吐量方面的性能,從而對其他性能(如能耗)產生間接影響。

Fig.1 Dispersed computing paradigm圖1 分散計算范式圖
分散計算由于其突出的優點,廣泛用于軍事場景中。2017 年11 月9 日,美國國防部高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)啟動了分散計算項目(dispersed computing project,DCOMP)[1,4],旨在利用智能手機、平板電腦、聯網汽車、物聯網終端等隨處可見的設備的計算資源,隨時滿足用戶的需求。
本文總結了分散計算的相關概念,分析了分散計算的核心技術,介紹了相關實際應用場景,并闡述了分散計算面臨的挑戰。
分散計算是一種將所有具有計算能力的設備連接到一個網絡有機體的計算范式。當需要大量計算時,利用網絡中閑置的計算資源來劃分任務,以計算節點協作和共享的方式給用戶提供服務,并使其中任何一個節點能夠在全球范圍內共享、訪問和執行信息。此外,分散計算是分布式計算的一種特定范式,給包括霧計算、邊緣計算和分布式計算在內的一系列新興技術增加了另一個名稱[1]。同時,將這些計算范式又向前推進了一步。
分散還意味著并行使用多個類似的資源,每個子單元至少使用其中一個資源以防止不可靠性[5]。其數據不沿邏輯單元邊界(即變量或結構)劃分,而是將單元劃分為子單元。分散計算設想這樣一種網絡,可以從其他許多節點借用計算和通信資源,以滿足用戶的需求,并幫助完成他們可能拋出的任何任務。通過分散計算最終想要達到的目的是:
(1)利用無處不在但物理上分散的計算平臺,將應用程序和網絡性能提高幾個數量級。這種計算架構包括網絡元件、無線電、具有可編程執行環境的智能電話或傳感器,以及不同形式的便攜式微云。
(2)能夠支持用戶跨眾多不同計算平臺進行安全、集體的計算任務分配。
(3)能夠在網絡連接存在變數或降級的環境下運行,使用戶能夠在代碼和數據之間切換,以更好地滿足用戶、應用程序和任務需求。
綜上所述可知,分散計算是一種新的計算范式,用于設計能夠在高度可變和不可預測(也可能是退化的)網絡連接條件下運行的系統。
分散計算架構能夠根據任務需求在最合適的位置進行計算,并利用協議棧的可編程性來緩解當今通信網絡中的設計約束。分散計算利用網絡中計算點的多樣性,以及網絡鏈接和連接它們的協議棧的異構性,應運而生一種新的以資源為中心的體系架構[6]。與其他計算范式相對比,其特點是:
(1)從用戶和任務的角度出發,在最方便的地方進行計算。
(2)利用逐跳堆棧編程能力來消除當前的端到端協議設計約束,例如TCP(transmission control protocol)。
分散計算的目標是將計算轉移到地理上分散的、異構的計算點,這些計算點可以位于網絡核心、網絡邊緣,或者介于兩者之間的任何位置。它是一個以跨層計算和通信資源為中心的體系架構,使異構網絡資源能夠處理數據到代碼(或代碼到數據)位置的戰略移動,以滿足應用程序的需求。此架構的目標是解決當前網絡架構的缺點,進一步提高網絡的穩定性和可用性。
在分散計算中,引入了網絡計算節點(networked computation point,NCP)的概念(https://www.darpa.mil/program/dispersed-computing/2016.9.7)。NCP 可以執行支持用戶應用程序的功能。具有當前NCP 功能的可能設備包括可編程網絡元素、帶有嵌入式可編程處理器的傳感器和智能手機等。
NCP 需要滿足三個屬性:(1)一個NCP 必須包含一個可編程執行環境,該環境可以根據應用程序的需要執行數據計算;(2)NCP 必須支持安全的、任務響應式的資源共享和代碼-數據移動,能夠將數據路由到指定的路徑和不同的協議棧;(3)用戶必須能夠通過守護進程或類似的透明軟件在終端主機上與NCPs交互。
云計算(could computing,CC)[7]是一種服務范式,其中遠程可用的計算服務允許用戶根據需要通過高度異構的訪問設備訪問網絡上的應用程序、數據和物理計算資源。正如大型硬件機器一樣,云計算數據中心將基礎設施、平臺和軟件應用程序作為服務交付給消費者。云計算基礎設施包括三種服務范式[8],分別是軟件即服務(software as a service,SaaS)、平臺即服務(platform as a service,PaaS)和基礎設施即服務(infrastructure as a service,IaaS)。但是,隨著云中數據處理和存儲的大量增加,大量數據在網絡上傳播,增加了它們與第三方和攻擊者的接觸,因此數據安全成為一個重要的挑戰[9]。除了安全性之外,在使用和實現云服務方面還有其他障礙,如數據延遲不可靠、不穩定和缺乏位置意識等。另外,隨著接入設備數量的增加,在傳輸數據和獲取信息時,帶寬變得越來越不充足。這些問題給網格計算、霧計算和邊緣計算等新的計算范式的產生提供了空間。
網格計算(grid computing,GC)[10]是分布式計算的一種,與云不同主要側重于不同組織間計算能力的連接。它的目標是使任何計算機都可以提供無限的計算能力和對海量信息的訪問,主要針對的是各大學和研究實驗室的高性能計算項目。這些項目需要大量的計算能力,或者訪問大量的數據。網格計算關注的是超強的數據處理能力,適用于網絡狀態良好條件下的計算密集型應用。
引入霧計算(fog computing,FC)[11]是為了解決數十億物聯網設備無法通過簡單地連接到云中服務器來運行的問題。與傳統的云計算范式相比,霧計算更接近終端節點和設備,并且支持用戶遷移。然而,霧并不是一個獨立的計算范式,需要與云交互才能實現一致的數據管理[12]。霧計算為大多數應用提供了重要的優勢,例如低延遲、位置感知、實時操作、異構性和終端設備移動性。
邊緣計算(edge computing,EC)[13]是與霧計算相關的另一個概念,進一步推進了霧計算的理念。霧計算和邊緣計算的關鍵區別在于處理數據的位置。霧計算更加分層和平坦,多個層形成網絡[14],節點之間具有廣泛的對等互連功能。而邊緣計算依賴于不形成網絡的單個節點,在孤島中運行其節點。邊緣計算是一個重載的概念,在不同的文獻中有不同的定義,其宗旨是將移動設備上的計算卸載到附近的基站中,伴隨著5G 技術的發展,把計算放到距離設備更近的骨干網絡邊緣上來降低延遲[15]。邊緣計算的思想很大程度上補充了云計算的不足,霧計算和邊緣計算都是基于邊緣的想法利用具有計算資源的終端設備來處理數據。
隨著海量數據的爆發,邊緣計算將數據處理轉移到邊緣節點,試圖減少發送到云的數據量,從而降低任務響應時間。當邊緣節點不斷增多,霧計算在本地部署微數據中心,以便分析來自多個邊緣節點的數據。霧或邊緣計算哪個更好將取決于物聯網的具體應用及其要求。
分散計算是完全分散的架構,將每個計算設備都看作一個網絡計算節點。這種架構更快,更高效,更具可擴展性。旨在提供可擴展且強大的計算網絡,將所有設備連接成一個網絡化的有機體,充分利用網絡中的閑置計算資源,使用異構計算平臺來處理大量數據。盡管分散計算、網格計算、霧計算和邊緣計算不盡相同,但它們都反映了互聯網計算范式在萬物互聯時代的新需求。網格計算、霧計算和邊緣計算都是對云計算的補充,然而分散計算將這些計算范式又向前推進了一步。
上述五種計算范式在計算、網絡、應用場景等方面的對比如表1 所示。
與云計算、網格計算、邊緣計算和霧計算相比,分散計算更加適用于動態的任務處理和惡劣的網絡,具有以下明顯的優勢。

Table 1 Comparison and analysis of five computing paradigms表1 五種計算范式的對比與分析
(1)充分利用空閑計算資源,實現單一設備的性能無法實現的功能應用。有效地使用網絡化但地理上分散的計算資源[3],這將有利于那些由于延遲而難以與遠程數據中心交互的用戶,或者由于計算復雜性而不能完全依賴終端設備的用戶。
(2)利用全球已有的計算資源,重新思考互聯網的架構是如何連接和計算的。通過使用新的算法和協議棧提高應用程序和網絡性能,開發新的網絡協議,去除中心化,將云數據中心視為通用的計算節點。
(3)節點之間以合作共享的方式提供服務。計算節點間是相互連接的,因此它們中的任何一個都可以在整個網絡范圍內共享、訪問和執行信息。
本章將重點介紹分散計算中的三個核心技術:分散的任務感知計算算法、可編程節點和協議棧、分散計算的跨層方法。
三種核心技術的整體架構如圖2 所示,突出顯示了三個核心技術之間的相互關系[6]。分散的任務感知計算算法關注于如何聯合管理計算和網絡資源,共享任務細節、數據流細節和性能邊界等信息。可編程節點和協議棧關注于如何實現應用程序的整體資源分配,提供NCPs 列表、覆蓋網絡抽象、流性能細節以及具有覆蓋鏈路特征(包括延遲、可用帶寬和損耗)的網絡態勢感知。

Fig.2 Core technology architecture diagram圖2 核心技術架構圖
跨層方法關注于如何增強核心技術的核心功能,將應用程序流如何對可變資源做出反應的知識與傳輸層和網絡層的資源分配控制機制結合起來,進行聯合管理。這種聯合管理可以實現更智能、更動態的資源分配。
分散的任務感知計算旨在有效利用地理位置分散的計算資源來聯合優化數據的移動和任務在可用的NCPs 之間的放置。嚴格限制延遲的用戶應用程序很難與遠程數據中心進行交互。在這種情況下,NCP可以根據負載、計算能力和網絡路徑等特性有效地利用附近NCPs 的計算能力,從用戶的角度提供顯著的性能優勢。任務感知計算技術的具體三大需求:
(1)實現跨異構、物理上分散的平臺的計算能力的可用性以及跨平臺的計算任務的有效調度與分配。整個任務完成時間將取決于處理延遲、網絡延遲和網絡吞吐量。
(2)算法應該包括感知和從失敗中恢復的能力,并將失敗的風險納入關于作業(和數據)放置和復制的決策中。
(3)算法必須能夠以最能滿足任務或企業總體需求的方式,在相互競爭的任務和用戶之間優先分配資源。
在分散計算場景中,不同節點之間的通信帶寬也可能非常有限且異構。因此,為了在這樣的網絡中調度計算任務,設計有效的動態算法來仔細考慮計算和通信的異構性是至關重要的。在動態調度問題上,任務以一個隨機過程到達,并被動態調度。在現有文獻的工作中,各任務在專用服務器中處理,其目標是確保網絡的穩定[16]。在確保網絡穩定后,下一個目標是計算各任務的期望完成時間或者時延分布。當任務沒有專用服務器時,需要尋找一個吞吐量最優化的調度策略。
經分析發現,分散計算中任務感知的調度算法存在三個瓶頸:設備之間低帶寬鏈路;前驅任務與后繼任務大量數據的傳輸;單個任務的大量計算負載。
可編程節點和協議棧旨在根據應用程序和動態路徑特性開發終端-主機和路徑內棧。它們提供了NCP 列表、覆蓋網絡抽象和數據流性能的詳細信息,具體包含延遲、可用帶寬和覆蓋鏈路特征等。其技術核心包含但不限于以下幾點:
(1)本地化NCP 啟動探測,測量和分析,以通知路徑內或端點協議修改,或促進有效的網絡診斷。
(2)動態修改NCP 平臺資源分配(如CPU、內存),以確保使用給定的NCP 在多個流之間實現集體效用的公平或最大化。
(3)自適應包或流操作(如復制、編碼或重定向),當網絡條件發生變化時,NCPs 會覆蓋路徑的某些部分,以滿足任務和應用程序性能需求。
NCPs 和NCP 覆蓋網絡提供的靈活性支持各種數據傳輸方法。為了滿足應用程序的數據傳輸需求,可以利用可編程節點和協議棧來動態確定流的路由,以及沿路由的覆蓋鏈路上使用的協議棧。NCP 根據觀察到的鏈路狀況來顯式避免瓶頸鏈路,它可實現動態的每跳(重疊)傳輸協議堆棧自適應,從而減輕每跳性能的降低。
其中,流、測量和協議修改的處理不能過于耗費資源,以致影響數據平面吞吐量或NCPs 響應網絡中動態變化條件的能力。通過分布式控制和優化技術協調NCP 操作的方法比純粹的集中方法更受歡迎,以支持可伸縮的、健壯的操作。可編程網絡節點體系結構的主要目標不僅包括節點的可編程性,還包括用戶的節點編程和通過封裝在包中的代碼進行編程。相比之下,分散計算專注于可編程性對構建未來分布式系統的影響,因此假定只有指定的實體(例如,管理員或自動邊界控制器)才能編寫和安裝代碼,并且代碼將通過安裝在NCP 中的專用安全通道。
跨層技術的目標是使網絡流帶來的負面外部性內部化[6],進而減少顯式應用需求和可變資源對性能的影響。分散計算的跨層方法主要是實現以下兩點:
(1)聯合管理數據的傳輸和計算。
(2)多個流程的聯合管理。
跨層管理使應用層有關應用程序流如何對可變資源做出反應的信息與用于分配資源的傳輸層和網絡層控制機制結合起來。這種聯合管理可以實現更智能、更動態的資源分配。NCP 的可編程性允許分散的路徑內路由和堆棧管理,從而可以更快地進行診斷和修復路徑退化。
針對網絡通信和計算資源有限的情況下,跨層技術以分散的方式聯合優化多個作業,同時滿足應用程序需求,進一步支持分散計算的可伸縮性目標。
分散計算利用網絡中可用的所有計算能力和資源,各節點之間相互合作提供服務,使其可以在物聯網的應用上發揮巨大優勢。本章將列舉一些典型的應用實例,結合這些實例可以幫助人們更好地了解分散計算的現狀和優勢。
現在,軍方比以往任何時候都更依賴于對實時信息的處理。然而,由于戰斗信息的高度機密性,不可能利用云的強大計算能力。同時,高度可變的戰爭環境會導致間歇性的連接,需要良好的網絡魯棒性。此外,由于戰爭破壞造成的通信環境惡劣,必須要有強大的網絡修復能力來支持軍事信息戰。由此可知,這種軍事戰爭環境需要依靠一個能夠處理動態任務的網絡。而現有的網絡計算范式,包括云計算和邊緣計算,是不能滿足的。
為此,美國國防部專注于一個應用于軍事作戰場景的總體大戰略。運用分散計算的思想,如圖3 所示(http://cci.usc.edu/index.php/2017/06/28/turning-datainto-power/),將軍方的所有設備連接起來,涵蓋前線最基本的傳感器,戰場上的坦克、飛機和專用設備,以及海外指揮中心和美國本土的大型數據倉庫等,將它們連接成為一個單一的網絡化有機體,使得當中的任何一個節點都能夠分享、訪問和執行全球范圍的信息。

Fig.3 Military operations圖3 軍事作戰
分散計算可以很好地應用到網絡環境惡劣、高度多變的場景中,具有很強的魯棒性。將是未來支持軍事作戰環境的首選計算范式。
安珀警戒(AMBER Alert)[17]是當國內確認發生兒童綁架案時,透過各種媒體向社會大眾傳播的一種警戒告知。最大限度地發布警報信息,并在第一時間讓更多人知道,從而提高破案的可能性和公眾參與保護兒童的意識。安珀警報系統已經在全美50個州、哥倫比亞特區、印第安人聚居區、波多黎各、美屬維爾京群島和其他30 個國家使用。截至2019 年9月,共有967 名兒童通過琥珀預警系統成功康復。
當執法機構確定一名兒童已被綁架并面臨迫在眉睫的危險時發出緊急信息,信息將通過廣播、電視、路標、手機和其他數據設備等進行傳播。其中車輛作為網絡計算節點,借助安珀響應,安裝在儀表板上的攝像頭可以捕獲附近車輛的車牌,并將其與活動的安珀警報數據庫進行比較。在安珀警戒的背后,需要一個十分強大的分散網絡系統作為支撐,通過一系列幾乎無死角的信息覆蓋,使得失蹤兒童找回的可能性大大提高。
分散計算的體系結構能夠在高速變化、網絡節點地理位置分散的條件下對數據進行時效性分析,將是未來支持公共安全的移動環境的首選計算范式。
在火災救援中,借助分散計算的跨層技術管理,可以簡化從邊緣智能傳感器到人類第一響應者的網絡實體的傳感、通信和協作[18]。
例如,當一架無人機在自然災害現場上空飛行,需要運行圖像識別以快速識別、分類和評估潛在幸存者的安全性。但是在火災環境中,通信資源不僅受到破壞且高度可變,無人機等終端設備無法進行有效的數據處理和遠距離的信息傳播,這大大降低了救援的效率。因此研究者們提出了云邊協作[19-20]的方法來提高網絡性能,但是仍然無法克服遠距離的信息傳輸帶來的時延問題。而且,邊緣協同通常都是假設在良好的網絡環境下,無法很好地應用于惡劣多變的災難場景中。
此時,可以利用分散計算的思想,將所有具有計算能力的移動設備連接成一個網絡化的有機體,節點之間共享合作,無需依賴于云計算中心,減少了遠距離通信帶來的時間延遲。更重要的是,分散計算的設計目標是可操作性、安全性、穩定性,它能夠根據任務需求在最合適的位置進行計算,并利用協議棧的可編程性來緩解路徑退化。
目前,關于分散計算在學術界的研究才剛剛起步,雖然分散計算作為物聯網時代的一種新的計算范式,相對于傳統的計算范式有一定的優勢,但仍存在很多問題需要研究。最后提出幾個未來實現分散計算架構需要面臨的挑戰和發展方向。
(1)任務驅動的服務同步是分散計算面臨的一個挑戰也是未來重點的研究方向。在分散計算中,終端節點發揮作用,端節點需要與其他端節點交互以進行快速信息交換。由于所有參與節點都由一個共享的任務驅動[21],因此它們必須以同步的方式共享部分數據和計算,并且必須在時域內正確標記交換的數據,以滿足全局目標。
可能的解決方案:在不影響網絡上的其他遺留作業和流的情況下,對NCP 上的計算資源和網絡內的網絡資源執行高效、同步、聯合的控制。由于各種原因,聯合優化[22]具有內在的挑戰性。首先,不同任務的數據量和計算復雜度存在顯著差異。因此,資源分配必須適應異構任務[23]需求。其次,由于爭奪資源的設備通常是自治實體,因此任務的選擇應該與設備的利益相一致。最后,必須協調各任務的卸載決策和各計算節點的資源分配,才能達到良好的整體節能效果。
(2)在優化傳輸和計算之間找到正確的平衡。計算和網絡資源管理的時間尺度是不同的,發送和接收數據可能只持續幾十或幾百毫秒,但是圖像識別可能需要幾秒鐘甚至更多的時間。因此,如何在優化傳輸和計算之間找到正確的平衡是一個具有挑戰性的問題。
可能的解決方案:可以利用分散在網絡各處的異構資源的計算能力來處理在網絡邊緣收集的大量數據。重點優化策略的延遲特性、開發不受服務速率等詳細系統參數影響的魯棒調度策略。在數學模型的基礎上,將調度問題擴展到有向無環圖(directed acyclic graph,DAG)模型,開發低復雜度的有向無環圖調度與最優吞吐量策略。
(3)準確地識別網絡何時發生變化(退化和/或故障)以及相關的影響。分散計算中節點可以在任何時候從網絡中添加或刪除[24],可以是由控制機構添加的,也可以是由于故障條件而無意中添加或刪除的,這種動態特性給移動性帶來了更大的挑戰。
可能的解決方案:建立新的機制來實現切換策略,以應對移動性導致的網絡不穩定連接。開發網絡性能監控工具,實時監測網絡動態,在第一時間處理異常情況。
(4)在有限和可變的帶寬、高度分散的異構計算資源下,保證服務質量。嚴格的服務質量要求是分散計算面對的另一個挑戰,一些分散的應用程序需要向用戶提供實時服務,這就需要實施一些服務質量管理策略,以確保時間限制操作。
可能的解決方案:設計一種高效的服務劃分方案,加速交互式分散計算,確保服務質量。在提供一個服務時,必須基于每個應用程序做出決策,明確地知道在何處進行處理。受到文獻[25]的啟發,在高度異構的環境中避開低帶寬數據鏈接,可以從復制關鍵任務來重新路由通信路徑的角度出發,設計復雜度更低、效率更高的管理策略。
美國國防高級研究計劃局(DARPA)希望通過分散計算項目開發一個決策系統,可以在大量分布式、異構平臺上集中分配計算和評估任務。此外,DARPA還尋求開發利用物理上分散計算能力的算法和協議,以將應用程序和網絡傳輸性能提高幾個數量級。其目標是使網絡成為云,自動化數據到代碼的戰略移動,最終促使人們遠離當前互聯網架構的問題。
通過開源跨機構公告,DARPA 的分散計算項目已收到42 份方案。其中,雷神BBN 公司將開發算法和控制機制,以有效利用網絡化但地理分散的計算能力,預計2021 年完成。同時BAE 系統公司、LGS創新公司和Vencore Labs 也作為項目的參與者,加入分散計算的研究中。截止到2019 年,分散計算已有一些代表性研究成果。
其中南加利福尼亞大學的自主網絡研究組(https://anrg.usc.edu/www/)的成果尤為突出,將理論的進步與實際的系統實現相結合,提供一個全面的分散計算框架,解決了以下三個問題。
(1)開發了一個創新的“分散任務調度框架和基于價格的算法”,用于分散計算中的資源分配。與傳統的分布式計算和網格計算環境中的集中式調度器不同,提出的分散式任務調度框架將減少與不斷從所有NCP 中收集有關計算和通信的新狀態信息相關的協調開銷,這將使分散計算系統不僅具有更強的可伸縮性,而且在發生網絡故障或受到攻擊時的響應更快。其中基于價格的資源分配方法將允許對競爭性工作的任務分配進行動態優化,為工作優先級和滿足最后期限提供支持。
(2)提供了一種全新的體系結構[26-27],利用網絡各個部分可用或未充分利用的計算能力。在此基礎上,開發了一種新的編碼類型,稱為最大魯棒性代碼,它對最大數量的失敗或掉線節點提供魯棒性。與當今的非編碼計算系統相比,顯著提高了帶寬利用率和對故障和掉隊的恢復能力。
(3)設計并部署了一個異構的分散計算實驗臺(https://anrg.usc.edu/www/research/apac/),將模擬真實世界的場景,其中視頻數據是通過分布式傳感器節點收集的。該實驗臺將是一個獨特的融合超低功率NCPs,集成了先進的收集視頻和音頻的傳感器。在此基礎上,開發了一套完整的軟件功能,以統一的方式公開底層的異構測試床功能,以便應用程序能夠透明地利用測試床。內部實驗臺將與商業分散計算實驗臺相補充。
此外,在系統架構方面,Schurgot 等人[6]描述了聯合計算和通信資源管理的新愿景。利用網絡中網絡計算點的多樣性,以及網絡鏈接和連接它們的協議棧的異構性,提出了一種新的以資源為中心的體系結構。Ghosh 等人[28]提出了一個用于分散計算的容器編排體系結構。該系統可自動在一組聯網的計算節點之間高效地分配任務,并在此之后協調任務的執行。Knezevic 等人[29]開發出一種用于分散計算的運行時調度軟件工具。它可以在邊緣和云中以有向無環圖的形式在多個地理上分散的計算節點上部署流水線計算。
在任務感知算法方面,Nguyen 等人[30]開發了一個分散網絡性能分析器,它對分散計算集群中的通信鏈路進行周期性分析,并對數據進行二次擬合,然后將信息發送回調度器。實驗表明,此網絡分析器能在運行的分散網絡中有效地測量網絡性能,并給出優化的分散網絡調度策略。Hu 等人[25]針對計算機視覺和視頻處理的應用程序提出了一個吞吐量優化的任務調度器,該調度器集成了兩種創新技術:任務復制和任務分割。為了捕獲網絡中計算和通信的異構性,Yang 等人[2]提出了一種新的虛擬排隊網絡。將分散計算的調度問題擴展到一個更一般的計算范式。
在國內分散計算也受到了關注,根據美國的分散計算項目,中國航天系統科學與工程研究院的李臻等人[31]從分散計算的概念著手,對比DARPA 分散式計算需求,剖析了我軍網絡技術存在的主要問題及其對我軍網絡建設的啟示與借鑒,提出了我軍在分散計算研究領域的措施建議。
分散計算是一種很有前途的新計算范式,將邊緣和霧計算的理念更推進了一步。它適用于目前提供的主要基礎設施服務,包括計算、存儲和通信服務。本文首先介紹了分散計算的研究背景,其次介紹了分散計算的相關概念。為進一步理解分散計算的思想,詳細闡述了分散計算的三個核心技術,并提出了三大實際應用。最后討論分散計算面臨的挑戰及研究方向。這些闡述旨在為分散計算的研究人員提供未來的研究方向。