陳 鳴,吳 瓊,趙洪蕊,姜玉稀
(1.上海三思電子工程有限公司,上海 201100;2.上海三思科技發(fā)展有限公司,上海 201100)
智慧交通是建設(shè)智慧城市的重要基礎(chǔ),是推進(jìn)城市現(xiàn)代化的重要標(biāo)志[1]。2020年9月,交通運(yùn)輸部提出交通領(lǐng)域新型基礎(chǔ)設(shè)施建設(shè)的具體落實(shí)舉措,旨在加快構(gòu)建智慧交通網(wǎng)絡(luò),提高出行效率和出行安全[2]。隨著B(niǎo)5G技術(shù)的發(fā)展[3-4],智慧交通迎來(lái)了更多的發(fā)展機(jī)遇,集智慧感知、智慧傳輸、智慧管理為一體[5],采集并處理海量的實(shí)時(shí)交通數(shù)據(jù),有助于加強(qiáng)交通網(wǎng)絡(luò)的檢測(cè)和管理。智慧交通采用邊緣計(jì)算[6-7],賦予網(wǎng)絡(luò)邊緣計(jì)算能力,在本地處理數(shù)據(jù),應(yīng)對(duì)日益增長(zhǎng)的數(shù)據(jù)處理需求。然而出于設(shè)備成本的考慮,邊緣計(jì)算網(wǎng)絡(luò)的處理器難以配置較為充裕的冗余性計(jì)算資源和存儲(chǔ)空間[8]。鑒于邊緣處理器有限的計(jì)算能力,如何根據(jù)實(shí)時(shí)交通數(shù)據(jù)的流量和邊緣處理器的狀態(tài)進(jìn)行資源合理分配是邊緣計(jì)算一個(gè)待解決的難點(diǎn)[9]。
目前,國(guó)內(nèi)外對(duì)于邊緣計(jì)算的相關(guān)問(wèn)題進(jìn)行了大量研究,但針對(duì)于智慧高速架構(gòu)中的邊緣計(jì)算資源調(diào)度問(wèn)題關(guān)注較少。Mao等人[10]提出任務(wù)遷移卸載算法,該算法只依賴于當(dāng)前系統(tǒng)的狀態(tài),而不考慮當(dāng)前系統(tǒng)中的帶寬狀態(tài)、計(jì)算需求等問(wèn)題;Meng等人[11]提出在有限計(jì)算能力的情況下,通過(guò)優(yōu)化計(jì)算任務(wù)隊(duì)列下的計(jì)算卸載問(wèn)題來(lái)實(shí)現(xiàn)計(jì)算任務(wù)完成時(shí)延最小,但該方法僅適用于單服務(wù)器場(chǎng)景。Chen等人[12]考慮到邊緣處理器的功耗問(wèn)題,通過(guò)設(shè)定邊緣處理器的功耗閾值確定邊緣處理器的狀態(tài),同時(shí)利用 Lyaponuv方法優(yōu)化資源的分配,但根據(jù)功耗判斷狀態(tài)仍不夠完善。
根據(jù)當(dāng)前方法的不足,本文提出了一種面向智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)邊緣處理器的資源配優(yōu)化算法,該算法考慮了智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)的層次化結(jié)構(gòu),對(duì)邊緣處理器的工作狀態(tài)進(jìn)行了建模,根據(jù)其工作狀態(tài)進(jìn)行資源配置優(yōu)化。實(shí)驗(yàn)表明,本文算法可以在處理突發(fā)事件時(shí)能通過(guò)資源配置有效降低時(shí)延,使智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)處理傳輸更加穩(wěn)定可靠。
智慧高速網(wǎng)絡(luò)包括三部分:云端、邊緣處理器和外接設(shè)備[13]。云端負(fù)責(zé)接收數(shù)據(jù)及下發(fā)任務(wù),起到統(tǒng)籌規(guī)劃全局的作用;邊緣處理器是智慧高速網(wǎng)絡(luò)的節(jié)點(diǎn),從云端接收任務(wù)并下發(fā)至外接設(shè)備執(zhí)行,同時(shí)通過(guò)邊緣計(jì)算合理配置資源并進(jìn)行數(shù)據(jù)計(jì)算處理,最終將收集處理完畢的數(shù)據(jù)傳回至云端;外接設(shè)備包括氣象傳感器、攝像頭、GPS及雷達(dá)等,其主要工作是負(fù)責(zé)收集數(shù)據(jù)以及執(zhí)行邊緣處理器下發(fā)的任務(wù)。智慧高速網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)圖Fig.1 Node structure diagram of intelligent high-speed network
由圖1可以看出,智慧高速網(wǎng)絡(luò)是一種層次化網(wǎng)絡(luò)[14],云端為控制層,外接設(shè)備為執(zhí)行層,而邊緣處理器作為中間層起到了橋梁作用,連接著云端和外接設(shè)備,從而形成一種層次化網(wǎng)絡(luò)結(jié)構(gòu)。例如云端下發(fā)收集實(shí)時(shí)路段氣象信息這一任務(wù)至邊緣處理器,邊緣處理器在接收任務(wù)后控制氣象傳感器獲取當(dāng)前高速路段氣象信息,其中氣象傳感器收集的是最原始的數(shù)據(jù)。邊緣處理器對(duì)數(shù)據(jù)進(jìn)行計(jì)算和簡(jiǎn)化,并且上傳到云端。同時(shí),經(jīng)過(guò)處理的信息將顯示在當(dāng)前路段標(biāo)志牌上提醒來(lái)往車輛。此外,云端還可以直接發(fā)布邊緣計(jì)算任務(wù)給邊緣處理器,邊緣處理器將任務(wù)分解成不同工作給相應(yīng)的外接設(shè)備執(zhí)行。利用邊緣處理器將外接設(shè)備所采集的數(shù)據(jù)直接在本地進(jìn)行簡(jiǎn)化和處理,在提高信息時(shí)效性的同時(shí)可以減少對(duì)傳輸速率、通信鏈路帶寬的需求與消耗[15]。
基于圖1所示的智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu),通過(guò)邊緣計(jì)算算法設(shè)計(jì),優(yōu)化網(wǎng)絡(luò)節(jié)點(diǎn)邊緣處理器資源配置能力,聯(lián)合多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)邊緣處理器組成一個(gè)靈活分配邊緣計(jì)算任務(wù)并具有故障自愈性的智慧高速系統(tǒng)。
本文通過(guò)云端與邊緣處理器之間的傳輸總時(shí)延[16]來(lái)表征邊緣處理器的工作狀態(tài)。傳輸總時(shí)延T的計(jì)算公式為:
(1)
式中,Tg為云端下發(fā)任務(wù)至邊緣處理器所產(chǎn)生的時(shí)延,可由云端下發(fā)任務(wù)時(shí)加入的時(shí)間戳T1和邊緣處理器接收到數(shù)據(jù)時(shí)的本地時(shí)間T2之差得出。Tp為邊緣處理器解析接收到的任務(wù)所產(chǎn)生的時(shí)延,可由邊緣處理器接收到數(shù)據(jù)時(shí)的本地時(shí)間T2和邊緣處理器為各外接傳感器分配任務(wù)時(shí),在數(shù)據(jù)中加入的時(shí)間戳T3之差得出。j為連接到邊緣處理的第j個(gè)外接傳感器;Tdj為邊緣處理器下放任務(wù)給外接傳感器j后,其返回?cái)?shù)據(jù)所產(chǎn)生的時(shí)延,可由邊緣處理器為各外接傳感器分配任務(wù)時(shí),在數(shù)據(jù)中加入的時(shí)間戳T3和邊緣處理器接收到外接傳感器返回?cái)?shù)據(jù)時(shí)的本地時(shí)間T4之差得出。Trj由兩部分時(shí)延組成,一部分時(shí)延由邊緣處理器將外接傳感器返回的數(shù)據(jù)進(jìn)行預(yù)處理產(chǎn)生;另一部分時(shí)延由邊緣處理器將處理后的數(shù)據(jù)回傳給云端時(shí)產(chǎn)生,可將邊緣處理器接收到外接傳感器返回?cái)?shù)據(jù)時(shí)的本地時(shí)間T4作為時(shí)間戳加入數(shù)據(jù)中,由云端接收到回傳數(shù)據(jù)時(shí)的本地時(shí)間T5和T4之差得出。
由計(jì)算得出的傳輸總時(shí)延T對(duì)邊緣處理器的工作狀態(tài)進(jìn)行劃分,劃分規(guī)則如表1所示。其中,Tnormal為最大正常工作時(shí)延的閾值,Terror為最大故障工作時(shí)延的閾值。
表1 傳輸總時(shí)延與邊緣處理器工作狀態(tài)對(duì)應(yīng)關(guān)系
智慧高速網(wǎng)絡(luò)中,云端下發(fā)任務(wù)給對(duì)應(yīng)邊緣處理器,邊緣處理器再進(jìn)行執(zhí)行?;诠ぷ鳡顟B(tài)模型,單個(gè)邊緣處理器執(zhí)行任務(wù)負(fù)載過(guò)大時(shí),將處于繁忙或錯(cuò)誤工作狀態(tài)。在本文設(shè)計(jì)的智慧高速網(wǎng)絡(luò)中,云端存儲(chǔ)每個(gè)邊緣處理器的任務(wù)和數(shù)據(jù)備份作為數(shù)據(jù)鏡像,當(dāng)邊緣處理器開(kāi)始工作時(shí)向云端索要任務(wù)與數(shù)據(jù)備份。相應(yīng)的,邊緣處理器完成任務(wù)后會(huì)更新數(shù)據(jù)鏡像反饋給云端,當(dāng)云端發(fā)出新的任務(wù)時(shí),邊緣處理器再接收新的數(shù)據(jù)鏡像并執(zhí)行任務(wù)。邊緣處理器執(zhí)行任務(wù)有3個(gè)重要規(guī)則:更新、獲取、恢復(fù)。
(1) 更新(邊緣處理器執(zhí)行任務(wù)時(shí))
如果邊緣處理器發(fā)現(xiàn)其數(shù)據(jù)鏡像不存在,則會(huì)創(chuàng)建一個(gè)新的數(shù)據(jù)鏡像;否則用邊緣處理器的任務(wù)執(zhí)行結(jié)果數(shù)據(jù)更新數(shù)據(jù)鏡像的數(shù)據(jù)。在存儲(chǔ)數(shù)據(jù)時(shí)使用時(shí)間戳標(biāo)記最新的更新時(shí)間。如果云端生成新的任務(wù)時(shí),數(shù)據(jù)鏡像中的任務(wù)將更新。
(2) 獲取(邊緣處理器收到任務(wù)時(shí))
邊緣處理器向云端訂閱最新的數(shù)據(jù)鏡像。云端不需要知道哪個(gè)邊緣處理器訂閱了數(shù)據(jù)鏡像,只需根據(jù)邊緣處理器編號(hào)將數(shù)據(jù)鏡像發(fā)送到邊緣處理器。
(3) 恢復(fù)(邊緣處理器重啟時(shí))
故障邊緣處理器重啟恢復(fù)時(shí),會(huì)訂閱存儲(chǔ)在云端中的最新數(shù)據(jù)鏡像。檢查數(shù)據(jù)鏡像更新的時(shí)間戳和本地?cái)?shù)據(jù)鏡像的時(shí)間戳。如果本地較新,則云端的數(shù)據(jù)鏡像將被更新,否則更新本地的數(shù)據(jù)鏡像。
上節(jié)描述了本文智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)邊緣處理器的任務(wù)執(zhí)行規(guī)則,這些規(guī)則使得多個(gè)邊緣處理器之間進(jìn)行資源配置成為可能。資源配置優(yōu)化基于工作狀態(tài)模型,其本質(zhì)是確保邊緣處理器處于正常工作狀態(tài),邊緣處理器的工作狀態(tài)轉(zhuǎn)換條件如圖2所示。本文所提出的資源配置優(yōu)化算法包括兩部分:一是應(yīng)對(duì)邊緣處理器的繁忙工作狀態(tài);二是應(yīng)對(duì)邊緣處理器的故障工作狀態(tài)。
圖2 邊緣處理器工作狀態(tài)轉(zhuǎn)移圖Fig.2 Edge processor working state transition diagram
2.2.1 繁忙工作狀態(tài)邊緣處理器資源配置優(yōu)化
邊緣處理器設(shè)備在繁忙工作狀態(tài)下執(zhí)行邊緣計(jì)算。當(dāng)總時(shí)延超過(guò)最大正常工作時(shí)延Tnormal時(shí),表明邊緣處理器設(shè)備負(fù)載過(guò)大,邊緣計(jì)算效率降低,此時(shí)單個(gè)邊緣處理器無(wú)法滿足云端下發(fā)的邊緣計(jì)算任務(wù)。因此在繁忙工作狀態(tài)下,需要聯(lián)合多個(gè)邊緣處理器進(jìn)行邊緣計(jì)算資源配置優(yōu)化,具體如圖3所示。
圖3 繁忙工作狀態(tài)邊緣處理器資源配置Fig.3 Edge processor resource configuration in busy state
設(shè)定高速公路的起點(diǎn)至終點(diǎn)方向?yàn)檎较?,等間隔安裝n個(gè)邊緣處理器,依次記為D1,D2,D3,D4,…,Dk-1,Dk,Dk+1,…,Dn。由于各邊緣處理器的計(jì)算資源和處理數(shù)據(jù)的能力有限,現(xiàn)根據(jù)高速公路的線性特性,針對(duì)繁忙工作狀態(tài)和故障工作狀態(tài)下的各邊緣處理器的資源配置進(jìn)行優(yōu)化。以Dk當(dāng)前工作狀態(tài)作為判斷標(biāo)準(zhǔn),資源配置優(yōu)化流程如下:
① 云端得知Dk處于繁忙工作狀態(tài);
② 云端尋找與Dk相鄰的Dk+1和Dk-1;
③ 云端將下一時(shí)刻要發(fā)送給Dk的任務(wù),按照任務(wù)相關(guān)程度的高低發(fā)送給另一個(gè)Di,其中Di∈{Dk-1,Dk+1}。
④ 云端再次獲取Dk的工作狀態(tài),若仍處于繁忙工作狀態(tài),則重復(fù)步驟①~③,直至云端得知邊緣處理器Dk已恢復(fù)正常工作狀態(tài)。
2.2.2 故障工作狀態(tài)邊緣處理器資源配置優(yōu)化
當(dāng)Dk處于故障工作狀態(tài)時(shí),資源配置優(yōu)化流程如下:
① 各個(gè)邊緣處理器處于正常工作狀態(tài)時(shí),向其相鄰邊緣處理器發(fā)送其設(shè)備序號(hào),即Dk向Dk-1和Dk+1發(fā)送其設(shè)備序號(hào);
② 2Dk-1和Dk+1若未接收到應(yīng)處于正常工作狀態(tài)的Dk的設(shè)備序號(hào),則判定Dk處于故障工作狀態(tài),并通知云端;
③ 云端得知Dk處于故障工作狀態(tài),將其從邊緣處理器設(shè)備列表中刪除,并對(duì)所有邊緣處理器進(jìn)行重新編號(hào);
④ 云端將下一時(shí)刻要發(fā)送給出現(xiàn)故障的Dk任務(wù),根據(jù)任務(wù)與邊緣處理器之間斯皮爾曼相關(guān)系數(shù)的大小作為依據(jù),發(fā)送給另一個(gè)Di,其中Di∈{Dk-1,Dk+1};
⑤ 處于故障狀態(tài)的Dk恢復(fù)正常工作后,云端重新將其加入邊緣設(shè)備列表中,并對(duì)所有邊緣處理器進(jìn)行重新編號(hào)。
其中,云端調(diào)度的任務(wù)與邊緣處理器之間的相關(guān)程度采用斯皮爾曼相關(guān)系數(shù)進(jìn)行計(jì)算,如式(2)所示。其值用來(lái)衡量云端下發(fā)的任務(wù)在邊緣處理器中執(zhí)行的必要性。若計(jì)算值大,則表明該任務(wù)可由當(dāng)前邊緣處理器執(zhí)行;若計(jì)算值小,則表明該任務(wù)應(yīng)由其他邊緣處理器執(zhí)行。
(2)
為了驗(yàn)證本文提出的優(yōu)化算法,根據(jù)建立的智慧高速網(wǎng)絡(luò)結(jié)構(gòu)與邊緣處理器工作狀態(tài)模型,進(jìn)行仿真實(shí)驗(yàn)。實(shí)現(xiàn)資源配置優(yōu)化的偽代碼如算法1所示。
在仿真時(shí),假設(shè)系統(tǒng)中共有5個(gè)邊緣處理器,同時(shí)假設(shè)數(shù)據(jù)傳輸速度是確定的,此時(shí),邊緣處理器處理數(shù)據(jù)時(shí)產(chǎn)生的時(shí)延對(duì)總時(shí)延的影響較大,所以采樣點(diǎn)的初始時(shí)延由前一采樣間隔內(nèi)云端發(fā)布的任務(wù)數(shù)據(jù)量和邊緣處理器的處理能力以及各傳輸時(shí)延決定。在未進(jìn)行資源配置優(yōu)化的情況下,5個(gè)邊緣處理器在各采樣時(shí)間點(diǎn)的總時(shí)延如圖4所示。設(shè)定Tnormal為3 ms,邊緣處理器設(shè)備4在T12時(shí)刻總時(shí)延超過(guò)3 ms,即進(jìn)入繁忙工作狀態(tài),由于云端沒(méi)有進(jìn)行合理的資源分配,導(dǎo)致該邊緣處理器設(shè)備在T12時(shí)刻之后始終處于繁忙工作狀態(tài)。
圖4 繁忙工作時(shí)多邊緣處理器總延時(shí)變化圖Fig.4 Variation diagram of total delay of multi-edge processor during busy working state
以表2中資源配置優(yōu)化的偽代碼為核心,在采用資源優(yōu)化算法的情況下,5個(gè)邊緣處理器在各采樣時(shí)間點(diǎn)的總時(shí)延如圖5所示。邊緣處理器設(shè)備4在T12采樣時(shí)刻進(jìn)入繁忙工作狀態(tài),通過(guò)資源配置優(yōu)化后,由邊緣處理器設(shè)備5承接了下一時(shí)刻云端原本將下發(fā)給邊緣處理器設(shè)備4的任務(wù)。在T13采樣時(shí)刻,邊緣處理器設(shè)備4的總時(shí)延低于3 ms,重新變?yōu)檎9ぷ鳡顟B(tài)。
圖5 資源配置優(yōu)化后多邊緣處理器總延時(shí)變化圖Fig.5 Variation diagram of total delay of multi-edge processor after resource allocation optimization
由此可見(jiàn),在未進(jìn)行資源配置優(yōu)化的情況下,當(dāng)邊緣處理器進(jìn)入繁忙工作狀態(tài)之后,云端將繼續(xù)為其分配任務(wù),導(dǎo)致該邊緣處理器將長(zhǎng)時(shí)間處于繁忙工作狀態(tài),這可能會(huì)影響該邊緣處理器的工作效率;同時(shí),其他處于正常工作狀態(tài)的邊緣處理器的資源難以得到合理利用。在進(jìn)行資源配置優(yōu)化之后,可以將各邊緣處理器的總時(shí)延降低至3 ms以下,合理利用了邊緣處理器的資源。
在智慧高速系統(tǒng)中,當(dāng)邊緣處理器出現(xiàn)故障后,實(shí)現(xiàn)自愈調(diào)度控制,圖6對(duì)這一過(guò)程進(jìn)行了推演。
圖6 故障工作狀態(tài)邊緣處理器資源配置Fig.6 Edge processor resource allocation during fault working state
圖6中,Dk顏色變?yōu)楹谏鞤k出現(xiàn)故障,此時(shí)自愈調(diào)度算法控制相鄰Dk-1、Dk+1承接故障Dk的工作;Dk-1、Dk+1承接后,顏色變?yōu)榧t色,表示進(jìn)入繁忙工作狀態(tài),因此對(duì)繁忙Dk-1與Dk+1進(jìn)行資源配置,配置完成后,Dk-1、Dk+1、Dk-2、Dk+2處于一個(gè)相對(duì)正常的工作狀態(tài);Dk不再執(zhí)行邊緣計(jì)算任務(wù),同時(shí)整個(gè)邊緣計(jì)算層的平均時(shí)延降低,直至Dk恢復(fù)正常。
本文以建設(shè)智慧高速為背景,將智慧高速網(wǎng)絡(luò)節(jié)點(diǎn)視為邊緣處理器并引入邊緣計(jì)算。在邊緣處理器收集到各種數(shù)據(jù)后,直接在本地通過(guò)邊緣計(jì)算得到處理后的信息,從而大大提高了信息處理的時(shí)效性,也可以有效提高分布式組網(wǎng)傳輸速率,并減少對(duì)通信鏈路帶寬的苛刻要求。本文設(shè)計(jì)了邊緣計(jì)算方案,通過(guò)對(duì)執(zhí)行邊緣計(jì)算任務(wù)的總時(shí)延進(jìn)行監(jiān)控,總時(shí)延的大小分別對(duì)應(yīng)“正常、繁忙、故障”三種工作狀態(tài)模式,按照邊緣計(jì)算方案執(zhí)行任務(wù)均衡分配和調(diào)度。為了保證邊緣計(jì)算層的穩(wěn)定性,當(dāng)故障發(fā)生時(shí),采用自愈調(diào)度方案,云端不直接進(jìn)行干預(yù)。通過(guò)建立工作狀態(tài)模型與實(shí)驗(yàn)仿真驗(yàn)證本文邊緣計(jì)算算法設(shè)計(jì)的合理性與有效性,實(shí)驗(yàn)結(jié)果表明,當(dāng)邊緣處理器發(fā)生故障時(shí),相鄰處理器能夠承接其任務(wù),并且邊緣設(shè)備處理的總時(shí)延可以控制在3 ms以下。