辛明勇,祝健楊,徐長寶,姚 浩,劉德宏
(1.貴州電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,貴州貴陽 550002;2.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510663)
在電網(wǎng)數(shù)字化轉(zhuǎn)型過程中,海量電網(wǎng)數(shù)據(jù)的同步性存儲是一個亟需解決的難題。電網(wǎng)數(shù)據(jù)的存儲體系,直接影響著處理器的整體工作性能和功耗水平,合適的存儲技術(shù)能夠顯著提升處理器的數(shù)據(jù)處理效率,避免重復(fù)的數(shù)據(jù)計算。其中,多核處理器通過增加核的數(shù)量以提升處理器的可擴展性和并行性,逐漸取代了單核處理器在電子產(chǎn)品中的應(yīng)用。但目前應(yīng)用于海量電網(wǎng)數(shù)據(jù)儲存的多核處理器存儲技術(shù)研究尚不成熟,數(shù)據(jù)存儲同步性差、數(shù)據(jù)重復(fù)顯著且數(shù)據(jù)存儲缺乏條理性,影響了多核處理器的整體工作質(zhì)量。
為此,國內(nèi)的研究學(xué)者對此展開了深入研究和探索。文獻[1]提出的基于FPGA 和FLASH 的多核處理器層次化存儲技術(shù)采用FPGA 微型處理器,采用RS422 串行轉(zhuǎn)換模式將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)模式,包含一級存儲模塊和二級存儲模塊,內(nèi)設(shè)FLASH處理器,執(zhí)行控制模塊的控制指令,存儲穩(wěn)定性高且易于實現(xiàn),但該技術(shù)不能有效剔除重復(fù)數(shù)據(jù),存在抗冗余度較低的問題。文獻[2]提出的基于CloudSim 的多核處理器層次化存儲技術(shù),以層次組織結(jié)構(gòu)進行設(shè)備劃分,并采用CloudSim 層進行拓展功能集成,整體靈活性較強,且抗冗余度高,但數(shù)據(jù)存儲同步性較差,易出現(xiàn)存儲誤差等現(xiàn)象。文獻[3]提出的基于Hadoop 云存儲架構(gòu)的多核處理器層次化存儲技術(shù),采用Hadoop 云存儲架構(gòu)對數(shù)據(jù)存儲技術(shù)進行優(yōu)化,能夠有效提升數(shù)據(jù)存儲的吞吐量和存儲效率,但整體同步性較低,僅適用于網(wǎng)絡(luò)數(shù)據(jù)存儲,適應(yīng)性不高。
為解決以上問題,文中提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的多核處理器層次化存儲技術(shù),并針對其實際應(yīng)用性能進行了實驗驗證。
非對稱多核處理器屬于異構(gòu)處理器的一種,其設(shè)計原理是在同構(gòu)處理器的基礎(chǔ)上保留中斷控制器、寄存器、總線以及電源等結(jié)構(gòu)設(shè)計,采用指令集架構(gòu)設(shè)計方案進行整體設(shè)計,保證指令的正確生成、發(fā)送和執(zhí)行,并引用并行ILP 設(shè)計流水線,提升處理器的資源處理效率,且為滿足異核同步運行需求,每個核的流水線設(shè)計架構(gòu)各不相同。與此同時,異構(gòu)多核處理器的緩存系統(tǒng)采用可動態(tài)配置緩存架構(gòu),支持算法替換和策略回寫,有效降低程序訪存帶寬,提升程序訪存效率[4-5]。異構(gòu)多核處理器和同構(gòu)多核處理器的結(jié)構(gòu)差異如圖1 所示。
圖1 異構(gòu)多核處理器和同構(gòu)多核處理器的結(jié)構(gòu)差異
并行多核處理器快速卷積算法以循環(huán)神經(jīng)網(wǎng)絡(luò)算法為基礎(chǔ),包含數(shù)據(jù)布局、數(shù)據(jù)轉(zhuǎn)換以及矩陣乘等三部分核心內(nèi)容。首先,數(shù)據(jù)布局是指數(shù)據(jù)在多核處理器存儲單元中的存儲方式,文中綜合考慮數(shù)據(jù)布局轉(zhuǎn)換開銷、矩陣乘算法的訪存順利、算法實現(xiàn)的訪存范圍等多種影響因素設(shè)計數(shù)據(jù)布局。
定義I表示數(shù)據(jù)輸入特征圖,O表示數(shù)據(jù)輸出特征圖,F(xiàn)表示數(shù)據(jù)存儲格式,D、U均表示存儲矩陣的內(nèi)部張量,α、β、γ均為矩陣分塊計算中的參數(shù)。
在上述數(shù)據(jù)布局下,當(dāng)數(shù)據(jù)存儲格式和大小確定后,建立數(shù)據(jù)轉(zhuǎn)換矩陣AT,P和Q為常數(shù),數(shù)據(jù)轉(zhuǎn)換過程如式(1)所示:
式中,z為轉(zhuǎn)換后的輸出數(shù)據(jù)。
經(jīng)過上述數(shù)據(jù)轉(zhuǎn)換后,采用向量單元計算矩陣乘,由于非對稱多核處理器由寄存器、一級緩存器、二級緩存器等層次組成[6-8],故采用分塊式方法最大限度地挖掘數(shù)據(jù)價值,將矩陣分為大小為4×4 的子矩陣,矩陣乘的計算方法如下:
其中,C為矩陣乘的計算結(jié)果;ui為子矩陣;CN為ui在寄存器中重用次數(shù)。
優(yōu)化后的矩陣乘示意圖如圖2 所示。
圖2 優(yōu)化后的矩陣乘示意圖
為提高數(shù)據(jù)存儲效率,文中以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,采用分層次數(shù)據(jù)存儲方式,將不同結(jié)構(gòu)的數(shù)據(jù)進行分類存儲,在數(shù)據(jù)存儲時,統(tǒng)一化數(shù)據(jù)存儲格式,以IFC 數(shù)據(jù)為標(biāo)準(zhǔn)數(shù)據(jù)存儲格式,并將數(shù)據(jù)的屬性信息以osg 格式存入數(shù)據(jù)庫中,在進行數(shù)據(jù)查詢和提取時,通過存儲節(jié)點讀取數(shù)據(jù)庫中osg 數(shù)據(jù),再調(diào)用屬性信息查詢函數(shù),就能實現(xiàn)高效率且高精度的數(shù)據(jù)存取[9-11]。基于循環(huán)神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)存取過程如圖3 所示。
圖3 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)存取過程
數(shù)據(jù)庫的設(shè)計需綜合考慮多種因素,既要滿足數(shù)據(jù)的存儲需求,又要減輕編碼負(fù)擔(dān),保證數(shù)據(jù)存儲的安全性和穩(wěn)定性的同時,又要便于維護和管理。為此,針對多核處理器的存儲需求,根據(jù)數(shù)據(jù)與數(shù)據(jù)、數(shù)據(jù)與存儲空間之間的組織關(guān)系,建立CompoenentInfo 數(shù)據(jù)表存儲數(shù)據(jù)組織關(guān)系,包含存儲節(jié)點、數(shù)據(jù)編號、屬性編號、數(shù)據(jù)類別、數(shù)據(jù)名稱、存儲層級等字段[12]。
1)ES 存儲節(jié)點的復(fù)雜度計算
由于ES 存儲節(jié)點只具備數(shù)據(jù)存儲功能,不具備數(shù)據(jù)查詢功能,故ES 存儲節(jié)點的總體網(wǎng)絡(luò)消息傳輸復(fù)雜度TMCES為:
其中,n為數(shù)據(jù)傳輸數(shù)量;ri為第i個子存儲節(jié)點的存儲效率;為數(shù)據(jù)發(fā)送節(jié)點的發(fā)送效率。
根據(jù)數(shù)據(jù)存儲復(fù)雜度的定義,計算一個存儲節(jié)點最大可能存儲的數(shù)據(jù)量,即考慮最極端存儲狀態(tài)下,多核處理器中產(chǎn)生的所有數(shù)據(jù)都經(jīng)過一個存儲節(jié)點進行存儲,則ES 存儲節(jié)點的數(shù)據(jù)存儲復(fù)雜度HTCES為:
式中,sd為數(shù)據(jù)存儲的報文大小。
2)LS 存儲節(jié)點的復(fù)雜度計算
相較于ES 存儲節(jié)點,LS 存儲節(jié)點不具備數(shù)據(jù)存儲通信功能,僅具備數(shù)據(jù)查詢功能,LS 存儲節(jié)點的總體網(wǎng)絡(luò)消息傳輸復(fù)雜度TMCLS為:
式中,Ri為第i個子存儲節(jié)點的查詢效率。
同上,考慮數(shù)據(jù)存儲復(fù)雜度,在最極端存儲情況下,LS 存儲節(jié)點的數(shù)據(jù)存儲復(fù)雜度HTCLS為:
式中,sq為查詢數(shù)據(jù)的大小。
3)DCS 存儲節(jié)點的復(fù)雜度計算
相較于以上兩種存儲節(jié)點,DCS 存儲節(jié)點兼具數(shù)據(jù)存儲功能和查詢功能[13-16],使用散列函數(shù)將每個數(shù)據(jù)類型映射到特定的存儲空間,每個子存儲節(jié)點在主存儲節(jié)點的控制下進行分層次數(shù)據(jù)存儲,DCS存儲節(jié)點的總體網(wǎng)絡(luò)消息傳輸復(fù)雜度TMCDCS為:
在極端存儲狀態(tài)下,所有數(shù)據(jù)包、查詢數(shù)據(jù)以及恢復(fù)數(shù)據(jù)都經(jīng)過同一個子存儲節(jié)點,則DCS 存儲節(jié)點的數(shù)據(jù)存儲復(fù)雜度HTCDCS為:
選用文中提出的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的多核處理器層次化存儲技術(shù)與傳統(tǒng)的基于FPGA 和FLASH 的多核處理器層次化存儲技術(shù)及基于Hadoop 云存儲架構(gòu)的多核處理器層次化存儲技術(shù)進行實驗對比。
參考多核處理器的相關(guān)配置需求,設(shè)置的實驗參數(shù)如表1 所示。
表1 實驗參數(shù)
根據(jù)上述實驗參數(shù),選用文中提出的存儲技術(shù)和傳統(tǒng)存儲技術(shù)進行數(shù)據(jù)存儲,為保證實驗結(jié)果的權(quán)威性和可靠性,以數(shù)據(jù)存儲的同步性和抗冗余度為三種存儲技術(shù)的評價指標(biāo),對三種存儲技術(shù)進行綜合評價。其中數(shù)據(jù)存儲抗冗余度是指存儲技術(shù)抗數(shù)據(jù)重復(fù)的抗重復(fù)度,數(shù)據(jù)存儲抗冗余度T的計算公式如下:
式中,w為相鄰數(shù)據(jù)屬性值的累計變化次數(shù);x為數(shù)據(jù)的存儲行數(shù);y為數(shù)據(jù)的存儲列數(shù)。
數(shù)據(jù)存儲同步性的實驗結(jié)果如圖4 所示。
從圖4 可以看出,基于FPGA 和FLASH 技術(shù)的最高同步誤差為0.18,平均同步誤差為0.13,數(shù)據(jù)存儲同步性較為不理想。基于Hadoop 云存儲架構(gòu)的最高同步誤差為0.23,平均同步誤差為0.17,數(shù)據(jù)存儲同步性差,不適用于多核處理器的設(shè)計中。相較于之下,本文提出的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的存儲技術(shù),同步誤差普遍低于0.1,平均同步誤差為0.04。
對三種存儲技術(shù)的存儲同步性進行驗證后,針對三種存儲技術(shù)的數(shù)據(jù)存儲抗冗余度進行實驗對比,實驗結(jié)果如圖5 所示。
圖5 數(shù)據(jù)存儲抗冗余度對比結(jié)果
從圖5 可以看出,隨著重復(fù)數(shù)據(jù)數(shù)量的不斷增加,三種存儲技術(shù)的抗冗余度不斷下降,但下降程度各不相同?;贔PGA 和FLASH 的平均抗冗余度為76%,基于Hadoop 云存儲架構(gòu)的平均抗冗余度為84%,而文中提出的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的存儲技術(shù),最低抗冗余效果為89%,平均抗冗余度為96%,整體抗冗余度高。原因在于,文中提出的存儲算法以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)進行并行多核處理器快速卷積運算,通過數(shù)據(jù)布局、轉(zhuǎn)換以及矩陣乘,能夠過濾大部分冗余數(shù)據(jù),避免絕大部分的數(shù)據(jù)重復(fù)存儲。
隨著處理器數(shù)據(jù)存儲數(shù)量的不斷增加以及應(yīng)用環(huán)境的逐漸復(fù)雜,處理器的存儲需求逐漸升高,傳統(tǒng)的多核處理器層次化存儲技術(shù)雖然搭載便捷、存儲量大,但處理同步性差、抗冗余度低,為此,為滿足多核處理器的存儲需求,并解決傳統(tǒng)存儲技術(shù)出現(xiàn)的問題,文中提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的多核處理器層次化存儲技術(shù),實現(xiàn)對數(shù)據(jù)的多層次穩(wěn)定存儲。實驗結(jié)果表明,文中提出的存儲技術(shù)同步性好、抗冗余度高,能夠?qū)?shù)據(jù)進行穩(wěn)定且安全的存儲,使處理器的數(shù)據(jù)處理更加高效、可靠。