劉子源 胡永慶 楊含 秦廣軍 戴慶龍
摘 要:目前,研究人員著眼于車載邊緣計算(vehicular edge computing,VEC)環(huán)境下高效應用和資源調(diào)度策略的研究,然而,這些應用和策略的實機驗證往往受限于成本和時間,無法快速有效地進行。邊緣/霧計算仿真器如iFogSim2的出現(xiàn)降低了實驗成本,然而,高速移動車輛的連接切換和資源分配需求對邊緣/霧計算仿真器在VEC下應用提出了挑戰(zhàn)。因此,改進了iFogSim2,設計了支持高速移動的VEC環(huán)境仿真器VECSim。集成開源基站數(shù)據(jù)并構(gòu)建車輛軌跡數(shù)據(jù)集,以便研究人員專注于資源分配策略。首先,為了簡化實驗步驟,改進了移動軌跡數(shù)據(jù)解析模塊并適配了微觀交通仿真軟件Simulation of Urban Mobility (SUMO)生成的車輛軌跡數(shù)據(jù)。其次,基于分布式數(shù)據(jù)流模型對VEC下的分布式應用進行建模,并提供了服務遷移基準策略算法。此外,VECSim還引入了時間性能優(yōu)化方法,通過并行化操作,加速仿真事件處理,從而提高了仿真工具的時間性能。實驗表明,相比于iFogSim2中同類的服務遷移算法,提出的服務遷移算法在大規(guī)模機動車軌跡數(shù)據(jù)集驗證下表現(xiàn)出良好的穩(wěn)定性,時間性能優(yōu)化方法在執(zhí)行時間上取得了5.3%的性能提升。代碼開源地址:https://github.com/LiuZi-yuan-CS/VECSim。
關鍵詞:車載邊緣計算;邊緣計算仿真;服務遷移;車聯(lián)網(wǎng);SUMO
中圖分類號:P315.69?? 文獻標志碼:A??? 文章編號:1001-3695(2024)05-028-1480-09
doi: 10.19734/j.issn.1001-3695.2023.09.0429
VECSim: improved iFogSim2 modeling and simulation simulator for vehicular edge computing
Abstract:Currently, researchers are focusing on efficient applications and resource scheduling strategies in vehicular edge computing (VEC) environments, however, the real-world validation of these applications and strategies is often limited by cost and time and cannot be performed quickly and efficiently. The emergence of edge/fog computing simulators such as iFogSim2 reduces the cost of experiments. However, the connection switching and resource allocation requirements of high-speed moving vehicles pose challenges to the application of edge/fog computing simulators under VEC. Therefore, this paper improved iFogSim2 by designing VECSim, a VEC environment simulator that supported high-speed mobility. It integrated open-source base station data and constructed vehicle trajectory datasets so that researchers can focus on resource allocation strategies. Firstly, to simplify the experimental steps, this paper improved the mobile trajectory data parsing module and adapted the vehicle trajectory data generated by Simulation of Urban Mobility (SUMO), a microscopic transportation simulation software. Secondly, this paper modeled distributed applications under VEC based on the distributed data flow model and provided a ser-vice migration benchmark policy algorithm. In addition, VECSim introduced a time-performance optimization method to accele-rate the simulation event processing by parallelizing the operation, which improved the time performance of the simulation tool. Experiments show that compared with similar service migration algorithms in iFogSim2, the proposed service migration algorithm exhibits good stability under the validation of large-scale motor vehicle trajectory dataset, and the time-performance optimization method achieves a 5.3% performance improvement in execution time. Code is available: https://github.com/LiuZi-yuan-CS/VECSim.
Key words:VEC; edge computing simulation; service migration; IoV; SUMO
0 引言
近年來,車聯(lián)網(wǎng)(Internet of Vehicles, IoV)和多接入邊緣計算(multi-access edge computing, MEC)緊密融合,催生了一種新的計算范式——車載邊緣計算(vehicular edge computing, VEC)。VEC通過促進車輛之間的協(xié)作以及車輛與智能交通基礎設施的交互,如在擁堵的交通環(huán)境中車輛間共享交通信息以共同規(guī)劃最佳路徑以減輕交通堵塞,智能交通基礎設施可與車輛實時通信,向車輛提供路況信息、信號燈狀態(tài)等數(shù)據(jù),并同時從車輛收集信息以改進城市交通管理。因此,VEC能夠有效應對因車輛高度機動性所引發(fā)的復雜實時計算問題[1]。目前,廣泛的研究[2~5]聚焦于VEC環(huán)境中的高效應用和資源調(diào)度策略??蓴U展的邊緣計算設備在驗證這些策略方面起著關鍵作用,但高昂的部署成本和復雜的部署流程給研究人員帶來了一系列挑戰(zhàn)和限制[6]。
隨著邊緣/霧計算仿真器的出現(xiàn),降低了研究人員的實驗測試成本。表1對近期聚焦于邊緣/霧計算仿真器的工作進行了總結(jié)。YAFS[7]是一個用于邊緣/霧計算下的仿真工具,其專注于模擬分布式計算環(huán)境中的資源分配、任務調(diào)度和網(wǎng)絡通信等方面的問題。ECSNeT++[8]是基于OMNeT++[9]/INET[10]的邊緣/霧計算仿真工具,模擬了分布式流處理(distributed stream processing, DSP)應用程序在邊緣/霧計算環(huán)境中的執(zhí)行過程,并為DSP應用程序提供了多種配置。上述兩種仿真工具均不支持終端移動。STEP-ONE[11]是對ONE(Opportuni-stic Networking Environment)仿真器[12]的擴展,STEP-ONE繼承了ONE對移動自組織網(wǎng)絡(mobile Ad hoc network, MANET)和機會式網(wǎng)絡仿真的支持,在此基礎上構(gòu)建了支持移動性的邊緣/霧計算仿真環(huán)境,并對真實世界的移動軌跡和基站數(shù)據(jù)集進行了支持。然而,缺乏移動性管理的默認策略和模塊化架構(gòu)的系統(tǒng)建模,使得STEP-ONE仍然存在缺陷。此外,上述三種邊緣/霧計算仿真工具以非CloudSim框架作為核心框架開發(fā),其存在兼容性和擴展性不佳、研究人員的認可度不廣的問題[13]。
CloudSim[14]是由墨爾本大學云計算與分布式(The Cloud Computing and Distributed Systems, CLOUDS)實驗室開發(fā)面向云計算環(huán)境流行仿真框架,它基于SimJava[15]離散事件仿真框架編寫。CloudSim雖然是一款常用的云計算環(huán)境仿真框架,但由于邊緣/霧計算環(huán)境與云計算環(huán)境的相似性,在早期沒有邊緣/霧計算環(huán)境仿真工具時,CloudSim憑借其良好的擴展性和較低的二次開發(fā)成本,成為了邊緣/霧計算研究人員主要使用的仿真工具。隨著霧計算興起,CLOUDS實驗室基于CloudSim的核心,提出了用于霧計算中資源分配、任務調(diào)度和網(wǎng)絡通信問題的iFogSim1[16]。iFogSim1引入了多層級模型,可以模擬多個層次的計算節(jié)點,支持虛擬機和容器的建模,使用戶可以模擬不同級別的資源虛擬化。iFogSim1還允許模擬固定終端設備和邊緣節(jié)點之間的實時通信和數(shù)據(jù)傳輸,以評估通信延遲和網(wǎng)絡擁塞。然而,缺乏移動性支持給研究人員在進行移動場景下的霧計算仿真評估帶來了困難。同時期基于CloudSim提出的EdgeCloudSim[17],也因為缺乏移動性的支持和較簡單的通信環(huán)境建模而表現(xiàn)不佳。此外,在工作流調(diào)度和霧計算結(jié)合領域,F(xiàn)ogWorkflowSim[18]利用了WorkflowSim[19](基于CloudSim專注于云計算工作流調(diào)度的仿真工具)和iFogSim1對工作流調(diào)度和霧計算的計算優(yōu)勢,實現(xiàn)了邊緣/霧計算環(huán)境下的工作流調(diào)度和優(yōu)化仿真,雖然上述工作推動了霧計算仿真領域的領域,但仍然沒有解決移動性支持問題。
盡管iFogSim1等霧計算仿真工具可以完成邊緣計算環(huán)境下的仿真需求,但是,移動性作為MEC最重要的特性亟待仿真工具的支持。Qayyum等人[20]開發(fā)了FogNetSim++,它基于CloudSim和iFogSim1開發(fā),提供了開發(fā)定制移動模型的終端。但FogNetSim++的移動性支持系統(tǒng)與核心仿真引擎耦合過高,因此使用時需要對工具進行過多的修改。Jha等人[21]提出的基于CloudSim的IoTSim-Edge,設計了支持移動場景的邊緣/霧計算仿真工具,針對交通場景,IoTSim-Edge還提供了一個在一條高速公路上車輛使用路側(cè)單元節(jié)點(roadside unit,RSU)協(xié)同通信完成自動駕駛的示例。然而,缺乏城市場景下的移動軌跡數(shù)據(jù)集和模塊化應用建模能力,IoTSim-Edge無法大面積構(gòu)建多車移動對VEC環(huán)境的影響?;趇FogSim的MobFogSim[22]擴展iFogSim組件的基本功能,以支持霧/邊緣計算中的車輛終端移動。然而,MobFogSim的移動支持只停留在處理網(wǎng)關和云數(shù)據(jù)中心層面,而不是分層的邊緣/霧基礎設施。IoTNetSim[23]對iFogSim進行了移動性擴展,可以對不同的物聯(lián)網(wǎng)設備及其細粒度細節(jié)進行建模,還支持物聯(lián)網(wǎng)設備在三維空間中的移動性。然而,它缺乏移動服務遷移的基準策略。SatEdgeSim[24]則基于iFogSim開發(fā)了面向衛(wèi)星移動的邊緣計算環(huán)境,由于衛(wèi)星場景下衛(wèi)星軌道相對固定,缺乏自定義的移動支持。為了彌補上述工作的不足,iFogSim2在iFogSim和MobFogSim的基礎上,設計了分層的MEC計算的架構(gòu)[25],引入了自定義的移動支持、基于分布式應用的服務遷移基準算法以及將微服務概念應用于邊緣節(jié)點。此外,數(shù)據(jù)集的稀缺也構(gòu)成了目前VEC仿真中面臨的挑戰(zhàn),其主要體現(xiàn)在基站數(shù)據(jù)集和微觀交通數(shù)據(jù)的稀疏性。在基站數(shù)據(jù)集方面,目前,存在一些常見的數(shù)據(jù)集,如EUA數(shù)據(jù)集[26]、上海電信數(shù)據(jù)集[27,28]等。它們在一定程度上填補了基站數(shù)據(jù)集的稀疏性。在微觀交通數(shù)據(jù)集方面,主要的解決方案是利用微觀仿真交通軟件Simulation of Urban Mobility (SUMO)[29]來獲取微觀交通數(shù)據(jù)。SUMO是一款開源、微觀、空間連續(xù)和時間離散的微觀交通流仿真平臺。它可以用來模擬大規(guī)模道路網(wǎng)絡上的微觀交通流,支持對不同路網(wǎng)數(shù)據(jù)源文件的解析、不同輸入方式下的車輛路由生成,以及對整個城市交通流量的高性能模擬。
目前,VEC環(huán)境下仿真仍然面臨如下問題:
a)高速移動車輛引起的連接切換和資源分配的模擬需求。
b)由于數(shù)據(jù)隱私性,車輛軌跡數(shù)據(jù)和基站部署數(shù)據(jù)的缺乏限制了仿真實驗。
c)缺乏適用于大規(guī)模移動軌跡數(shù)據(jù)下的服務遷移算法。
本工作以iFogSim系列仿真工具的流行度和擴展性為考量,針對iFogSim2[30]在VEC場景下的仿真存在節(jié)點資源分配方案不合理,移動數(shù)據(jù)解析加載支持不完善,分布式服務遷移算法不適用。因此,本文工作對iFogSim2仿真器進行了改進,設計了面向車載邊緣計算的建模與仿真模擬工具VECSim。VECSim通過模塊的擴展、修改和引入,實現(xiàn)了高速移動車輛引起的連接切換和資源分配的響應。VEC在繼承了iFogSim2對開源基站部署數(shù)據(jù)集成的基礎上,還對現(xiàn)實世界微觀交通數(shù)據(jù)的收集和采樣,并使用微觀交通仿真軟件SUMO[29]構(gòu)建了車輛軌跡數(shù)據(jù)集。這些數(shù)據(jù)集的整合有助于減輕VEC仿真實驗的限制,使研究人員能夠更專注于VEC下的資源分配和調(diào)度策略研究。此外,為了更方便地接收由SUMO仿真輸出的浮動車數(shù)據(jù)(floating car data,F(xiàn)CD),VECSim中的數(shù)據(jù)解析模塊提供了對SUMO生成的浮動車軌跡數(shù)據(jù)的適配和解析支持,進一步簡化了研究人員的實驗流程。VECSim采用了基于分布式數(shù)據(jù)流(distributed data flow, DDF)模型[31]對VEC環(huán)境下常見的分布式應用進行建模。針對VEC場景中分布式應用的服務遷移問題,VECSim提供了相應的基準策略算法。通過使用集成的基站數(shù)據(jù)和車輛軌跡數(shù)據(jù),將該算法與iFogSim2中提供的同類型的基準算法進行了比較。研究結(jié)果顯示,VECSim中提供的服務遷移基準算法在大規(guī)模車輛軌跡數(shù)據(jù)集的驗證下表現(xiàn)出了良好的穩(wěn)定性。此外,對于CloudSim核心框架在處理仿真事件時的效率問題,VECSim引入了一種時間性能優(yōu)化方法,通過設計FutureManager類實現(xiàn)了對Future隊列的并行化操作,加速了仿真事件的處理,從而提高了仿真工具的時間性能。實驗證明,時間性能優(yōu)化方案使得VECSim仿真執(zhí)行時間減少了5.3%。
1 系統(tǒng)設計與實現(xiàn)
針對目前iFogSim2不適合VEC環(huán)境下仿真的問題(即資源分配問題、數(shù)據(jù)解析問題和服務遷移問題),接下來將對引言中提到的iFogSim2在VEC環(huán)境下仿真的功能問題進行詳細解釋并給出解決方案。VECSim的整體架構(gòu)如圖1所示。彩色部分表示對iFogSim2中的組件的擴展與修改。
a)資源分配問題:iFogSim2仿真下的計算節(jié)點的資源分配策略是在仿真初始化階段,將所有車輛在仿真期間所需要占據(jù)的計算節(jié)點資源全部進行分配,這導致了實際上還未開始仿真的車輛擠占了正在仿真車輛所需的計算節(jié)點資源,這一情況的出現(xiàn)導致了仿真與現(xiàn)實世界的事件發(fā)生流程,其次,這會導致用戶錯誤地認為在仿真過程中節(jié)點的資源已被耗盡,他們會修改節(jié)點的資源初始化參數(shù),以確保這些節(jié)點在遷移模塊時有足夠的資源使用,而不考慮策略本身的問題。解決方案:(a)需要對齊CloudSim底層的時間片與數(shù)據(jù)集中的軌跡時間戳;(b)按照數(shù)據(jù)集中每臺車輛開始仿真的時間為其分配計算節(jié)點資源。
b)數(shù)據(jù)解析問題:iFogSim2中的移動數(shù)據(jù)加載實現(xiàn)為一次性加載,數(shù)據(jù)載入后,會將這些數(shù)據(jù)交由核心模塊處理。然而,在初始化階段將移動數(shù)據(jù)一次性加載會出現(xiàn)數(shù)據(jù)量過大導致底層的事件隊列排序時間過長,這是因為一次性加載的移動數(shù)據(jù)需要按照時間戳進行排序,以確保事件按正確的時間順序被處理。隨著數(shù)據(jù)量的增加,排序所需的時間也會相應增加,從而影響了系統(tǒng)的初始化速度。其次,在硬件配置較低的設備上,一次性加載大量數(shù)據(jù)可能會導致內(nèi)存溢出問題。這是因為設備的內(nèi)存資源有限,無法容納所有的移動數(shù)據(jù)。當內(nèi)存不足時,系統(tǒng)會崩潰或性能嚴重下降,從而影響用戶的使用體驗。此外,缺乏對SUMO輸出的FCD適配,使用SUMO仿真的車輛軌跡數(shù)據(jù)需要二次處理。解決方案:(a)實現(xiàn)移動數(shù)據(jù)解析的懶加載;(b)構(gòu)建適配SUMO仿真輸出數(shù)據(jù)格式的組件。
c)服務遷移問題:iFogSim2中的服務遷移算法實現(xiàn)不適用VEC環(huán)境仿真,具體表現(xiàn)在服務遷移過程中,其并未區(qū)分服務實例與車輛的從屬關系,這導致在服務遷移過程中對車輛所屬的服務實例操作混亂,最終導致了仿真的計算結(jié)果錯誤。此外車輛仿真生命周期結(jié)束后,CloudSim核心沒有及時停止對仿真結(jié)束車輛的仿真事件輪詢,導致不必要的運行開銷。解決方案:(a)明確服務實例和車載應用的對應關系;(b)及時分配和回收服務實例所占據(jù)的計算節(jié)點資源;(c)每臺車輛仿真結(jié)束后,CloudSim核心及時停止對結(jié)束仿真車輛的仿真事件輪詢,降低仿真開銷。
本章還將介紹和使用EUA數(shù)據(jù)集[26]和墨爾本市政府提供的2014—2017年的墨爾本市主干道車流統(tǒng)計數(shù)據(jù)(https://data.melbourne.vic.gov.au/explore/dataset/traffic-count-vehicle-classification-2014-2017/information/)在通過數(shù)據(jù)處理后構(gòu)建的車輛軌跡數(shù)據(jù)為例構(gòu)建了墨爾本市中心商務區(qū)的VEC場景,以補充VECSim的設計實現(xiàn)。
1.1 數(shù)據(jù)集介紹
1.1.1 EUA數(shù)據(jù)集
EUA數(shù)據(jù)集收集了來自澳大利亞墨爾本市和悉尼市CBD區(qū)域的基站信息,包含了基站標識、緯度、經(jīng)度、許可區(qū)域、郵政編碼。該數(shù)據(jù)集來源于澳大利亞通信及傳媒管理局。基站可視化數(shù)據(jù)如圖2(a)所示(見電子版)。
1.1.2 車輛軌跡數(shù)據(jù)集
車輛軌跡數(shù)據(jù)集是從墨爾本市政府提供的一組真實世界的交通數(shù)據(jù)中提取的。這組真實世界的交通數(shù)據(jù)記錄了2014—2017年墨爾本市道路每小時通行的汽車數(shù)量,并根據(jù)車輛類別分為13類。
基于墨爾本市政府的統(tǒng)計數(shù)據(jù),本文以來自墨爾本市CBD區(qū)域主干道的數(shù)據(jù)為基準,配合采集來自OpenStreetMap[32]的路網(wǎng)地圖,使用SUMO仿真收集了時長為7天的墨爾本市CBD區(qū)域的私家車軌跡數(shù)據(jù),圖2(b)是隨機選取車輛軌跡數(shù)據(jù)集中的5條軌跡切片的可視化,數(shù)據(jù)處理流程如圖3所示。
1.2 場景構(gòu)建
基于上述兩個數(shù)據(jù)集,本文構(gòu)建一個常見的VEC場景來闡述VECSim的設計與實現(xiàn)。使用三層式架構(gòu)將區(qū)域內(nèi)部的基礎設施分為“控制器層(云層)-固定層(邊緣層)-車輛層”[33],其中EUA數(shù)據(jù)集用于標注邊緣層基站位置并根據(jù)基站的地理分布劃分為12個區(qū)域,其中每個區(qū)域內(nèi)部有一個代理節(jié)點作為區(qū)域內(nèi)的通信節(jié)點負責與上層的云中心節(jié)點進行通信,區(qū)域內(nèi)部的網(wǎng)關節(jié)點與代理節(jié)點直連,同時,網(wǎng)關節(jié)點也會與通信范圍內(nèi)行駛的車輛(由車輛軌跡數(shù)據(jù)集驅(qū)動)進行連接,以保證車載任務和通信能夠在區(qū)域內(nèi)不間斷執(zhí)行?;镜膭澐秩鐖D2(c)所示,其中藍色節(jié)點表示區(qū)域內(nèi)代理節(jié)點,網(wǎng)關節(jié)點用紅色表示(見電子版)。
1.3 核心模塊
VECSim繼承了CloudSim的核心模塊,核心模塊的物理邏輯來自于SimJava框架對于離散事件仿真的建模,其包括以下三個方面:
a)事件定義:描述系統(tǒng)中發(fā)生的事件類型,包括事件的觸發(fā)條件和處理行為。
b)模擬實體:表示仿真系統(tǒng)中的各種實體或代理,這些實體會根據(jù)特定的規(guī)則參與事件和過程。
c)交互過程:描述實體之間的相互作用、消息傳遞、狀態(tài)變化等,通常通過事件來觸發(fā)。
在核心模塊中,使用了三個執(zhí)行單元類(即SimEntity、SimEvent和VM)以及兩個事件隊列類(即Future和Deferred)來對上述物理邏輯進行業(yè)務邏輯的表達。SimEntity類是所有物理設備的父類,它作為執(zhí)行單元的主體元素,在每個時間片下執(zhí)行其相關的SimEvent所表示的仿真事件。在執(zhí)行SimEvent所對應的事件時,來自SimEvent對象派生的任務或資源分配單元的VM類將占用相應SimEntity對象所擁有的資源,同時SimEvent對象可能在這次事件執(zhí)行過程中派生新的SimEvent對象。因此,核心還存在兩個SimEvent隊列(為了保證操作效率,其本質(zhì)是基于紅黑樹的有序集合):Future和Deferred,用于確保事件的執(zhí)行時間順序正確。圖4展示了一次時間片下SimEntity執(zhí)行事件的過程。
其主要流程如下:
a)Future隊列將隊列中執(zhí)行時間為當前時間片的事件(SimEvent實例)發(fā)送給Deferred隊列管理,并將這些已發(fā)送的事件在隊列中刪除。
b)Deferred隊列在接收到來自Future隊列分發(fā)的事件后,將這些事件依次發(fā)送給所屬執(zhí)行SimEntity實例。
c)SimEntity收到來在Deferred隊列分發(fā)事件后,CloudSim依照SimEntity的編號順序依次驅(qū)動所有的SimEntity實例執(zhí)行屬于其自身的待執(zhí)行事件。
d)SimEntity在執(zhí)行事件時,首先會判斷該事件是否與其他SimEntity實例發(fā)生了交互,若發(fā)生交互,則先執(zhí)行交互事件,反之,判斷是否發(fā)生了任務派生。
e)SimEntity將判斷執(zhí)行的SimEvent事件是否觸發(fā)任務派生(任務派生是一種特殊的交互事件,該事件在SimEntity之間發(fā)生,任務的承載單元為VM實例),若觸發(fā),接收任務的SimEntity則執(zhí)行相應任務資源分配請求。
f)SimEntity將判斷執(zhí)行的SimEvent事件是否會派生新的SimEvent事件。如果派生新的事件,則依據(jù)派生事件的執(zhí)行時間選擇交由Future隊列或Deferred隊列管理,并最終完成一次時間片下的事件仿真。
VECSim的核心模塊中除了基于CloudSim框架的iFog-Sim2的核心外,本工作擴展設計了Subject和Observer接口。這兩個接口可以實現(xiàn)時間片監(jiān)控邏輯,對現(xiàn)實世界事件的發(fā)生進行補充建模。由于在現(xiàn)實世界中,絕大多數(shù)車輛只會在駕駛階段或需要服務時請求訪問在線服務,在車輛熄火后或者駕駛員和乘員不需要服務支持時,保持車載服務在線是不合理的。然而,在iFogSim2仿真流程中,其分布式應用的模塊分配策略在仿真初始化階段就執(zhí)行了所有的任務派生事件,這使得本該在其他時間片下執(zhí)行的VM對象(資源或任務)在初始化階段就已經(jīng)被分配給了對應的SimEntity,這顯然是不合理的。為了實現(xiàn)上述邏輯,就需要監(jiān)控CloudSim中的時間片變量,通過將當前時間片與車輛運動軌跡數(shù)據(jù)集中的時間戳進行比較以確認車載服務是否需要離線或確定車輛是否已駛離區(qū)域服務區(qū)(圖2(c)中灰色遮罩區(qū)域)。然而,經(jīng)過多次迭代后的CloudSim核心功能的耦合度較高。直接修改CloudSim核心代碼不符合開放-封閉原則[34]。此外,考慮到VECSim的可擴展性,VECSim引入觀察者模式,設計了Subject和Observer接口。實現(xiàn)了對時間片變量的監(jiān)控,通過這種方式從底層以較少的侵入內(nèi)容實現(xiàn)了資源分配問題中的解決方案。如果想要更細的細粒度變量監(jiān)控或捕獲某些變量的狀態(tài),只需實現(xiàn)上述接口,而不會破壞CloudSim的核心功能。
1.4 物理設備
物理設備模塊用于模擬真實世界的物理設備以及分布式數(shù)據(jù)流的傳輸。在VEC的三層式架構(gòu)中,包括“控制器層(云層)-固定層(邊緣層)-車輛層”,不同類型的節(jié)點都被FogDevice所統(tǒng)一表示。對于車輛層,VECSim進行了高度的抽象,使用FogDevice來表征車輛在VEC環(huán)境中的特性,并將移動控制規(guī)劃交由移動管理模塊和控制器模塊來控制。而終端上的傳感器和執(zhí)行器則分別通過Sensor和Actuator類進行表示。Tuple類則用于表示傳感器-設備、設備-設備和執(zhí)行器-設備之間的數(shù)據(jù)包傳輸。
此外,VECSim擴展了原始的物理設備類方法。對于FogDevice、Sensor和Actuator類,重寫了shutdownEntity方法,結(jié)合2.3節(jié)中CloudSim核心的時間片監(jiān)控方案,以確保當設備不再需要進行仿真時底層核心會將其置為未激活狀態(tài)。在輪詢每一個實體時,底層會跳過未激活狀態(tài)的實體,這一方法與原有的在仿真結(jié)束時一次性停止所有實體設備模擬的邏輯相比,不僅更符合實際運行邏輯,還減少了每個時間片下不必要的仿真開銷。此外,還對這三個類中的VM對象的分配和回收方法進行了相應的補充和校正,以確保在仿真過程中的流程正確性。
1.5 分布式應用
隨著邊緣/霧計算的興起,分布式應用程序已經(jīng)成為了一個關鍵組成部分。這些分布式應用程序不僅能夠以有向圖的形式表示數(shù)據(jù)傳輸關系,還可以作為資源分配策略、服務遷移策略和任務卸載策略的載體[13]。由于VEC中的服務和計算任務具有較強的分布式特征,而車載智能應用也以分布式應用的形式不斷發(fā)展,所以,VECSim繼承了iFogSim2中的分布式應用模型架構(gòu),這使得它能夠輕松測試各種策略以評估性能。在分布式應用模塊中,Application被視為分布式應用,而AppModule則繼承自VM類,不僅表示應用服務中不同功能的模塊,還表示了該模塊在物理設備上所需的資源占用情況。此外,AppEdge用于表示數(shù)據(jù)在AppModule之間的數(shù)據(jù)傳輸流向和數(shù)據(jù)大小,它包括了一個Tuple對象,并記錄了發(fā)送AppModule和接收AppModule的信息。分布式應用模塊提供了相應的接口和實現(xiàn)以輔助用戶設計和創(chuàng)建具體仿真的應用,一旦創(chuàng)建成功,這些應用將由Controller進行統(tǒng)一管理,這種分布式應用程序的建模方法為VE仿真提供了靈活性和可擴展性。
1.6 移動數(shù)據(jù)解析和管理
微觀交通中個體車輛軌跡的隱私性和敏感性導致車輛移動軌跡數(shù)據(jù)在VEC環(huán)境仿真中的稀缺性。因此,VECSim利用SUMO構(gòu)建了符合真實交通場景的車輛移動軌跡數(shù)據(jù),以推動VEC仿真的進行。其輸出的FCD可以記錄每個時間戳下正在執(zhí)行交通仿真車輛的軌跡信息。為了在VECSim中有效使用FCD數(shù)據(jù),VECSim構(gòu)建了數(shù)據(jù)解析模塊DataParser,它將SUMO仿真輸出的FCD數(shù)據(jù)按照車輛唯一編號解析成獨立的CSV格式文件。此外,為了與CloudSim框架核心仿真機制相適配,VECSim還設計了RealTimeLocation類,每個RealTime-Location實例代表某一臺車輛在某個時間步下的坐標信息,并以隊列的形式存儲一組RealTimeLocation實例,以記錄單臺車輛的移動數(shù)據(jù)。
然而,處理大規(guī)模高采樣頻率和高速度的車輛移動軌跡數(shù)據(jù)時,采用全加載模式會導致底層事件隊列排序時間過長和內(nèi)存溢出問題。因此,VECSim對DataParser組件進行了擴展,實現(xiàn)了移動數(shù)據(jù)的懶加載,即只有在需要使用車輛的移動軌跡數(shù)據(jù)時才執(zhí)行數(shù)據(jù)加載操作。DataParser通過讀取每臺車輛的開始仿真時間和結(jié)束仿真時間,并以哈希表的形式存儲車輛生命周期以進行預處理操作。當時間片輪轉(zhuǎn)到某臺車輛的生命周期時,通過懶加載形式完整讀取該車輛的移動數(shù)據(jù),將其轉(zhuǎn)換為一個RealTimeLocation實例隊列,并向CloudSim核心發(fā)送包含了RealTimeLocation實例隊列中第一個RealTimeLocation實例的移動管理事件。然后將這一隊列打包交由Controller管理和控制,在移動事件需要執(zhí)行時再向事件隊列進行發(fā)送,以減少底層事件隊列的排序時間。
1.7 控制與策略
車輛的高移動性會影響網(wǎng)關節(jié)點的計算效率,尤其是在頻繁切換接入節(jié)點時,導致網(wǎng)絡拓撲結(jié)構(gòu)頻繁變化。這就要求應用程序服務從一個計算節(jié)點遷移到另一個節(jié)點,以確保服務質(zhì)量。服務遷移操作取決于以下三個方面。
a)車輛的位置。
b)車輛移動軌跡表或車輛移動的速度和方向,用于計劃或預測下一個遷移節(jié)點。
c)更好的遷移算法來計算最佳遷移路徑,減少遷移時間和延遲。
為了解決VEC環(huán)境下常見的服務遷移問題,在控制與策略模塊中,設計了分布式應用模塊部署策略,以及移動性的服務遷移算法,Controller類實現(xiàn)了Observer接口來監(jiān)控模擬時間片,因此當模擬時間片運行到每臺車輛的模擬時間開始的前一個時間片時,Controller類將從CloudSim核心中收到通知,從DataParser提供的2個關于車輛的生命周期表中找到需要啟動的車輛。同樣,當模擬時間片運行到每臺車輛的模擬時間結(jié)束的后一個時間片時,Controller也會停止需要仿真的車輛。由于這兩個表由哈希表組成,所以查找效率為O(1),這減少了在模擬中尋找等待啟動或銷毀的車輛所需的時間。每次車輛啟動后,Policy類將為車輛的分布式應用模塊進行部署,模塊部署策略在算法1中描述。
模塊部署策略確保了每個分布式應用模塊的正確部署,并且每個車輛設備上的分布式應用模塊記錄也將為后續(xù)由于車輛移動而進行的模塊遷移提供唯一記錄和上下文關系。模塊部署策略需要啟動的模擬車輛名稱列表Vn作為輸入?yún)?shù)。分布式應用模塊部署過程如下(為了方便表示,算法1使用Java中面向?qū)ο蟮乃枷脒M行展示):
算法1 分布式應用模塊部署策略
初始化:在執(zhí)行開始,需要重置上一次運行該流程時使用的中間參數(shù)(第1行)。然后,執(zhí)行getLeafToRootPaths方法計算每輛車到云節(jié)點的多跳通信鏈路,并用P記錄(第2行)。
模塊預分配:在這個階段,它將遍歷P中的每個多跳通信鏈路p,然后,分布式應用程序模塊將在p中的不同設備上進行分配(第3~5行)。模塊部署規(guī)則是根據(jù)設備是否具有相應的承載能力放在車輛、網(wǎng)關節(jié)點、代理節(jié)點和云節(jié)點上。
模塊部署:上一階段分配的模塊將在該階段生成模塊實例,并將其放置在相應的物理設備上。遍歷P中的每一個多跳通信鏈路p,vid記錄每個多跳通信鏈路p中的車輛唯一標識(第7行)。為了獲得模組和設備之間的對應關系,還需要迭代p和在預分配階段分配給did(多跳通信鏈路p上迭代的節(jié)點標識)的模組列表M(第9行)。接下來,為設備did部署模塊模組實例并記錄模組實例和部署設備的映射關系(第11、12行)。最后,記錄每個車輛的分布式應用程序模塊的部署關系(第15行)。
算法分析:分布式應用模塊部署策略的主要計算操作時間集中在第6~16行,因此三個循環(huán)嵌套帶來O(P×p×M)的時間代價,其中P與當前時間片下需要啟動仿真的車輛數(shù)相關,p與區(qū)域內(nèi)的節(jié)點層數(shù)相關,M與分布式應用模組的數(shù)量相關,因此具有多項式復雜度。
當車輛開始仿真,車輛移動驅(qū)使車輛不斷切換與其連接的網(wǎng)關節(jié)點,產(chǎn)生了服務遷移需求,通過移動管理和服務遷移算法選擇最佳的接入網(wǎng)關節(jié)點以獲得最佳延遲代價并保證服務質(zhì)量。在每次節(jié)點切換時,需要將分布式應用模塊從原網(wǎng)關節(jié)點(遷出節(jié)點)遷移到新網(wǎng)關節(jié)點(遷入節(jié)點)這也意味著需要釋放遷移節(jié)點中分布式應用模塊占用的資源,并將遷移節(jié)點的資源分配給即將到來的分布式應用模塊。Controller類中的移動管理和服務遷移算法實現(xiàn)了車輛在移動過程中切換網(wǎng)關節(jié)點和遷移模塊的過程。該程序以車輛m和SimEvent觸發(fā)的時間戳t為輸入?yún)?shù)(第1行),其流程如下(為了方便表示,算法2使用Java中面向?qū)ο蟮乃枷脒M行展示)。
初始化:在該階段,算法2執(zhí)行了移動管理必要的初始化。LH和DP包含移動管理所需的必要計算函數(shù),并且存儲車輛移動軌跡的數(shù)據(jù)(第1、2行)。RF是一個參考對象,包含用于數(shù)據(jù)讀取和移動管理的靜態(tài)參數(shù)(第3行)。nextRTL是m的下一時間步下的軌跡數(shù)據(jù),當模擬時間片切換時,DP會自動讀取該數(shù)據(jù)(第5行)。P是上文提到的分布式應用模塊部署策略,它記錄模塊實例和部署設備之間的映射關系,以確保移動管理前后的數(shù)據(jù)一致性,并避免模擬中出現(xiàn)異常(第5行)。pold和G記錄當前m接入的網(wǎng)關節(jié)點(遷出節(jié)點)和所有網(wǎng)關節(jié)點的列表(第6、7行)。Dprev是上一次移動時m與pold之間的距離,該距離用于幫助m找到新接入的網(wǎng)關節(jié)點(遷入節(jié)點)(第8行)。
尋找遷入節(jié)點:算法初始化后,由于m的本次移動,需要開始尋找連接到m的遷入節(jié)點pnew。對G進行迭代以計算連接到每個網(wǎng)關和車輛的距離d(第9、10行)。將d與Dprev和網(wǎng)關節(jié)點的通信范圍(為了簡便計算,所有的網(wǎng)關節(jié)點的通信范圍是相等的)進行比較,以尋找遷入節(jié)點pnew(第11~15行)。
模塊遷移:如果pold≠pnew,則意味著應該執(zhí)行模塊遷移。首先,找到部署在pold上且屬于m的分布式應用程序模塊列表Lmi(第17行)。然后,確定pold和pnew之間的傳輸路徑。它將找到一個直接或間接連接pold和pnew的公共節(jié)點a(第18行),從pold到a和a到pnew的多跳通信鏈路構(gòu)建了應用模塊的遷移路徑。最后,迭代Lmi,pold發(fā)送需要遷移的應用模塊并釋放占用的資源,pnew則接收pold發(fā)送的應用模塊并為其分配計算資源。同時,內(nèi)置函數(shù)將計算并記錄此次遷移成本(第19~22行)。
更新狀態(tài):應用模塊遷移后,m接入到pnew(第23行)。
通知模擬引擎:經(jīng)過以上4個階段,這次m的移動性管理已經(jīng)基本完成。如果車輛存在下一次的移動,將nextRTL和事件類別Tag以事件形式發(fā)送給底層引擎,以建立m的下一次移動管理和服務遷移(第26行)。
算法2 移動管理和服務遷移算法
算法分析:算法2是VECSim中移動管理和服務遷移算法。與iFogSim2中的同類算法相比,算法2解決了節(jié)點分配給遷出模塊的資源沒有釋放的問題,在iFogSim2中由于遷出模塊的資源沒有釋放,并且隨著模擬的進行,來自其他車輛的分布式應用模塊可能將繼續(xù)遷入到同一節(jié)點中并占用資源。然而,節(jié)點未能釋放遷出模塊占用的資源,最終會導致節(jié)點沒有可用資源分配的情況。通過完善服務實例和車載應用的對應關系,在車輛移動而產(chǎn)生的服務遷移時及時分配和回收服務實例所占據(jù)的計算節(jié)點資源,算法2有效解決了上述問題。算法2的第9~15行,存在O(G)次迭代,其中G表示所有網(wǎng)關節(jié)點數(shù)量。對于尋找公共節(jié)點a的第18行,本質(zhì)是在查找兩個葉子節(jié)點的最近共同祖先,因此,時間代價為O(|Paold|+|Panew|),其含義是從Pold到a的多跳通信鏈路(表示為|Paold|)和從Pnew到a的多跳通信鏈路(表示為|Panew|)距離之和。對于第19行需要遷移的模塊迭代,其消耗是O(Lmi),Lmi是待遷移模塊列表。由此可以得出,算法2以多項式時間代價執(zhí)行移動管理和服務遷移算法。
2 仿真時間性能優(yōu)化
2.1 仿真性能限制分析
在第1.3節(jié)中,已經(jīng)詳細闡述了CloudSim核心框架如何使用Future和Deferred隊列來確保仿真事件的順序執(zhí)行。然而,這種控制流程對于仿真的時間性能并不是十分友好。在執(zhí)行過程中,F(xiàn)uture隊列需要頻繁執(zhí)行刪除操作,即刪除已經(jīng)分發(fā)給Deferred隊列的SimEvent實例,并且需要插入執(zhí)行時間不在當前時間片下的派生事件SimEvent實例。盡管,紅黑樹結(jié)構(gòu)已經(jīng)將對樹插入、刪除操作的時間復雜度控制在O(log n),然而,大量的插入和刪除操作所帶來的時間代價極為龐大。此外,CloudSim的仿真流程是串行的,這意味著必須等待大量的刪除和插入操作完成后,仿真才會繼續(xù)進行。根據(jù)實際觀察和流程分析,在一次時間片下的仿真過程中,大約有80%的派生事件都需要被插入到Future隊列中。值得注意的是,派生事件插入Future隊列的這一過程并不會影響一次時間片下仿真的順序執(zhí)行。這在一定程度上對仿真執(zhí)行效率產(chǎn)生了一定的影響。
2.2 時間性能優(yōu)化設計
為了提高仿真的時間性能,VECSim設計了一種時間性能優(yōu)化方法,在核心模塊中引入了FutureManager。這一改進使得新的派生事件插入Future隊列的操作可以并行進行。Future-Manager是Future類的高級封裝,提供了Future類所有方法的高級形式,以確保在并發(fā)運行期間的數(shù)據(jù)同步。在Future-Manager類中,有兩個緩沖區(qū)空間,用于記錄需要插入到Future類或從Future類中刪除的事件。此外,設計了兩個子線程,分別是AddThread和DeleteThread,它們負責監(jiān)視這兩個緩沖區(qū)空間,通過判斷緩存區(qū)是否已填滿。一旦緩沖區(qū)填滿,它們會執(zhí)行向Future類插入事件或從Future類刪除事件的操作。這一并行化的改進有助于提高仿真的執(zhí)行效率,如圖5所示。
3 仿真實驗與結(jié)果分析
在本章中將采用一個常見的VEC案例來驗證VECSim對VEC環(huán)境的支持。車載智能語音助手是一種常見的車載功能,其允許駕駛員或乘員以自然語言的方式與車載智能系統(tǒng)溝通,實現(xiàn)操作車輛的功能設備或控制車載應用[35]。本案例將使用1.1節(jié)提及的EUA數(shù)據(jù)集和車輛軌跡數(shù)據(jù)集以確保實驗仿真的真實性和可靠性。案例實施后,本文對使用能耗和網(wǎng)絡使用量進行了評估。能耗的計算是基于節(jié)點空閑和繁忙功率使用情況而確定的,網(wǎng)絡使用量是基于模擬期間內(nèi)數(shù)據(jù)在整體區(qū)域網(wǎng)絡內(nèi)傳播的數(shù)據(jù)量來計算的。該實驗仿真以相同的參數(shù)在iFogSim2上運行了這個案例,并將結(jié)果進行了比較。結(jié)果表明,在大規(guī)模的機動車軌跡數(shù)據(jù)集驗證下VECSim具有良好的穩(wěn)定性表現(xiàn)。
3.1 車載智能語音助手應用模型
車載智能語音助手通過理解自然語言形式的命令,而無須依賴預定義的關鍵詞進行用戶培訓。然而,這種形式需要更多的計算資源來處理語音命令,而且語音指令處理在VEC場景下是一種可卸載的終端任務[36]。因此,考慮網(wǎng)關節(jié)點上放置語音命令處理模塊來處理用戶的語音命令,使用代理節(jié)點作為服務遷移的中繼站是可行的方案。
車載智能語音助手被分為三個模塊,為了可視化符合分布式應用程序的架構(gòu)形式,使用有向無環(huán)圖來表示車載智能語音助手的應用程序模型,如圖6所示。其模塊的組成如下。
a)收發(fā)模塊:收發(fā)模塊部署在車輛上,用于接收來自麥克風(傳感器)的數(shù)字聲音信號,該信號通過車輛的無線通信設備發(fā)送到位于RSU(網(wǎng)關節(jié)點)上的聲音命令處理模塊。同時,它還負責接收聲音命令處理模塊解析處理后的執(zhí)行指令,這些執(zhí)行指令由收發(fā)器模塊接收,然后傳輸?shù)杰囕v上的命令觸發(fā)器(執(zhí)行器),并執(zhí)行相應的指令。
b)語音命令處理模塊:語音命令處理模塊部署在RSU上,語音命令處理模型是車載智能語音助手應用模型中的主要計算模塊,它包括一個人工智能(AI)模型,該模型通過實現(xiàn)降噪、語音識別、自然語言處理和指令匹配,將語音命令轉(zhuǎn)換為機器可理解的執(zhí)行命令。此外,語音命令處理模塊在轉(zhuǎn)換過程中收集中間數(shù)據(jù),中間數(shù)據(jù)經(jīng)過數(shù)據(jù)脫敏后將轉(zhuǎn)換為連續(xù)學習數(shù)據(jù),使位于云節(jié)點上的語音識別優(yōu)化模塊能夠通過不斷優(yōu)化AI模型來提高服務質(zhì)量。
c)語音識別優(yōu)化模塊:語音識別優(yōu)化單元接收來自不同RSU中的語音命令處理模塊的數(shù)據(jù)。它通過持續(xù)學習技術對人工智能模型進行了周期性優(yōu)化,以提高服務質(zhì)量。它由于延遲不敏感,可以放置在云節(jié)點上。
3.2 仿真環(huán)境和參數(shù)設置
仿真環(huán)境包括兩部分數(shù)據(jù)集的導入。EUA數(shù)據(jù)集用于標記網(wǎng)關節(jié)點和代理節(jié)點位置,依照第2.2節(jié)提到的基站劃分方式,在墨爾本中央商務區(qū)設置了118個RSU(網(wǎng)關節(jié)點)。這些RSU被劃分為12個區(qū)域,每個區(qū)域設置1個代理節(jié)點。
此外,代理節(jié)點負責云集群和所屬區(qū)域內(nèi)網(wǎng)關節(jié)點的通信與模塊轉(zhuǎn)發(fā)的中繼站功能,共12個代理節(jié)點。此外,在墨爾本中央商務區(qū)設置云集群。RSU可以通過其塊中的代理節(jié)點與云集群進行交互。在車輛軌跡數(shù)據(jù)集中,選擇了100和340條車輛軌跡(仿真時長為5 790 s和11 640 s)來測試移動性對模塊和服務遷移的影響。同樣地,iFogSim2中使用了相同的參數(shù)設置,仿真的參數(shù)如表2和3所示。實驗在一臺操作系統(tǒng)為Ubuntu 20.04,配備16 GB RAM,AMD 5900x@3.70 GHz CPU的計算機上進行。
功率模型和能耗計算公式為
P=Idle+(Busy-Idle)×utilization(1)
E=P×(Tnow-Tlast)(2)
式(1)中:Idle表示為閑置功率,Busy表示為忙時功率,utilization為利用率;
式(2)中:P為(1)中的功率,(Tnow-Tlast)表示為以功率P持續(xù)的時間。
3.3 仿真結(jié)果分析
圖7展示了顯示兩種車輛規(guī)模仿真實驗下代理節(jié)點和網(wǎng)關節(jié)點的能耗對比。表4展示兩種車輛規(guī)模實驗下的網(wǎng)絡使用量對比。
在模型設計環(huán)節(jié),代理節(jié)點的主要職責是維護通信功能,負責所在區(qū)域內(nèi)網(wǎng)關節(jié)點與云集群之間的通信,不涉及模組的部署任務和計算任務。代理節(jié)點在仿真期間以閑置功率運行,其能耗計算基于代理節(jié)點的運行時間和功耗。因此,代理節(jié)點的最低能耗可計算為333(W)×5790(s)=1928070(J)。這個值是每個代理節(jié)點的最低能耗。然而,在iFogSim2的模擬中,每個代理節(jié)點的能耗低于該值。這表明iFogSim2在代理節(jié)點方面的能耗模擬存在異常。同時,網(wǎng)關節(jié)點執(zhí)行了語音指令處理模塊的部署和計算任務以及模塊的收發(fā)任務。因此,網(wǎng)關節(jié)點的能耗應該根據(jù)工作負載在忙時功率和閑置功率之間波動進行計算。然而,iFogSim2的統(tǒng)計結(jié)果表明,有30個網(wǎng)關節(jié)點的能耗為969 000(J),低于最低網(wǎng)關節(jié)點能耗的應計算值(170(W)×5790(s)=984300(J))。在VECSim的仿真中,代理節(jié)點和網(wǎng)關節(jié)點的能耗數(shù)值統(tǒng)計正常。經(jīng)過檢查iFogSim2和VECSim的執(zhí)行日志,發(fā)現(xiàn)iFogSim2在仿真的4 551 s后不再執(zhí)行任何操作,包括分布式應用模組部署、移動管理和服務遷移等操作,而VECSim則一直保持正常執(zhí)行。這解釋了表3中iFogSim2網(wǎng)絡在100臺車輛情況下使用的數(shù)據(jù)量低于VECSim統(tǒng)計數(shù)據(jù)的原因。
隨著車輛數(shù)量的增加,在引入了340輛車輛的更大規(guī)模仿真中,筆者依然觀察到了iFogSim2仿真結(jié)果中的能耗異常。在圖7(c)中,iFogSim2模擬的代理節(jié)點的能耗為3 862 800(J),低于代理節(jié)點的最低能耗(333(W)×11640(s)=3876120(J))。同樣,圖7(d)中出現(xiàn)了異常現(xiàn)象,有109個網(wǎng)關節(jié)點的能耗為1 972 000.0(J),低于網(wǎng)關節(jié)點的最低能耗(170(W)×11640(s)=1977800(J))。值得注意的是,隨著車輛規(guī)模的增加,仿真的持續(xù)時間和模塊遷移次數(shù)也增加,導致網(wǎng)絡使用量上升。然而,在車輛規(guī)模增大的情況下,iFogSim2的網(wǎng)絡使用量統(tǒng)計出現(xiàn)下降的異?,F(xiàn)象。此外,iFogSim2在運行日志文件中顯示,仿真在經(jīng)過6 511 s后不再執(zhí)行任何操作,包括模組部署、移動管理和服務遷移等。相反,VECSim的實驗結(jié)果仍然保持了原有設計的連續(xù)性和穩(wěn)定性。在不同車輛規(guī)模的實驗中,VECSim通過其分布式應用模塊部署策略、移動管理和服務遷移表現(xiàn)出了良好的穩(wěn)定性。
總的來說,VECSim相對于iFogSim2具有以下優(yōu)勢:VECSim提供了更準確的代理節(jié)點和網(wǎng)關節(jié)點的能耗模擬,可以更好地反映實際情況。VECSim在仿真中保持了模擬的連續(xù)性,不會在仿真的中途停止操作,確保了數(shù)據(jù)的準確性和完整性。其次,VECSim相對于iFogSim2在穩(wěn)定性方面具有明顯的優(yōu)勢,尤其在處理大規(guī)模車輛移動場景下,VECSim的仿真結(jié)果保持了一致性,未出現(xiàn)異常現(xiàn)象。這些優(yōu)勢使VECSim成為更可靠的仿真工具,用于研究移動邊緣車聯(lián)網(wǎng)環(huán)境中的能耗和性能表現(xiàn),使其成為研究車載邊緣計算網(wǎng)絡性能和能耗的可信賴工具。
4 仿真時間性能優(yōu)化實驗和結(jié)果分析
在第3章中,為了提高仿真時間性能,VECSim對CloudSim核心進行了性能優(yōu)化,實現(xiàn)了仿真過程中對Future隊列插入和刪除的并行操作。為了驗證優(yōu)化設計的有效性,本章設計了一個實驗來對其進行驗證。
4.1 實驗環(huán)境和參數(shù)設置
在驗證實驗中,VECSim使用了第3.2節(jié)中仿真參數(shù)設置,車輛數(shù)為100臺,實驗在一臺操作系統(tǒng)為Ubuntu 20.04,配備16 GB RAM,AMD 5900x@3.70 GHz CPU的計算機上進行。
4.2 結(jié)果分析
表5呈現(xiàn)了在使用FutureManager進行并行操作時,在相同仿真實驗設置下的仿真執(zhí)行時間對比。與串行操作相比,采用并行處理Future隊列中事件的插入和刪除操作,使得仿真事件的執(zhí)行時間減少了5.3%。然而,需要指出的是,由于引入了多線程技術,F(xiàn)utureManager中的兩個緩存區(qū)被視為臨界資源。當緩存區(qū)已滿,F(xiàn)utureManager需要執(zhí)行插入和刪除操作時,主線程上的核心模塊無法同時訪問緩存區(qū),這仍然帶來一定的時間開銷。盡管存在一定的時間開銷,這一結(jié)果證明了采用并行操作來處理Future隊列中的事件插入和刪除操作,依然可以有效地提升仿真工具的時間性能。這一改進對于減小仿真執(zhí)行時間和提高工具的效率具有積極的影響,特別是在處理大規(guī)模仿真任務和復雜仿真場景時,將會更加顯著地體現(xiàn)其優(yōu)勢。
5 結(jié)束語
本文基于iFogSim2改進并提出了VECSim仿真器,用于車載邊緣計算的建模與仿真模擬。VECSim集成了來自真實世界的采樣得到的車輛移動軌跡數(shù)據(jù)集并支持解析SUMO輸出的FCD,與EUA數(shù)據(jù)集可以快速構(gòu)建VEC實驗場景。提出了適用于VEC特征的分布式應用模塊部署策略與移動管理和服務遷移策略。對于CloudSim核心框架在處理仿真事件時的效率問題,VECSim引入了一種時間性能優(yōu)化方法,對Future隊列采取并行操作。實驗仿真結(jié)果表明,與iFogSim2中同類策略相比,VECSim所提供的服務遷移策略在大規(guī)模高采樣頻率高速的車輛移動場景下具有良好的穩(wěn)定性表現(xiàn)。時間性能優(yōu)化方案使得VECSim仿真執(zhí)行時間減少了5.3%。未來,VECSim將移植到Python平臺上以實現(xiàn)VEC仿真與機器學習領域的結(jié)合與應用。
參考文獻:
[1]李智勇,王琦,陳一凡,等. 車輛邊緣計算環(huán)境下任務卸載研究綜述 [J]. 計算機學報,2021,44(5): 963-982. (Li Zhiyong,Wang Qi,Chen Yifan,et al. A survey on task off-loading research in vehicular edge computing [J]. Chinese Journal of Computers,2021,44(5): 963-982.)
[2]Subbaraj S,Thiyagarajan R. Performance oriented task-resource mapping and scheduling in fog computing environment [J]. Cognitive Systems Research,2021,70: 40-50.
[3]Fellir F,El Attar A,Nafil K,et al. A multi-agent based model for task scheduling in cloud-fog computing platform [C]// Proc of IEEE International Conference on Informatics,IoT,and Enabling Technologies.Piscataway,NJ:IEEE Press,2020.
[4]韋睿,祝長鴻,王怡,等. 基于軟件定義網(wǎng)絡和移動邊緣計算的車聯(lián)網(wǎng)高效任務卸載方案 [J]. 計算機應用研究,2023,40(6): 1817-1824. (Wei Rui,Zhu Changhong,Wang Yi,et al. Efficient task offloading scheme of Internet of Vehicles based on software defined network and mobile edge computing [J]. Application Research of Computers,2023,40(6): 1817-1824.)
[5]邸劍,薛林,蔡震. 基于網(wǎng)聯(lián)車多跳傳輸?shù)囊苿舆吘売嬎阈遁d [J]. 計算機應用研究,2021,38(4): 1145-1148,1157. (Di Jian,Xue Lin,Cai Zhen. Mobile edge computing offloading based on multi-hop transmission of connected vehicles [J]. Application Research of Computers,2021,38(4): 1145-1148,1157.)
[6]Meneguette R,De Grande R,Ueyama J,et al. Vehicular edge computing: architecture,resource management,security,and challenges [J]. ACM Computing Surveys,2023,55(1): 1-46.
[7]Lera I,Guerrero C,Juiz C. YAFS: a simulator for IoT scenarios in fog computing [J]. IEEE Access,2019,7: 91745-91758.
[8]Amarasinghe G,De Assuno M D,Harwood A,et al. ECSNeT++: a simulator for distributed stream processing on edge and cloud environments [J]. Future Generation Computer Systems,2020,111: 401-418.
[9]Varga A,Wehrle K,Güne瘙塂 M,et al. OMNeT+ [M]// Modeling and Tools for Network Simulation. Berlin: Springer,2010: 35-59.
[10]Mészáros L,Varga A,Kirsche M. INET framework [M]// Recent Advances in Network Simulation,EAI/Springer Innovations in Communication and Computing. 2019: 55-106.
[11]Mass J,Srirama S N,Chang C. STEP-ONE: simulated testbed for edge-fog processes based on the opportunistic network environment simulator [J]. Journal of Systems and Software,2020,166: 110587.
[12]Kernen A,Ott J,Krkkinen T. The ONE simulator for DTN protocol evaluation [C]// Proc of the 2nd International ICST Conference on Simulation Tools and Techniques. 2009.
[13]Jalali K A Z,Mansouri N,Khalouie M. Task scheduling in fog environment—challenges,tools & methodologies: a review [J]. Compu-ter Science Review,2023,48: 100550.
[14]Calheiros R N,Ranjan R,Beloglazov A,et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms [M]// Software: Practice and Experience.2011: 23-50.
[15]Kreutzer W,Hopkins J,Van Mierlo M. SimJava—a framework for modeling queueing networks in Java [C]// Proc of the 29th Confe-rence on Winter Simulation. 1997.
[16]Gupta H,Dastjerdi A V,Ghosh S K,et al. iFogSim: a toolkit for mo-deling and simulation of resource management techniques in the Internet of Things,edge and fog computing environments [M]// Software: Practice and Experience. [S.l.]: Wiley,2017: 1275-1296.
[17]Sonmez C,Ozgovde A,Ersoy C. EdgeCloudSim: an environment for performance evaluation of edge computing systems [C]// Proc of the 2nd International Conference on Fog and Mobile Edge Computing. 2017.
[18]Liu Xiao,F(xiàn)an Lingmin,Xu Jia,et al. FogWorkflowSim: an automated simulation toolkit for workflow performance evaluation in fog computing [C]// Proc of the 34th IEEE/ACM International Conference on Automated Software Engineering. 2019.
[19]Chen Weiwei,Deelman E. WorkflowSim: a toolkit for simulating scientific workflows in distributed environments [C]// Proc of the 8th IEEE International Conference on E-Science. Piscataway,NJ:IEEE Press,2012.
[20]Qayyum T,Malik A W,Khan K M A,et al. FogNetSim+: a toolkit for modeling and simulation of distributed fog environment [J]. IEEE Access,2018,6: 63570-63583.
[21]Jha D,Alwasel K,Alshoshan A,et al. IoTSim-Edge: a simulation framework for modeling the behaviour of IoT and edge computing environments [EB/OL]. (2019). https://arxiv.org/abs/1910.03026.
[22]Puliafito C,Gonalves D M,Lopes M M,et al. MobFogSim: simulation of mobility and migration for fog computing [J]. Simulation Modelling Practice and Theory,2020,101: 102062.
[23]Salama M,Elkhatib Y,Blair G. IoTNetSim: a modelling and simulation platform for end-to-end IoT services and networking [C]// Proc of the 12th IEEE/ACM International Conference on Utility and Cloud Computing. 2019.
[24]Wei Junyong,Cao Suzhi,Pan Siyan,et al. SatEdgeSim: a toolkit for modeling and simulation of performance evaluation in satellite edge computing environments [C]// Proc of the 12th International Confe-rence on Communication Software and Networks. 2020.
[25]Luo Quyuan,Hu Shihong,Li Changle,et al. Resource scheduling in edge computing: a survey [J]. IEEE Communications Surveys & Tutorials,2021,23(4): 2131-2165.
[26]Lai P,He Qiang,Abdelrazek M,et al. Optimal edge user allocation in edge computing with variable sized vector bin packing [M]// Service-Oriented Computing,Lecture Notes in Computer Science. 2018: 230-245.
[27]Li Yuanzhe,Zhou Ao,Ma Xiao,et al. Profit-aware edge server placement [J]. IEEE Internet of Things Journal,2022,9(1): 55-67.
[28]Wang Shangguang,Guo Yan,Zhang Ning,et al. Delay-aware microservice coordination in mobile edge computing: a reinforcement learning approach [J]. IEEE Trans on Mobile Computing,2021,20(3): 939-951.
[29]Lopez P A,Wiessner E,Behrisch M,et al. Microscopic traffic simulation using SUMO [C]// Proc of the 21st International Conference on Intelligent Transportation Systems. 2018.
[30]Mahmud R,Pallewatta S,Goudarzi M,et al. IFogSim2: an extended iFogSim simulator for mobility,clustering,and microservice management in edge and fog computing environments [J]. Journal of Systems and Software,2022,190: 111351.
[31]Dean J,Ghemawat S. MapReduce: simplified data processing on large clusters [J]. Communications of the ACM,2008,51(1): 107-113.
[32]Yair G A,Lu Pengyuan,Li Hao,et al. OpenStreetMap,beyond just data: the academic track at state of the map 2022 [C]//Proc of Map. 2022.
[33]Liu Lei,Chen Chen,Pei Qingqi,et al. Vehicular edge computing and networking: a survey [J]. Mobile Networks and Applications,2021,26(3): 1145-1168.
[34]Martin R C. The open-closed principle [J]. More C+Gems,1996,19(96): 9.
[35]Murali P K,Kaboli M,Dahiya R. Intelligent in-vehicle interaction technologies [M]// Advanced Intelligent Systems. [S.l.]: Wiley,2022: 2100122.
[36]張依琳,梁玉珠,尹沐君,等. 移動邊緣計算中計算卸載方案研究綜述 [J]. 計算機學報,2021,44(12): 2406-2430. (Zhang Yilin,Liang Yuzhu,Yin Mujun,et al. Survey on the methods of computation offloading in mobile edge computing [J]. Chinese Journal of Computers,2021,44(12): 2406-2430.)