石小兵
(安徽工業(yè)經(jīng)濟職業(yè)技術(shù)學院 財經(jīng)學院,安徽 合肥 230001)
為了提高云計算服務的靈活性和可擴展性,云服務平臺(如Amazon Elastic Compute Cloud、Google Compute Engine)允許用戶按需使用計算單元,即按需使用處理器、內(nèi)存、存儲和操作系統(tǒng)資源,并按年、天、小時甚至分鐘計費[1-2]。用戶能夠在云服務提供商的分布式計算環(huán)境上開發(fā)和執(zhí)行任務。為了降低在云計算平臺中進行大規(guī)模多媒體處理的成本,設計了一個云計算平臺——MMC(Multi-Media Cloud)。MMC通過合理地調(diào)整多媒體任務所需的資源,在確保任務按時完成的情況下,降低云基礎設施的成本。
MMC的體系結(jié)構(gòu)如圖1所示,MMC由五個部分組成:前端、云存儲和實例類型、監(jiān)控組件以及本地和全局控制器實例。
用戶通過前端提交工作負載,并為此工作負載設置特定的完成時間,或者由MMC分配合適的完成時間。工作負荷可以包括多種類型的多媒體文件以及用于處理輸入的腳本和可執(zhí)行文件。用戶通常希望在輸入圖像或視頻上執(zhí)行諸如面部識別、視頻轉(zhuǎn)碼的特定任務。當全局控制器實例檢測到新的工作負載時,會將工作負載的一小部分輸入分配給本地控制器實例。本地控制器實例的計算實例會在這一小部分的輸入上執(zhí)行相應的代碼,并向監(jiān)控組件和相應的全局控制器實例提供執(zhí)行時間。全局控制器實例根據(jù)這些測量值和執(zhí)行狀態(tài)的日志來確認工作負載處理過程中所提交的代碼是否存在錯誤,并得出完成該工作負載所需CSP(Compute unit and Seconds Product)的估計值。其中,CSP是指所分配的計算單元數(shù)量與其使用時間的乘積,CSP是一個用來量化資源分配的指標。此估計值用于確認MMC是否可以在所請求的特定完成時間內(nèi)完成工作負載,或相應地調(diào)整已分配的完成時間。全局控制器實例對每個工作負載的CSP進行估計,以便為不同的工作負載設置相應的服務費,并按需調(diào)整計算單元的數(shù)量,以便滿足所有已確認的完成時間。最后,所有計算單元產(chǎn)生的結(jié)果都上載到前端,以供用戶查詢。
(1)前端
MMC的前端提供工作負載上傳、啟動、執(zhí)行監(jiān)視、文本文件和圖像查看和編輯功能,以及下載正在執(zhí)行的各個任務的結(jié)果。如果用戶對任務執(zhí)行的結(jié)果滿意或執(zhí)行不正確,則用戶可以利用前端來取消待處理的工作負載。
(2)云存儲和示例類型
云存儲和示例類型的部署采用云服務提供商提供的存儲和實例服務。實例服務需要提供了多種可用配置以及基于每小時預訂的靈活計費。MMC使用Linux和Window實例,這些實例支持批處理腳本、Python和Java等高級語言,Javascript、Matlab以及OpenCV和ImageMagick庫。根據(jù)用戶提交的腳本和可執(zhí)行文件的類型,MMC將這些實例中的任何一個派生到I種實例類型中任意數(shù)量的類型i實例。用pi(1≤i≤I)表示每種實例類型的計算單元數(shù)量。此外,在第t個時刻,MMC中包含類型i的實例數(shù)量為ni[t]。對于ni[t]個實例中的第j個實例,用ai,j[t]表示直到下一個計費周期為止的剩余時間。
圖1 MMC平臺系統(tǒng)結(jié)構(gòu)
(3)監(jiān)控組件
為了觀察計算單元的利用率,MMC平臺設置了一個監(jiān)控組件,該監(jiān)控組件通過系統(tǒng)命令監(jiān)測每個實例中處理器的利用率。在第t個監(jiān)視時刻,MMC中所有當前正在執(zhí)行的工作負載的集合共含有M[t]種不同的多媒體類型(如圖像類型、音頻類型、視頻類型)。
在每個監(jiān)視時刻t,對于每個工作負載w(1≤w≤W[t]),監(jiān)控組件需要監(jiān)測被處理的剩余多媒體項目mw,k[t]以及處理工作負載w中類型k的多媒體所需的CSPsbw,k[t]。監(jiān)控組件持續(xù)檢測完成每個工作負載w所需的CSPrw[t],rw[t]計算方式如(1)所示:
(1)
MMC還需要監(jiān)測處于激活狀態(tài)的計算單元的總數(shù)量(如式(2)所示)以及已付費CSP的數(shù)量(如式(3)所示)。
(2)
(3)
(4)本地和全局控制器實例
(4)
其中,vw,k[t]是測量的誤差。在時刻t,對于每個工作負載w中媒體類型k所需CSPs的估計值如(5)所示:
bw,k[t]=bw,k[t-1]+zw,k[t]
(5)
其中,zw,k[t]是誤差。采用卡爾曼濾波對bw,k[t]進行更準確的估計,如(6)、(7)所示:
bw,k[t-1])
(6)
(7)
服務速率sw[t]是指在監(jiān)視時刻t和t+1之間的時間間隔內(nèi)分配給工作負載w的計算單元數(shù)量。若sw[t]值是一個小數(shù)(例如sw[t]=0.7),那么這就意味著為工作負載w分配了一個計算單元,其使用的時間間隔為0.7。給定工作負載完成時間dw[t]和相應的CSP估計,如果出現(xiàn)了sw[t]>Nw,max的情況(其中Nw,max是計算單元數(shù)量),那么就需要增加dw[t]以使sw[t]=Nw,max。由此操作便可以得到每一個工作負載w的完成時間。
全局控制器實例通過基于比例公平性的分配機制來確保每個工作負載都能在其完成時間之前被執(zhí)行。在每個監(jiān)視實例t,對于每個工作負載w,全局控制器實例最大化關(guān)于服務率的目標函數(shù),從而確保滿足所有工作負載的CSP需求rw[t]。目標函數(shù)的表達式如下所示:
f(sw[t])=rw[t]ln(sw[t])-dw[t]sw[t]
(8)
(9)
目標函數(shù)達到最大值意味著有足夠的計算單元來適應需求,因此,能夠在每個監(jiān)視時刻t根據(jù)每個工作負載所需的CSP和完成時間進行服務速率分配。然后,可以計算所需的計算單元總數(shù)為式(10)。
(10)
(11)
(12)
Ntot[t+1]=
(13)
為了對所設計的平臺進行評估,第三方的云服務所提供的實例來部署MMC。其中,每個實例都有一個對應的本地控制器實例,當全局控制器實例檢測到該本地控制器實例處于空閑,就會為其分配新任務。另外,采用一個單獨的實例作為全局控制器實例。實驗使用的參數(shù)設置為:α=5,β=0.9,Nmin=10,N=100,Nw,max=10。監(jiān)控組件使用SQL數(shù)據(jù)庫來記錄每個工作負載中完成的任務。最后,產(chǎn)生的結(jié)果以及中間進度的摘要通過前端的Web界面?zhèn)鬟_給用戶。
將MMC與亞馬遜的Autoscale服務(AAS)進行對比[3]。 AAS不對CSP進行估計,只根據(jù)CPU利用率和帶寬限制來控制實例數(shù)量。AAS每隔5min檢查一次所有使用的計算單元的平均CPU使用率。如果檢測到平均CPU利用率超過20%,則將啟動新實例。否則,AAS會關(guān)閉部分活動的實例。在AAS中執(zhí)行了所有工作負載,并測量了完成工作負載的最長時間。
圖2 累計成本對比
圖3 深度學習工作負載下累積成本對比
圖2展示了在兩種方法的累積成本。顯然,AAS的成本明顯高于MMC的成本。這主要是因為AAS僅基于CPU利用率進行決策,因此即使在工作負載處理即將完成時,它也會繼續(xù)擴大實例的數(shù)量。而且只有在工作負載完成后,CPU利用率降低的情況下,AAS才減小實例數(shù)量??傮w而言,圖2的結(jié)果表明,MMC所采用的基于AIMD的計算單元管理是一種簡單有效的方法,可降低云計算基礎架構(gòu)所產(chǎn)生的成本,同時滿足每個工作負載的完成時間約束。
考察Dithn平臺在深度學習工作負載下的性能。該深度學習任務是一個基于深層卷積神經(jīng)網(wǎng)絡[4]的圖像分類任務,并采用ImageNet[5]作為輸入數(shù)據(jù)集。實驗結(jié)果如圖3所示。由實驗結(jié)果可知,AAS的成本要高于MMC的成本(約30%)。
MMC是一個面向大規(guī)模多媒體的云計算平臺,該平臺支持上載和執(zhí)行多媒體處理工作負載。MMC中的實例負責執(zhí)行工作負載中的任務,并使用AIMD算法來調(diào)整計算單元的數(shù)量,以提高計算單元的利用率。MMC使用卡爾曼濾波估計器來計算每種任務與每種工作負載所需的計算單位秒。實驗結(jié)果表明,MMC能夠降低云計算的成本,并確保在規(guī)定的時間內(nèi)完成工作負載任務。