危華明,廖劍平
(1. 南寧學(xué)院信息工程學(xué)院,廣西 南寧 530200;2. 南寧師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,廣西 南寧 530299)
海量數(shù)據(jù)云存儲引領(lǐng)著信息時代的延伸,根據(jù)網(wǎng)絡(luò)技術(shù)的整合效果,將海量數(shù)據(jù)以云存儲方式存儲,并依據(jù)用戶的需求完成對海量數(shù)據(jù)的訪問[1,2]。由于數(shù)據(jù)的種類復(fù)雜繁多,數(shù)據(jù)量較大,所以在日常存儲系統(tǒng)中,會影響了數(shù)據(jù)的存儲效率及存儲完整度,從而降低數(shù)據(jù)存儲的誤差率。為了能夠有效的實(shí)現(xiàn)海量數(shù)據(jù)的存儲及調(diào)度,需要針對這一問題對考慮海量數(shù)據(jù)存儲的云服務(wù)器性能加速方法實(shí)施詳細(xì)研究。
針對此問題,魏正等人[3]提出基于近端策略優(yōu)化的阻變存儲硬件加速器自動量化方法,由于現(xiàn)如今的數(shù)據(jù)存儲開銷及計(jì)算復(fù)雜性不斷提升,為提升存儲數(shù)據(jù)加速效果,該方法避免出現(xiàn)動作空間轉(zhuǎn)換,基于近端策略優(yōu)化算法在系統(tǒng)中使用離散動作空間,令數(shù)據(jù)實(shí)現(xiàn)自動學(xué)習(xí),通過對系統(tǒng)精度計(jì)算的改動,達(dá)到數(shù)據(jù)信息搜索時間短、存儲速度快的目的,該方法的改動效果不佳,存在吞吐量低的問題。孫孝輝等人[4]提出基于ARM+FPGA平臺的二值神經(jīng)網(wǎng)絡(luò)加速方法研究,該方法利用應(yīng)用的存儲平臺二值化處理數(shù)據(jù),通過設(shè)計(jì)的二值神經(jīng)網(wǎng)絡(luò)減少數(shù)據(jù)存儲需求量,減輕數(shù)據(jù)存儲復(fù)雜度,再將卷積轉(zhuǎn)換成邏輯運(yùn)算,達(dá)到提升系統(tǒng)運(yùn)算效率,降低資源消耗的目的,最終依據(jù)二值神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)存儲特點(diǎn),實(shí)施了處理改進(jìn)算法,令數(shù)據(jù)存儲后的網(wǎng)絡(luò)吞吐量有所提高,該方法的研究效果差,存在加速存儲耗時高的問題。陸冉陽等人[5]提出一種用于自適應(yīng)直方圖均衡化的硬件加速器方法,該方法基于直方圖均衡化算法設(shè)計(jì)了一款硬件加速器,利用硬件加速器實(shí)現(xiàn)了云服務(wù)器的自適應(yīng)限制對比度拉伸,并采用FPGA設(shè)計(jì)出并行體系架構(gòu),以此有利于對存儲資源的加速存儲,最終基于規(guī)則的模塊化設(shè)計(jì)方法設(shè)計(jì)硬件加速器,實(shí)現(xiàn)了數(shù)據(jù)存儲加速,該方法設(shè)計(jì)的硬件加速器有缺陷,存在CPU利用率低的問題。
云服務(wù)器具有高可靠、彈性擴(kuò)展的計(jì)算資源服務(wù),但隨著云數(shù)據(jù)種類復(fù)雜度的增大以及數(shù)量的迅速增多,云服務(wù)器性能受到直接影響。為了解決現(xiàn)有方法中仍然存在的應(yīng)用弊端,提出考慮海量數(shù)據(jù)存儲的云存儲器性能加速方法。
由于海量數(shù)據(jù)存儲過程中會對云服務(wù)器性能產(chǎn)生影響,所以根據(jù)小波分析理論,對獲取的云服務(wù)器海量存儲數(shù)據(jù)采用小波包分解[6],根據(jù)被分析信號的特征,自適應(yīng)地選取最佳基函數(shù),使之與信號相匹配,以提高信號的分析能力,從而有利于加快云服務(wù)器的存儲性能。
基于小波分析,在海量存儲數(shù)據(jù)中選取任意函數(shù),即h(t)∈L1∩L2,H(0)=0,表達(dá)中h(t)表示任意函數(shù),L表示存儲函數(shù),H表示傅里葉變換。根據(jù)該方程式生成出海量存儲數(shù)據(jù)函數(shù)簇{ha,b(t)},定義如下
(1)
式中,a表示非零實(shí)數(shù),b表示任意實(shí)數(shù),t表示時間。那么函數(shù)簇經(jīng)傅里葉變換后,得出
(2)
式中,H(ω)表示h(t)的傅里葉變換,f(t)表示存儲數(shù)據(jù)信號,et表示小波變換,d表示常數(shù)。
方程(2)屬于連續(xù)小波,而h(t)屬于基小波。當(dāng)h(t)表示基小波時,變換f(t)定義為
(3)
式中,wf(a,b)表示信號經(jīng)連續(xù)小波變換后,而a屬于尺度因子,b屬于時間平移因子,h*表示復(fù)共軛。
在上述小波分析的基礎(chǔ)上,設(shè)定數(shù)據(jù)全頻率范圍,將海量存儲數(shù)據(jù)引入到該范圍內(nèi),并實(shí)施頻帶寬正交分解?;陬l帶寬正交分解方法,將海量存儲數(shù)據(jù)信號S0分解成高頻信號及低頻信號兩種。那么正交小波包的分解表達(dá)式定義為
(4)
式中,u2n(t)表示小波包,其中n屬于尺度函數(shù)集合,k表示函數(shù)系數(shù),hk表示小波包基,gk表示信號時頻特性。
由于海量存儲數(shù)據(jù)信號中包含尺度函數(shù)及小波母函數(shù),它們在整個集合中具有關(guān)聯(lián)性。所以小波包可以構(gòu)成不同的小波包基,而信號熵值越小,就屬于最優(yōu)小波包基,可以有效反應(yīng)出海量存儲數(shù)據(jù)信號的時頻特性,有利于消除小波包數(shù)據(jù)中的噪聲[7,8]。
那么基于小波包分解的海量數(shù)據(jù)存儲流程,就如下所示:
1)在海量存儲數(shù)據(jù)中選取幾組數(shù)據(jù)對其開展小波包分解,從中獲取數(shù)據(jù)信號從低頻到高頻的頻率;
2)計(jì)算出最優(yōu)小波包基,從而構(gòu)建小波最優(yōu)樹;
3)分解各個小波包系數(shù),并采用軟閾值方法對選取的系數(shù)閾值量化;
4)處理小波包分解系數(shù)后,重構(gòu)小波包,以此消除數(shù)據(jù)中的高頻噪聲信號,實(shí)現(xiàn)海量數(shù)據(jù)存儲的去噪處理。
1)建立存儲分布結(jié)構(gòu)模型
構(gòu)建海量存儲數(shù)據(jù)模型,利用該模型提取數(shù)據(jù)關(guān)鍵特征,有利于提升云存儲器對海量數(shù)據(jù)存儲的存儲性能。
建立海量數(shù)據(jù)存儲屬性特征高維重組數(shù)據(jù)模型為
X=[x(t0),x(t0+Δt),…,x(t0+(K-1)Δt)]
(5)
式中,x(t0)表示時間序列,J表示時間窗函數(shù),m表示嵌入維數(shù),Δt表示采樣時間間隔,N表示嵌入組數(shù),K表示分布數(shù)據(jù),X表示模型集合。
2)提取海量數(shù)據(jù)存儲關(guān)鍵信息特征
根據(jù)建立的模型,采用關(guān)聯(lián)規(guī)則方法挖掘海量存儲數(shù)據(jù)的關(guān)鍵信息特征,實(shí)現(xiàn)數(shù)據(jù)特征提取。
令海量數(shù)據(jù)關(guān)鍵信息熵分布滿足S={s1,s2,…,sn}的條件,其中S表示為關(guān)鍵信息請求信號,從中計(jì)算出海量數(shù)據(jù)存儲關(guān)鍵信息的自相關(guān)函數(shù),計(jì)算結(jié)果如下所示
(6)
基于計(jì)算結(jié)果,采用關(guān)聯(lián)規(guī)則挖掘海量數(shù)據(jù)存儲關(guān)鍵信息特征[9,10],表示為
(7)
卷積神經(jīng)網(wǎng)絡(luò)CNN的前向傳播主要用來識別及分類物體[11,12],向卷積層中輸入q個輸入特征,將其轉(zhuǎn)換成p個輸出特征,其轉(zhuǎn)換關(guān)系表示q×p,主要由q×p個卷積核確定而成,也就是神經(jīng)網(wǎng)絡(luò)神經(jīng)元之間的連接權(quán)重。當(dāng)有單一的輸出神經(jīng)元與輸入特征卷積窗口相互連接時,卷積層次之中的特征圖尺寸就為K×K。當(dāng)輸入q個特征時,就可以利用窗口對相應(yīng)的卷積核采取卷積運(yùn)算,但這時不同的輸入特征就要對應(yīng)不同的卷積核。那么整個過程表述為
(8)
式中,l定義層數(shù),Kernel定義卷積核,Mj定義輸入特征,Bl表示層次內(nèi)存有偏移,f(·)表示激活函數(shù)。
通過對上述卷積神經(jīng)網(wǎng)絡(luò)CNN的描述,設(shè)計(jì)了基于FGPA的CNN云服務(wù)器加速存儲模型[13,14],如圖1所示。
圖1 CNN加速存儲模型
根據(jù)圖1設(shè)計(jì)的CNN云服務(wù)器存儲加速模型,將其劃分成不同的模塊,其各個模塊的功能分別為:
1)參數(shù)量化模塊
依據(jù)設(shè)置的CNN存儲加速模型,將海量數(shù)據(jù)參數(shù)存儲到文件中,利用卷積計(jì)算時,可以直接使用存儲后的數(shù)據(jù)參數(shù)文件。在參數(shù)量化模塊中,利用卷積核量化量化器,從中計(jì)算出海量存儲數(shù)據(jù)的n-bit權(quán)值參數(shù)及各個層次中的參數(shù)尺度,即fl-w;再確定出需要輸入的量化尺度fl-in;最后對存儲數(shù)據(jù)偏置量化,從中取得數(shù)據(jù)存儲后的偏置。通過以上確定的fl-w及fl-in計(jì)算出各個卷積網(wǎng)絡(luò)層次的海量數(shù)據(jù)存儲尺度,用方程定義如下
fll+1=fl_wl+fl_inl-fl_inl+1
(9)
式中,l表示第l層卷積,fll+1表示數(shù)據(jù)整體尺度。
2)卷積存儲加速模塊
由于云服務(wù)器內(nèi)部存儲資源有限,所以根據(jù)提取的海量數(shù)據(jù)關(guān)鍵信息特征,將特征輸入到卷積存儲加速模塊中,對其卷積加速計(jì)算。
卷積計(jì)算前[15],應(yīng)先對提取的海量數(shù)據(jù)關(guān)鍵信息特征矩陣實(shí)施拆分,從中獲取機(jī)組加載數(shù)據(jù),再次拆分矩陣,形成小矩陣,加載緩存至云服務(wù)器FPGA,在提升云服務(wù)器加速性能的同時還提升了云服務(wù)器的存儲效果。
設(shè)置模型中各個層次的特征均為16×16的小矩陣,并分批對小矩陣內(nèi)的3×3卷積核計(jì)算,并合并計(jì)算結(jié)果。合并后形成一個大矩陣,將其用作卷積層的下一層輸入特征參數(shù),反復(fù)循環(huán)計(jì)算,最終取得最后一層的計(jì)算結(jié)果,把最后一層計(jì)算結(jié)果返回到云服務(wù)器中存儲。通過以上步驟實(shí)現(xiàn)云服務(wù)器存儲性能的加速。
為了驗(yàn)證考慮海量數(shù)據(jù)存儲的云服務(wù)器性能加速方法的整體有效性,需要對該方法開展實(shí)驗(yàn)對比測試。采用考慮海量數(shù)據(jù)存儲的云服務(wù)器性能加速方法、基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法完成實(shí)驗(yàn)測試。
本次實(shí)驗(yàn)選取通過一臺服務(wù)器用作測試環(huán)境,該服務(wù)器配置為intel corei5 4670 3.4GH z四核CPU,千兆網(wǎng)卡。在海量數(shù)據(jù)中隨機(jī)選取不同長度的數(shù)據(jù),為測試海量數(shù)據(jù)存儲的云服務(wù)器性能加速效果,采用提出方法、基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法對海量數(shù)據(jù)加速存儲的云服務(wù)器吞吐量采取實(shí)驗(yàn)對比測試,具體測試結(jié)果如圖2所示。
圖2 云服務(wù)器的吞吐量對比測試
分析圖2中的數(shù)據(jù)發(fā)現(xiàn),設(shè)置測試時間為25min,吞吐量會隨著時間的增長而不斷下降。從整體上看,基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法的整體在80%-95%之間,下降速度要高于提出方法,且兩種方法的吞吐量要低于提出方法。而提出方法在測試過程中吞吐量始終保持在95%-100%之間,下降速度也緩慢,由此可以判定提出方法的云服務(wù)器吞吐量最佳。
海量數(shù)據(jù)加速存儲到云服務(wù)器時,會占據(jù)云服務(wù)器內(nèi)部空間,為了測試海量數(shù)據(jù)加速存儲的云服務(wù)器整體性能,需要利用提出方法、基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法分別對云服務(wù)器的CPU利用率測試,CPU利用率越高,說明云服務(wù)器的存儲性能越好,反之則越差,具體測試結(jié)果如圖3所示。
圖3 云服務(wù)器CPU利用率對比
根據(jù)圖3中的數(shù)據(jù)發(fā)現(xiàn),隨著存儲數(shù)據(jù)的不斷增加,三種方法的云服務(wù)器CPU利用率均呈現(xiàn)出上升趨勢。經(jīng)對比發(fā)現(xiàn),提出方法與基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法在整體測試中的CPU利用率均在80%~90%之間,但提出方法的CPU利用率要高于基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法,可見提出方法的云服務(wù)器存儲性能要優(yōu)于當(dāng)前文獻(xiàn)方法的CPU利用率最低,也證明了提出方法的云存儲區(qū)存儲性能要高于基于ARM+FPGA的服務(wù)器優(yōu)化方法。
利用提出方法、基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法分別記錄1分鐘內(nèi)預(yù)測服務(wù)器剩余負(fù)載,并與標(biāo)準(zhǔn)服務(wù)器上的結(jié)果進(jìn)行對比,結(jié)果如圖4所示。
圖4 云服務(wù)器負(fù)載預(yù)測對比
通過圖4的實(shí)驗(yàn)結(jié)果可知,三種方法在1分鐘內(nèi)預(yù)測剩余負(fù)載均不相同。提出方法的云服務(wù)器負(fù)載預(yù)測與標(biāo)準(zhǔn)服務(wù)器的預(yù)測值幾乎一致,而基于近端策略優(yōu)化的服務(wù)器優(yōu)化方法和基于ARM+FPGA的服務(wù)器優(yōu)化方法則出現(xiàn)不同程度的偏差。由此可見提出方法的服務(wù)器負(fù)載預(yù)測效果更加符合實(shí)際結(jié)果。
海量數(shù)據(jù)繁雜的種類會影響云服務(wù)器的加速性能,針對這一問題,提出考慮海量數(shù)據(jù)存儲的云服務(wù)器性能加速方法。基于小波包分解方法消除了海量存儲數(shù)據(jù)中的噪聲,再利用構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)云服務(wù)器加速模型對獲取的特征量訓(xùn)練,從而提升了海量數(shù)據(jù)存儲的云服務(wù)器加速性能。該方法在海量數(shù)據(jù)存儲的云服務(wù)器性能加速方法中發(fā)揮著重要作用,在今后云服務(wù)器性能優(yōu)化研究中具有長遠(yuǎn)的發(fā)展前景。