?

云邊協同計算架構下大規模工廠接入的任務調度

2021-09-13 03:26滿君豐趙龍乾李倩倩
計算機集成制造系統 2021年8期
關鍵詞:云邊任務調度云端

滿君豐,趙龍乾,彭 成,李倩倩

(湖南工業大學 計算機學院,湖南 株洲 412007)

0 引言

由李伯虎院士在云制造基礎上提出的智慧云制造[1],基于泛在網絡,以人為中心,借助信息化制造技術和智能科學技術等深度融合的數字化、網絡化、智能化技術手段,使用戶能夠通過云制造服務平臺隨時隨地按需獲取制造資源與能力,進而智慧地完成制造全生命周期的各類活動?!吨袊圃?025》指出,智慧云制造的總體目標是實現制造過程的智能、高效、協同、綠色、安全[2]。

工業云與邊緣計算是智慧云制造的關鍵技術之一,是時下熱門的網絡范例,涉及異構工業環境中的無縫連接,其通過將分布式工業設備聚集到一個公共資源池并調動這些工業設備來進行本地化生產制造。在工業環境下的云邊協同計算中,信息流是信息動態交換的過程,其通過工業設備與網絡、工業設備與基礎設施、工業設備與工業設備之間信息的動態交互,實現協作數據傳感和信息分析[3-4]。

傳統的工業云方案缺乏高效的任務調度方法,難以適配先進工業生產過程中海量數據的實時分析和實時控制。任務調度亦是邊緣計算系統中的重要問題之一,其目的是獲得最佳的系統吞吐量和計算性能。傳統的調度算法包括啟發式調度算法、元啟發式調度算法等,在啟發式調度算法方面,最小完工時間調度算法雖然顯著提高了總任務的完成率,但是調度器的計算資源和任務信息需要很高的維護成本;Min-min調度算法主要用于執行時間短的任務,但是容易造成資源負載不均衡。啟發式調度算法沒有考慮不同應用場景下的實際約束問題,其為啟發算法的改進,是隨機算法與局部搜索算法結合的產物,旨在發現最優或相對最優的解決方案。粒子群算法是一類典型的元啟發算法,該算法在云計算任務調度領域可以獲得更好的效果,主要缺點是不考慮用戶預算;遺傳算法根據優勝劣汰的規則,通過不斷迭代產生新的最優解的近似解,但是在處理大規模組合問題時的效率較低。列表調度算法是異構系統下經典的調度算法,包括靜態調度算法和動態調度算法。靜態調度算法根據任務之間的優先級構造相應的調度列表,Sequential算法是典型的靜態調度算法;動態調度算法根據處理器的使用情況和任務之間的依賴關系動態構造相應的調度列表,處理器關鍵路徑(Critical Path on Processors, CPOP)算法是典型的動態調度算法。傳統調度算法在高維度、高精度數據的處理和分析方面具有局限性,而云制造場景下的任務具有多種類、多模態、小批量等特征,因此傳統調度算法難以解決云制造場景下的問題。以鈑金行業為例,生產車間專注于鈑金零件的自動化切割、沖孔、成形、剪切和嵌套過程,其生產隊列中有20~200個作業可供調度,需要在工作鏈的上下游進行多站點協同和多任務并行,從而實現工廠車間的智能化集成應用。在未來的十年里,越來越多的制造企業將采用工業4.0模式實現全球協同化制造,而隨著制造過程任務種類和任務規模的不斷增加,亟需研究面向云邊協同計算架構的大規模工廠接入任務調度方法,以有效提高任務執行效率,獲得較好的云邊協同效果[5-10]。

1 國內外研究現狀及分析

