劉春林,張立祥
(凱里學(xué)院,貴州 凱里 556011)
近年來,物聯(lián)網(wǎng)產(chǎn)生海量各種工業(yè)領(lǐng)域的數(shù)據(jù),而大量用戶只能使用手頭有限的設(shè)備資源處理這些生成的數(shù)據(jù),這導(dǎo)致了亟須在用戶設(shè)備之外提供豐富且實時響應(yīng)的計算環(huán)境,因此多接入邊緣計算(Multi-Access Edge Computing,MEC)環(huán)境得以創(chuàng)建[1]。
作為MEC關(guān)鍵技術(shù)之一的計算卸載,從單用戶和多用戶兩個方面分析。在單用戶計算狀態(tài)下,任何時刻,用戶都可以卸載計算任務(wù);在多用戶計算卸載中,允許多個用戶同時將其任務(wù)移動到更高的計算層。由于用戶終端(User Equipment,UE)的移動,其變化頻繁,并且由于應(yīng)用程序的復(fù)雜性,需要動態(tài)選擇適當(dāng)?shù)挠嬎阗Y源。
在卸載過程中,智能工具具備檢測當(dāng)前或潛在的條件并實現(xiàn)基于上下文的行為的能力,這種能力可以稱為上下文感知。一旦網(wǎng)絡(luò)可用,就執(zhí)行卸載,而不考慮卸載是否有利。計算量并不總是向有利于獲得所需的效率和利益轉(zhuǎn)移的,全部或部分的取決于可用的條件:卸載是否能夠有效地減少響應(yīng)實時請求的延遲,以及是否能夠減少能耗等等。
位置、網(wǎng)絡(luò)狀態(tài)和可用計算資源等移動條件對于計算卸載決策中的上下文將有非常重要的影響[2]。因為在卸載問題中考慮上下文信息是基于不同的目標(biāo)和網(wǎng)絡(luò)結(jié)構(gòu)的,如節(jié)能和執(zhí)行時間,以及MCC(移動云計算)和MEC(多接入邊緣計算)中的延遲。本文提出了一種基于機(jī)器學(xué)習(xí)技術(shù)的上下文感知計算卸載能力框架,來提高卸載的效率,并降低能耗。
目前,機(jī)器學(xué)習(xí)算法在資源管理問題中得到了廣泛的應(yīng)用,并提出了一種基于學(xué)習(xí)自動機(jī)(LA,Learning Automata)的云計算虛擬機(jī)調(diào)度模型。該方法在醫(yī)療服務(wù)中進(jìn)行了測試,在延遲、吞吐量和數(shù)據(jù)包交付度量方面,比其他方法有更好的結(jié)果。學(xué)習(xí)自動機(jī)技術(shù)已有所應(yīng)用,例如運(yùn)用學(xué)習(xí)自動機(jī)技術(shù)用于解決單電梯問題,減少平均等待時間。一組研究人員通過將學(xué)習(xí)自動機(jī)技術(shù)擴(kuò)展為貝葉斯學(xué)習(xí)自動機(jī)(BLA)來研究智能電網(wǎng)中的負(fù)荷調(diào)度,通過將學(xué)習(xí)自動機(jī)連接到每個客戶來建立一個調(diào)度系統(tǒng)。結(jié)果表明,該算法提高了速度和精度。
以上研究目前并沒有應(yīng)用在MEC體系結(jié)構(gòu)中,因此,運(yùn)用機(jī)器學(xué)習(xí)算法對MEC中的卸載問題進(jìn)行了進(jìn)一步研究。
貝葉斯(Bayes)學(xué)習(xí)和學(xué)習(xí)自動機(jī)(Learning Automata,LA)結(jié)合,定義為貝葉斯學(xué)習(xí)自動機(jī)(BLA)。貝葉斯學(xué)習(xí)是一種概率推理方法,允許對假設(shè)的證據(jù)進(jìn)行加權(quán),其目的是在問題中找到最優(yōu)決策。學(xué)習(xí)自動機(jī)可以被認(rèn)為是一個具有有限操作數(shù)的單一對象,目前此方法已用于云計算和分布式系統(tǒng)中的卸載。學(xué)習(xí)自動機(jī)通過從其動作集中選擇一個動作并將其應(yīng)用到環(huán)境中來進(jìn)行操作。此操作由隨機(jī)環(huán)境來評估,并自動使用響應(yīng)環(huán)境選擇其下一個操作。在此過程中,機(jī)器自動學(xué)習(xí)選擇最佳的動作。如何使用環(huán)境對自動選擇操作的響應(yīng)(用于選擇下一個自動操作)由自動清除算法決定。雖然貝葉斯學(xué)習(xí)自動機(jī)本質(zhì)上是貝葉斯的,但是僅僅依賴于計算獎勵/懲罰以及從一對雙貝塔分布中隨機(jī)抽樣[4]。
因為實際系統(tǒng)和環(huán)境是多用戶而不是單用戶的,在方法中使用多用戶計算。由于這些用戶位于不同的位置和條件下,任務(wù)的卸載決策應(yīng)該在了解上下文和現(xiàn)有條件的情況下做出。該策略解決了上述問題,提高了計算卸載的服務(wù)效率。因此提出了一個多用戶MEC系統(tǒng),改變移動計算資源的條件。
為了將上下文感知的技術(shù)應(yīng)用于多用戶MEC系統(tǒng),設(shè)有兩類變量:自變量和因變量。自變量是系統(tǒng)以事務(wù)的形式接收的所有輸入變量,不會干擾它們的計算,例如:圍繞環(huán)境的輸入數(shù)據(jù);因變量是通過使用自變量作為擬定系統(tǒng)的輸入而獲得的變量。例如:延遲和能量消耗。上下文感知系統(tǒng)中的控制循環(huán)由四個階段組成:監(jiān)視、分析、計劃和執(zhí)行,即為 “監(jiān)視-分析-計劃-執(zhí)行” 控制循環(huán)。
這基本上是系統(tǒng)的上下文監(jiān)視器組件。輸入包括從物聯(lián)網(wǎng)設(shè)備接收到的所有請求,以及從進(jìn)入模塊的環(huán)境收集的數(shù)據(jù)。該請求使用唯一標(biāo)識符接收。此請求可以是計算請求,也可以是數(shù)據(jù)卸載請求。包括應(yīng)用、用戶終端、傳感器、網(wǎng)絡(luò)和媒體。在本階段中,還將監(jiān)控服務(wù)質(zhì)量(QoS)和服務(wù)水平協(xié)議(SLA)等獨(dú)立參數(shù),并將其寫入知識數(shù)據(jù)庫。
此組件處理從監(jiān)測器組件收集處理的度量數(shù)據(jù),并通過處理這些度量數(shù)據(jù),獲取當(dāng)前系統(tǒng)生產(chǎn)力狀態(tài)的數(shù)據(jù)和對未來需求的預(yù)測。在這個階段,如果一個資源被分配給一個計算請求,并且這導(dǎo)致違反服務(wù)質(zhì)量,分析員必須檢測到這一點并發(fā)出必要的警報。該部分與知識庫關(guān)系密切,并不斷與知識庫交換信息。
這一部分包含了系統(tǒng)的決策模塊。本階段通過知識庫使用上一階段的信息,最終決定是卸載還是在本地執(zhí)行。本階段討論計算卸載,此組件決定在當(dāng)前情況下是否卸載以及如果卸載,如何將任務(wù)發(fā)送到適當(dāng)?shù)奶幚硐到y(tǒng)。決策模塊包括成本估算模塊和上下文感知決策算法兩部分。估算組件是基于成本的上下文探查器生成一組成本估算模型,用于計算邊緣服務(wù)器和公共云基礎(chǔ)設(shè)施上每個可卸載任務(wù)的運(yùn)行時長和能耗。事實上,此方法可以找到卸載請求程序模塊的最佳目的地。
使用貝葉斯學(xué)習(xí)自動機(jī)將系統(tǒng)建模為狀態(tài)機(jī)。在該結(jié)構(gòu)中,每個狀態(tài)以學(xué)習(xí)自動機(jī)方式與唯一邊緣設(shè)備選擇概率相關(guān)聯(lián)。一臺基于貝葉斯學(xué)習(xí)自動機(jī)的獨(dú)立邊緣設(shè)備按照貝葉斯推理原則進(jìn)行工作。在貝葉斯學(xué)習(xí)自動機(jī)中,使用具有兩個正參數(shù)α和β的貝塔分布。概率密度函數(shù)通過公式(1)計算如下[3]:
把提出的卸載方法寫成以下算法。該方法包括初始化和 “監(jiān)視-分析-計劃-執(zhí)行” 兩部分。在初始化部分,首先將αi和βi設(shè)置為1,其次創(chuàng)建用戶終端、云和應(yīng)用程序。其次,邊緣服務(wù)器是根據(jù)部門和手機(jī)的數(shù)量構(gòu)建的。最后,將應(yīng)用程序提交到邊緣服務(wù)器控制器,并啟動仿真模擬器iFogsim。
算法描述:
(1)Initialization:αi=βi=1,i=[1,N],j=1./*N是邊緣設(shè)備的數(shù)量*/
(2)Create UE,Cloud,application(Modules,Edges,Tuples,Workflow)./*創(chuàng)建用戶終端、云、應(yīng)用程序(模塊、邊緣、元組、工作流)*/
(3)f or i=1t o De par t ment Max d o
(4)f or j=1t o Mob i l e Ma x d o
(5)Edge server(Node name,MIPS,Ram,Storage,upper BW,lower BW,busy power,and idle power)./*邊緣服務(wù)器(節(jié)點名稱、MIPS、Ram、存儲器、上BW、下BW、忙功率和空閑功率)*/
(6)end for
(7)end for
(8)Submit applications./*提交應(yīng)用*/
(9)Start iFogsim.
(10)while Modules enter from UE do/*模塊從用戶終端進(jìn)入*/
(11)Monitor:/*監(jiān)測*/
(12)收集模塊、傳感器、元組、網(wǎng)絡(luò)接口、用戶終端、云和邊緣服務(wù)器的上下文。
(13)Analyze:/*分析*/
(14)計算本地設(shè)備中的數(shù)據(jù)執(zhí)行率和計算邊緣服務(wù)器的帶寬
(15)檢查網(wǎng)絡(luò)接口狀態(tài)
(16)Planing:/*整平*/
(17)while j<MaxIteration do/*MaxIteration最大迭代*/
(18)f o r i=1t o i<N d o
(19)從β分布中隨機(jī)抽取一個值xi,用αi,βi表示為公式(1)
(20)end for
(21)Destination=Find maximum xi./*查找目標(biāo)*/
(22)Cost function=ω1Pi+ω2TED./*ω1和ω2是等于0.0075和0.33的歸一化系數(shù),Pi是第i個邊緣設(shè)備的功率,TED=1/MIPS,其中MIPS是邊緣服務(wù)器每秒可以運(yùn)行的百萬次可執(zhí)行操作*/
(23)if Cost function<Cost tradoff then
(24)αi=αi+1./*獎賞*/
(25)else
(26)βi=βi+1./*處罰*/
(27)end if
(28)end while
(29)Execute:/*執(zhí)行*/
(30)基于目標(biāo)的卸載模塊
(31)end while
(32)Stop iFogsim
在 “監(jiān)視-分析-計劃-執(zhí)行” 部分中,四個階段連續(xù)執(zhí)行。在監(jiān)控階段,收集模塊、傳感器、元組、網(wǎng)絡(luò)接口、用戶終端、云和邊緣服務(wù)器的上下文。在分析階段,計算本地設(shè)備、邊緣服務(wù)器和云的執(zhí)行成本,并檢查網(wǎng)絡(luò)接口狀態(tài)。在規(guī)劃階段,我們執(zhí)行貝葉斯學(xué)習(xí)自動機(jī)算法來選擇模塊的最佳目的地。席氏值的隨機(jī)性由β分布隨機(jī)為公式(1),參數(shù)為αi,βi,αi,βi的值根據(jù)獎勵或懲罰進(jìn)行更新。最后,在執(zhí)行階段,把當(dāng)前模塊卸載到最佳目的地,該目的地在計劃階段獲得或本地執(zhí)行。
最后的職責(zé)是執(zhí)行執(zhí)行部分中的命令。在本階段中,計算將卸載到其他機(jī)器。本階段與設(shè)備和資源密切相關(guān),并存儲知識庫中先前提到的最新狀態(tài)的資源,以備將來使用。本階段包括我們的任務(wù)管理器組件。任務(wù)管理器收集信息,例如方法條目、執(zhí)行任務(wù)所需的庫、卸載位置的網(wǎng)絡(luò)地址,并將其放入卸載包中。處理者決定在本地運(yùn)行移交任務(wù),或?qū)⑵渥鳛檫吘壏?wù)器或云發(fā)送到頂層。
MEC中的計算卸載面臨許多挑戰(zhàn)。在本研究中,首先應(yīng)用上下文、用戶終端、傳感器、網(wǎng)絡(luò)、邊緣服務(wù)器所產(chǎn)生的一些重要上下文,并使用在邊緣級別(監(jiān)視階段)定義的自主管理( “監(jiān)視-分析-計劃-執(zhí)行” 控制循環(huán))來收集所需內(nèi)容;其次對這些上下文進(jìn)行分析(分析階段),并幫助做出卸載決策,發(fā)送到上下文感知算法,該算法有效地基于接收到的上下文,判斷是否為最佳卸載目的地。通過貝葉斯學(xué)習(xí)自動機(jī)算法(規(guī)劃階段)來選擇子系統(tǒng),執(zhí)行卸載指令(執(zhí)行階段)。
因此,在本地運(yùn)行,還是將計算卸載到邊緣或云,運(yùn)用MEC體系結(jié)構(gòu)上的 “監(jiān)視-分析-計劃-執(zhí)行” 控制循環(huán)來進(jìn)行決定。使用應(yīng)用程序、傳感器、資源、邊緣服務(wù)器和網(wǎng)絡(luò)的上下文信息,并運(yùn)用這些更新的上下文改進(jìn)卸載過程,找到邊緣設(shè)備或云計算的最佳目的地。為了解決這個問題,運(yùn)用機(jī)器學(xué)習(xí)方法,使用貝葉斯學(xué)習(xí)自動機(jī)技術(shù)優(yōu)化了計算卸載算法。
經(jīng)過測試,結(jié)果表明,貝葉斯學(xué)習(xí)自動機(jī)技術(shù)在能耗、總執(zhí)行成本、網(wǎng)絡(luò)使用率、延遲方面均優(yōu)于本地執(zhí)行和普通卸載方法,這些結(jié)果具有上下文感知信息的卸載算法能夠提高網(wǎng)絡(luò)性能。