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