近年來,人工智能在制造、交通、金融、醫藥等領域得到廣泛發展。然而,隨著機器學習和深度學習技術在云制造、無人駕駛等關鍵應用領域的深度滲透,國內外學者開始探索先進的云邊協同方法來保證交互的實時性、精準性和高效性。HUANG等[11]提出利用最佳剩余空間比來完成云邊協同任務,利用權衡模型將調度問題簡化為線性規劃問題,通過線性規劃松弛給出了一個基于極值點求解的調度方案;WANG等[12]提出一種基于雙圖模型的動態調度算法(Dynamic Tasks Scheduling algorithm based on Weighted Bi-graph model, DTSWB),將調度問題轉化為最優化雙圖匹配問題,建立了整數規劃模型,通過任務卸載、信息收集、任務分配和資源匹配4步實現了高效的任務調度。然而,上述方案往往只適用于求解整數線性規劃問題,其要求所有或部分決策變量都必須假定為非負整數,但是在實際的工業領域中,該解決方案過于理想,通過四舍五入得到的整數解會產生較大誤差。針對上述問題,JIAN等[13]提出一種改進的混沌蝙蝠群算法,解決了傳統的云計算調度算法在任務復雜度與系統性能之間的平衡問題,通過引入混沌因子和二階震蕩機制,提高了系統中動態參數的更新速度;WANG等[14]提出一種基于蟻群優化算法的多任務協同調度算法(Cooperative Multi-tasks Scheduling based on Ant Colony Optimization algorithm, CMSACO),算法考慮了任務利潤、任務期限、任務依賴性、節點異構性和負載均衡等因素,通過將調度問題轉化為約束優化問題找到一個可行解。然而蟻群算法涉及的參數較多,容易使初始值選取不當,同時采用單一的蟻群算法容易陷入局部最優,在處理大規模組合問題時效率較低,不能很好地解決連續問題,而且在選取信息素等相關參數時大多憑借個人經驗,缺乏充分的理論依據。由于自身的局限性,LI等[15]將數據塊的最優放置和任務的最優調度相結合,通過高效存儲邊緣端設備中的數據減少提交任務的計算延遲和響應時間。然而,上述方案均未考慮任務分配的硬件資源對處理時間的影響,以及未來應對大規模工廠接入智能制造系統的現實需求,本文針對實際大型制造業生產車間中部署的邊緣端服務器和云端服務器協同作業的場景,給出了可靠的解決方案,并提出云邊協同計算架構下大規模工廠接入的任務調度方法。

2 問題描述

隨著工業組網技術的迅猛發展,終端設備數量快速增加,海量數據的分析和處理增加了工業云平臺的運行負擔,邊緣計算的出現將部分計算任務從云端遷移到邊緣側,為云制造的普及和發展提供了有力的技術支撐。

2.1 有向無環圖任務描述

根據工業物聯網環境的要求,云邊協同架構主要由遠端服務器集群組成的云端部件和邊緣端服務器集群組成的邊緣端部件構成[16]。圖1所示為云邊協同計算架構的工作過程示意圖。從具體業務上看,云端部件主要負責對終端設備所采集的數據進行重量級模型訓練,邊緣端部件進行輕量級模型訓練,以減少模型訓練的時間和網絡時延,縮短系統的閉環響應時間,提高工廠設備整體的生產效率。

簡單起見,本文假設某工廠部署的邊緣端服務器中運行的一個任務與云端服務器中運行的一個任務有信息交換。圖3所示為云邊協同計算架構下的2個DAG任務圖,云端部件下的DAG1中包含3個任務,邊緣端部件下的DAG2中包含5個任務,2個DAG任務圖共包含8個任務。其中:圓圈表示任務節點,云端部件和邊緣端部件中的節點分別用虛點和實線表示,圓圈中的字母表示任務節點的編號,云端部件用大寫字母,邊緣端部件用小寫字母,節點編號不區分大小寫,例如圓圈中字母a表示任務節點ta,ta=tA。帶箭頭的實線邊表示事件邊,邊上的數字表示兩個任務之間的事件計算開銷;帶箭頭的虛線邊表示云端部件和邊緣端部件的通信代價,邊上的數字表示兩個任務之間的通信延遲。每個DAG中包括1個入口任務節點和1個出口任務節點??紤]到不同任務的通信延遲,例如云計算的通信延遲約為100 ms,小型數據中心的通信延遲約為10 ms~40 ms,路由器的通信延遲約為5 ms,終端設備之間的通信延遲約為1 ms~2 ms[17]。這里通過time指令獲得兩個任務之間的事件計算開銷。

2.2 資源環境

任務調度是一個在規定時間內將任務與資源進行匹配的過程。調度算法是在任務的時限要求和資源約束的條件上,找到一組能夠有效提升應用程序處理速度的調度方案。云邊協同計算架構下的調度資源由云端部件和邊緣端部件共同組成,每個部件由多個性能異構的物理機組成,每個物理機又虛擬化出多個虛擬機。假設有m個物理機節點,每個物理機由k個性能異構的虛擬機組成,物理機之間通過網絡互聯。在每個物理機上,任務的執行與通信可以同時執行,分配到虛擬機上的任務之間的通信開銷為0,任務的執行是非搶占式的。

2.3 任務調度目標

云邊協同計算架構下DAG任務圖調度是將相關任務分別調度到云端服務器和邊緣端服務器中的處理器上執行。任務調度的目標包括以下方面:

(1)整個任務集在處理器上的執行時間makespan值盡可能小。

(2)針對邊緣端服務器設計扁平化的調度策略,而不是通過云端服務器來統一管理。

(4)Slack表示松馳度,用于度量任務調度算法的魯棒性,其反映一個任務調度算法所產生任務處理時間的不確定程度[18]。Slack的定義為

(1)

(5)不公平程度Unfairness(S)是用來衡量多DAG調度算法S不公平程度的重要指標[19],

Unfairness(S)=

?a∈A。

(2)

式中:A為給定的多個DAG的集合;AvgSlowdown是所有Slowdown的平均值;Slowdown反映DAG的滯后程度,Slowdown(a)=Mmulti(a)/Mown(a)。

3 云邊協同任務調度模型

3.1 云邊協同模式下的多DAG合并

有別于傳統的企業資源計劃(Enterprise Resource Planning, ERP)、制造執行系統(Manufacturing Executive System, MES)等工業應用軟件[20],工業大數據下的軟件與產業鏈上下游會建立安全數據聯系,以實現信息共享和知識互補。因此云邊協同模式下的工業應用軟件總體上可分為云邊相離類任務、云邊相交類任務、云邊包含類任務3類。圖4所示為云邊協同模式下的任務調度關系圖,其中圖4a為云邊相離類任務,即云端部件與邊緣端部件中的任務互不干擾,無數據往來;圖4b為云邊相交類任務,即云端部件與邊緣端部件中的任務互相通信,有數據交換;圖4c為云邊包含類任務,即云端部件中的任務是邊緣端部件中任務的子任務,或者邊緣端部件是云端部件中任務的子任務。

(1)云邊相離類任務 該類任務的特點是云端部件和邊緣端部件中的任務沒有數據往來,合并的方法是增加一個虛擬的入口任務節點和出口任務節點,然后更新虛擬入口任務節點和出口任務節點與相關任務節點的通信延遲和計算開銷,即

DAG_C=DAG_A∪DAG_B,DAG_A

≠DAG_B。

(3)

式中:集合DAG_A為DAG1;集合DAG_B為DAG2;集合DAG_C為DAG合并圖。圖5a所示為云邊相離類任務的DAG合并圖。

(2)云邊相交類任務 該類任務的特點是云端部件與邊緣端部件中的任務有數據交換,合并的方式是入口任務節點同時作為每個子DAG入口任務節點的父親節點,然后通過替換實現DAG合并,

DAG_C=DAG_A⊕DAG_B,

DAG_A∩DAG_B。

(4)

圖5b所示為云邊相交類任務的DAG合并圖,其中虛線節點表示云端部件和邊緣端部件為相同任務。

(3)云邊包含類任務 該類任務的特點是云端部件中的任務為邊緣端部件中任務的子任務,或者邊緣端部件是云端部件中任務的子任務,因此通過式(5)實現DAG合并。圖5c所示為云邊包含類任務的DAG合并圖。在實際云制造中,通過冗余的方式可以增強系統的健壯性[21]。

DAG_C=

(5)

3.2 云邊協同模式下的多DAG分割

tES(j)為一個任務j的最早可能開始時間,任何一個任務都必須在其所有前驅任務全部完工后才能開始;tEF(j)為任務j的最早可能完成時間,即任務按最早開始時間所能達到的完成時間。計算公式為:

tES(j)=0;

tES(j)=maxk{tES(k)+t(k)};

tEF(j)=tES(j)+t(j)。

(6)

tLS(j)為一個任務j的最遲開始時間,即任務j在不影響整個任務如期完成的前提下,必須開始的最晚時間;tLF(j)為任務j的最遲完成時間,即任務按最遲時間開始所能達到的完成時間。計算公式為:

tLS(j)=maxk{tLS(k)-t(k)};

tLF(j)=tLS(j)+t(j)。

(7)

式(6)是由起始點向終點逐個遞推的過程,式(7)是由終點向起始點逐個遞推的過程,本文通過式(6)和式(7)找到DAG合并圖的關鍵路徑CP={cp1,cp2,…,cpm},m∈N。DAG合并圖由關鍵任務集CTS和非關鍵任務集NCTS組成,其類型分為邊緣端任務EST和云端任務CST,定義如下:

DAG=CTS+NCTS;

CTS=CTSEST+CTSCST;

NCTS=NCTSEST+NCTSCST;

{CTS,NCTS}=nEST+mCST,n∈N,m∈N。

(8)

DAG任務圖的關鍵路徑是進入任務到退出節點的最長路徑,該路徑上的每個任務為所有關鍵路徑提供的最低成本。本文根據式(8)對合并后的DAG進行分割,圖6所示為云邊協同計算架構下DAG合并圖的分割圖,虛線箭頭形成的路徑為DAG合成圖的關鍵路徑,其中圖6a為云邊包含類任務DAG分割圖,每個子圖的度分別為{2,0,0,2};圖6b為云邊相交類任務DAG分割圖,每個子圖的度分別為{2,2,0};圖6c為云邊包含類任務DAG分割圖,每個子圖的度分別為{2,1,0}。

3.3 云邊協同模式下的任務分配

本文提出的改進的異構最早完成時間(Improved Heterogeneous Earliest Finish Time,IHEFT)算法主要由權值分配、任務優先級分配、處理器選擇3個階段構成。假設用R表示處理器資源集合,R={CPUs,GPUs,FPGAs},GPUs是使用最廣泛的加速器,FPGAs可以提供更好的性能功率比,它們在高性能計算等多個應用領域中發揮了重要的作用[22-23]。用無向圖RG=(T,C)描述任務在不同處理器上的計算性能,其中T表示任務節點,C={c11,c12,…,cnm},n∈N*,m∈N*(n為任務個數,m為處理器個數)表示任務在不同處理器上的計算性能,則任務的平均計算性能

(9)

在任務優先級分配階段,需要建立多源異構場景下的任務優先級列表。因為在實際云制造環境中,無論云端任務還是邊緣端任務都具有任務的多種類、大規模、強關聯等特征,所以原來任務之間邊的權值不能準確反映云邊協同計算架構下任務的優先級,需要根據DAG合并圖關鍵路徑的邊的權值之和來確定云邊協同計算架構下任務的優先級。根據優先級的值將云邊協同計算架構下的DAG合并圖降序排列,構成任務圖列表,以便后期進行任務調度。云邊協同計算架構下DAG合并圖Dk的優先級rank(Dk)等于該圖關鍵路徑上所有事件邊的權值之和,即

(10)

后續任務調度操作將從任務圖列表具有較高優先級的任務圖開始優先分配處理器資源。根據任務圖列表構成相應的路徑列表,路徑pk的優先級

(11)

在云邊協同計算架構下的DAG分割圖中,云端子圖有ξ個,其度值為o={o1,o2,…,oξ};邊緣端子圖有ζ個,其度值為o={o1,o2,…,oζ}。由此得到第i個任務圖在調度執行時所需要的處理器數量

(12)

式中函數wj為采用云邊協同計算架構下子圖度的計算策略。通過DAG分割可以確定其資源集合類型,并在處理器分配階段根據DAG分割所得結果向任務分配資源[24-25]。DAG分割后的任務集按IHEFT算法選擇和調度處理器。

4 云邊協同任務調度算法

為了充分利用云端和邊緣端資源實現任務的高效計算,本文提出云邊協同任務調度(Cloud and Edge Collaborative Task Scheduling, CECTS)算法,算法包括DAG合并、DAG分割、處理器分配3個步驟,其中DAG合并用于減少處理冗余任務帶來的時間開銷。

4.1 DAG合并算法

假設云邊協同計算架構下有m個工廠,其中部署的邊緣端服務器和云端服務器共執行n個任務,則DAG合并算法如算法1所示。

算法1DAG合并算法。

輸入:DAG。

輸出:MergeDAG。

1: function Merging(DAG):

2: while DAGi∈DAG且i∈{1,2,…,m}do

3: while SubDAGj∈DAGi且j∈{1,2,…,n}do

4: MergeDAGj=SubDAGj

5: if(MergeDAGj≠SubDAGj+1)

6: MergeDAGj=MergeDAGj∪SubDAGj+1

7: if(MergeDAGj∩SubDAGj+1)

8: MergeDAGj=MergeDAGj⊕SubDAGj+1

9: if(MergeDAGj?SubDAGj+1)

10: MergeDAGj=SubDAGj+1

11: if(MergeDAGj?SubDAGj+1)

12: MergeDAGj=MergeDAGj

13: end if

14: end while

15: return MergeDAG

16: end function

算法第2~15行根據DAG任務圖子圖的類型對邊緣任務集和云端任務集進行合并操作,包括云邊相離、云邊相交、邊緣端任務包含云端任務、云端任務包含邊緣端任務4種情況。算法的時間復雜度為O(n),空間復雜度為O(1),而且工廠數越多,其優點越明顯。

4.2 DAG分割算法

本文采用關鍵路徑算法對所得到的DAG合并圖進行分割處理,并將分割后的任務分為關鍵任務集和非關鍵任務集兩類,其分割規則如算法2所示。

算法2DAG分割算法。

輸入:MergeDAGj。

輸出:CTSj,NCTSj。

1: function Partitioning(MergeDAGj,CP(MergeDAGj)):

2: N←order tasks based on level

3: whileN is not empty do

4: while ti∈MergeDAGj且i∈{1,2,…,ξ+ζ} do

5: if(ti∈CP(MergeDAGj))

6: add task tiin CTS

7: remove task tifrom N

8: else

9: add task tiin NCTS

10: remove task tifrom N

11: end else

12: end if

13: end while

14: return CTSj,NCTSj

15: end function

算法第2行遍歷每個DAG合并圖獲得節點個數,第3~14行對DAG合并圖進行分割處理,將屬于關鍵路徑的任務置于關鍵任務集,不屬于關鍵路徑的任務置于非關鍵任務集。該算法的時間復雜度為O(n),空間復雜度為O(1),而且任務數越多,其優點越明顯。

4.3 處理器分配算法

本文采用IHEFT算法對所得到的DAG分割圖進行任務調度處理,并按關鍵路徑權重之和rank(Dk)對DAG任務圖進行排序,得到云邊協同計算架構下不同工廠的優先級列表;將每個工廠的任務按rank(pk)排序,然后將任務分配到?個處理器上。處理器分配算法如算法3所示。

算法3處理器分配算法。

輸入:CTSj,NCTSj。

輸出:rank(Dk)j,rank(pk)j,?j。

1: function IHEFT(CTSj,NCTSj):

4: if task tiis the last task then

5: rank value of ti=its average execution time

6: else:

8: end if

9: Sort the DAG in a scheduling list by descending order of rank(Dk)jvalues

10: Sort the tasks in a scheduling list by descending order of rank(pk)jvalues

11: Assign task tito the best processor base on ?jlist

12: return set of processors with the mapping tasks, rank(Dk)j, rank(pk)j

13: end function

算法第2行遍歷每個DAG分割圖的任務節點,計算每個任務在處理器上的平均計算性能,第3行計算DAG合并圖關鍵路徑的邊的權值之和,第4~8行計算DAG分割圖路徑的優先級,第9行按任務圖優先級降序排序,第10行按路徑優先級降序排序,第11行將任務分配到最佳的處理器上,第12行返回映射任務的處理器集等相關信息。該算法的時間復雜度為O(1),空間復雜度為O(1),而且任務數越多,其優點越明顯。

5 仿真實驗與結果分析

5.1 實驗目的

為了驗證本文CECTS算法,在相同實驗條件下與Sequential和CPOP算法進行比較,主要比較任務跨度makespan、任務平均等待時間AWT和平均Slack值。

5.2 模擬環境

基于SimGrid提供的模擬器工具包,構建一個異構多核處理器仿真環境[26]。實驗使用的計算機配置為Intel Core i5-7200U CPU @ 2.5 GHz 2.7 GHZ處理器,8 GB內存。

5.3 任務調度過程分析

采用云邊協同計算架構,假設云端服務器和邊緣端服務器中運行的任務如圖7所示,以下詳細分析CECTS算法進行多DAG任務圖的合并、分割,以及在分布式異構計算環境下的處理器分配過程。

表1 DAG1任務集在處理器集上的調度時間

表2 DAG2任務集在處理器集上的調度時間

由于DAG1和DAG2為相交類任務,根據DAG合并算法可得DAG任務圖合并圖(如圖8a),根據DAG分割算法可得DAG任務圖分割圖(如圖8b),根據DAG處理器分配算法可得處理器資源平均利用率(如表3)。

5.4 實驗結果分析

CECTS算法的時間復雜度為O(n),采用某鼓風機現場采集的實際數據進行分析,可知與傳統集中式遍歷方式相比,CECTS算法具有優越性。圖9所示為邊緣端服務器數量增加對計算時間開銷的影響。

由式(11)可得DAG任務圖分割圖子圖的度為{2,0,3},即將云邊協同計算架構下的云端任務分配到2個處理器上,邊緣端任務分配到3個處理器上。

任務集經過CECTS算法調度后,任務與處理器的對應關系如圖10所示,圖10a和10b分別表示同一任務集在不同網絡環境下的調度策略。圖11a和圖11b所示分別為同一任務集通過Sequential和CPOP算法調度的結果。由圖10和圖11可知,CECTS算法的任務平均執行時間為54 s,Sequential算法的任務平均執行時間為97 s,CPOP算法的任務平均執行時間為61 s。同時可見,在減少任務執行時間的情況下,CECTS算法可以減少處理器的使用數量,圖10中云端處理器的使用個數為2個,圖11b中云端處理器的使用個數為3個。

系統的處理器利用率是實時系統運行性能的重要指標,其可以表征系統的時間特性和任務狀態[27],表3所示為3種算法的處理器資源平均利用率??梢?,采用CECTS算法的處理器資源平均利用率最高。

表3 3種算法的處理器資源平均利用率 %

分別采用3種算法對10個DAG任務圖進行調度,表4所示為3核處理器下3種算法Slack值的對比情況。分別采用3種算法對DAG任務圖模型進行調度,得到所有任務的跨度、平均等待時間和平均Slack值,如圖12所示。

表4 CECTS,CPOP,Sequential算法的Slack值

從實驗數據可見,隨著DAG數量的增加,任務調度的跨度和任務平均等待時間均會相應增加??傮w來說,CECTS算法的性能最佳,CPOP算法其次,Sequential算法最差。在任務調度的跨度方面,CECTS算法比CPOP算法最低降低17%,最高降低28%;CECTS算法比Sequential算法最低降低74%,最高降低80%。在平均任務等待時間方面,CECTS算法比CPOP算法最低降低47%,最高降低54%;CECTS算法比Sequential算法最低降低96%,最高降低97%。在平均Slack值方面,CECTS算法比CPOP算法最低降低52%,最高降低63%;CECTS算法比Sequential算法最低降低84%,最高降低93%。

調度算法的公平性用于表明多個DAG任務圖調度算法的可靠程度,是反映該算法能否公平處理不同優先級別任務需求的重要指標。圖13所示為CECTS算法和CPOP算法的公平程度,其中CPOP算法比CECTS算法最低提高了106.25%,最高提高了176.92%,CECTS算法的方差為0.001 246,CPOP算法的方差為0.006 462,而且隨著任務圖數量的增加,CECTS的穩定性更好。

任務完成率定義為任務完成的數量與任務總數的比值,更高的任務完成率能夠帶來更好的服務質量。通過比較CECTS算法與Min-min算法、DTSWB、CMSACO,得到任務完成率對比圖,如圖14所示??梢?,當任務數在60個以內時,CECTS算法、DTSWB、CMSACO都能保持較好的任務完成率,Min-min算法因負載不均衡導致任務完成率只有80%左右;當任務數達到80個時,DTSWB和CMSACO的任務完成率均明顯降低,分別為78.2%和77.4%;當任務數為100時,DTSWB的任務完成率只有53.2%,而本文CECTS算法的任務完成率為89.7%,具有較好的穩定性。

負載率表示使用處理器資源的利用率,定義為處理器使用的數量與其總數的比值。提升負載率有助于加快任務的處理速度,從而提高服務質量。圖15所示為CECTS算法、DTSWB和CMSACO的負載率對比圖,可見,當任務數量達到一定規模時,CECTS算法、DTSWB和CMSACO都能保持較好的負載率;當任務數量在30個以內時,DTSWB和CMSACO因負載不均衡導致負載率只有80%左右,而CECTS算法的負載率為96%左右,具有較好的穩定性。

通過以上實驗分析可知,CECTS算法在平均任務等待時間、平均Slack值兩方面均優于CPOP算法和Sequential算法;在算法的公平程度方面,CECTS算法具有較高的公平性,且隨DAG數量的增加保持了較好的穩定性。通過比較CECTS算法、DTSWB和CMSACO可知,本文CECTS算法在任務完成率和負載率方面均有比較突出的優勢。

6 結束語

隨著網絡信息技術的不斷發展,以智能制造為主導的新型工業模式得到廣泛應用,本文針對云制造場景,給出云邊協同計算架構下大規模工廠接入的任務調度方法,通過多任務圖合并、任務圖分割和處理器分配3個步驟對復雜場景下的任務調度問題進行求解。仿真結果表明,與其他調度算法相比,本文提出的CECTS算法可以減少處理冗余任務的時間開銷,并按云邊協同方式將任務調度到合適的處理器上,在整體上提高了任務處理的速度,從而使任務在大規模邊緣端服務器資源受限的情況下得到更高效的處理。

考慮存在特定需求、設備作業期間的突發事件及未知用戶對系統的影響,下一步將改進和細化需求分析模型,在獲取真實數據后,對本文方案的有效性進行評估,并進一步提高算法性能。另外,還將深入研究邊緣側設備協同作業的任務調度方案,以對本文工作進行補充。

猜你喜歡
云邊任務調度云端
云邊協同 構建交通“大腦”與“神經末梢” 交通云平臺與邊緣計算初探
水調歌頭·一醉愿千年
過草原天路
云端之城
基于改進NSGA-Ⅱ算法的協同制造任務調度研究
基于時間負載均衡蟻群算法的云任務調度優化
行走在云端
云端創意
云計算環境中任務調度策略
云計算中基于進化算法的任務調度策略
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合