龐崇高 陸玉發(fā)
摘? 要: 傳統(tǒng)系統(tǒng)在并行化大數(shù)據(jù)流組件不變情況下的吞吐量會(huì)隨著并發(fā)數(shù)增多而減少,影響數(shù)據(jù)流傳輸效率。為了解決這一問(wèn)題,提出基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)。系統(tǒng)硬件由FPGA 核心控制器、XC7K325T?2FFG 900芯片、DCM時(shí)鐘組成,用于實(shí)時(shí)傳輸數(shù)據(jù)流。系統(tǒng)軟件是在STORM平臺(tái)上引入遷移學(xué)習(xí)算法。軟、硬件結(jié)合,完成基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)設(shè)計(jì)。實(shí)驗(yàn)分別測(cè)試了兩個(gè)系統(tǒng)在并行化大數(shù)據(jù)流組件不變情況下的吞吐量。將并行化大數(shù)據(jù)流分類組件設(shè)置為(5.5),(5.6), (5.7), (5.8),從實(shí)驗(yàn)結(jié)果可知,所設(shè)計(jì)的系統(tǒng)吞吐量會(huì)隨著并發(fā)數(shù)、線程增多,呈上升趨勢(shì),能夠有效提升并行化大數(shù)據(jù)流傳輸效率。
關(guān)鍵詞: 并行化大數(shù)據(jù)流; 數(shù)據(jù)流傳輸; 系統(tǒng)設(shè)計(jì); 遷移學(xué)習(xí)算法; 吞吐量測(cè)試; 數(shù)據(jù)矩陣
中圖分類號(hào): TN919?34; TP421? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)18?0040?03
Abstract: As the throughput of the traditional system could decrease with the increase of the concurrent amount under the circumstance that the parallel big data stream component is unchanged, which will affect the transmission efficiency of data stream, a parallel big data stream transmission system based on transfer learning is proposed. The system hardware is composed of FPGA core controller, XC7K325T?2FFG900 chip and DCM clock, which is used to transmit data stream in real time. The system software can realize the introduction of transfer learning algorithm on the STORM platform. The design of the parallel big data stream transmission system based on transfer learning is completed in combination of the software and the hardware. In the experiment, the throughputs of the two systems under the circumstance that the parallel big data flow components are unchanged are tested. The parallel big data stream classification components are set to (5.5), (5.6), (5.7) and (5.8). It can be seen from the experimental results that the throughput of the designed system can be on the rise with the increase of the concurrent amount and threads, which can effectively improve the transmission efficiency of parallel big data stream.
Keywords: parallel big data stream; data stream transmission; system design; transfer learning algorithm; throughput testing; data matrix
0? 引? 言
傳統(tǒng)的并行化大數(shù)據(jù)流傳輸系統(tǒng)運(yùn)用圖形處理單元強(qiáng)大的計(jì)算能力,協(xié)助CPU處理大數(shù)據(jù)流,雖然可以高效處理完成復(fù)雜的計(jì)算[1],但會(huì)降低數(shù)據(jù)流實(shí)時(shí)傳輸?shù)南拗萍s束。為了更好地處理并行大數(shù)據(jù)流,提出基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)。在本次硬件結(jié)構(gòu)設(shè)計(jì)中,主要在以Xilinx FPGA產(chǎn)品為主的結(jié)構(gòu)下設(shè)計(jì)大數(shù)據(jù)流傳輸總線。軟件在STORM平臺(tái)上,引入遷移學(xué)習(xí)算法,實(shí)現(xiàn)并行化大數(shù)據(jù)流傳輸。
1? 硬件結(jié)構(gòu)設(shè)計(jì)
基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)中的各個(gè)功能系統(tǒng)是通過(guò) FPGA 核心控制器上傳信息的。經(jīng)過(guò)數(shù)據(jù)采集系統(tǒng)調(diào)節(jié)后,獲取信息[2]。再利用XC7K325T?2FFG 900 芯片將采樣的信號(hào)上傳系統(tǒng)。待處理后,通過(guò)DDR3 SDRAM實(shí)現(xiàn)大容量數(shù)據(jù)緩存。圖1為并行化大數(shù)據(jù)流傳輸系統(tǒng)硬件架構(gòu)。
圖1中的FPGA 核心控制器實(shí)現(xiàn)了并行化大數(shù)據(jù)流的傳輸。采用多通道 LVDS傳輸連接方式,利用遷移學(xué)習(xí)法預(yù)測(cè)分析在未來(lái)時(shí)間點(diǎn)上的并行化大數(shù)據(jù)流值。具體傳輸過(guò)程:首先,要分段大數(shù)據(jù)流,分析所有段的聚類,再輸出一定數(shù)量簇中心,將這部分?jǐn)?shù)據(jù)流歸到系統(tǒng)的第一層,接著聚類分析此層的簇中心點(diǎn)。獲取的簇中心點(diǎn)要?dú)w結(jié)到下一層。
經(jīng)過(guò)迭代計(jì)算求出最優(yōu)解。再構(gòu)造數(shù)據(jù)矩陣,用行或者列索引作為標(biāo)識(shí)符。最后,比較相關(guān)系數(shù)數(shù)據(jù)集與設(shè)定的閾值。若滿足條件,即可使用基本窗口模型,將數(shù)據(jù)流傳輸?shù)交瑒?dòng)窗口,計(jì)算分析數(shù)據(jù)矩陣特征值,實(shí)現(xiàn)實(shí)時(shí)傳輸數(shù)據(jù)流的目的[3]。
圖1中的XC7K325T?2FFG 900 芯片是系統(tǒng)硬件的核心,負(fù)責(zé)將指定的單條數(shù)據(jù)流和多條數(shù)據(jù)流傳輸出去。低頻率的并串電路是由數(shù)字電路構(gòu)成。運(yùn)用VHDL功能仿真和器件編程就能很快找到所需的數(shù)據(jù)流。但是當(dāng)電路頻率提高時(shí),VHDL編寫(xiě)出的邏輯電路是無(wú)法滿足設(shè)計(jì)需求的。為此,選用高速運(yùn)算放大器將差分轉(zhuǎn)化為單頻率信號(hào)[4]。再通過(guò)4位寄存器,輸入到數(shù)據(jù)選擇當(dāng)中,完成輸出。
當(dāng)數(shù)據(jù)流通過(guò)DCM時(shí)鐘信號(hào)PCLKI鎖存到4位寄存器中時(shí),就會(huì)被當(dāng)作FIFO寫(xiě)入DCM時(shí)鐘。PCLKO是FIFO寄存器的讀取DCM時(shí)鐘,是用于加載數(shù)據(jù)選擇器中的數(shù)據(jù)流。FIFO能夠識(shí)別DCM時(shí)鐘在單位間隔內(nèi)的變化。當(dāng)讀寫(xiě)DCM時(shí)鐘接入相同的FIFO寄存器地址時(shí),RESET信號(hào)至少要達(dá)到4UI,為了消除這種情況,就需要復(fù)位FIFO。待復(fù)位后,寬動(dòng)態(tài)范圍的FIFO會(huì)重新開(kāi)始工作[5]。當(dāng)數(shù)據(jù)流從FIFO中讀出時(shí),要輸入到數(shù)據(jù)選擇器中,并轉(zhuǎn)換為并行化大數(shù)據(jù)流輸出。
由此,完成基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)硬件結(jié)構(gòu)的設(shè)計(jì)。
2? 軟件功能設(shè)計(jì)
在STORM平臺(tái)上部署基于遷移學(xué)習(xí)算法實(shí)現(xiàn)并行化大數(shù)據(jù)流傳輸。通過(guò)歸一化處理得到標(biāo)準(zhǔn)化樣本,再通過(guò)減法聚類算法確定初始聚類中心[6]。經(jīng)過(guò)遷移學(xué)習(xí)算法進(jìn)一步迭代后,就可以得到較優(yōu)的聚類中心。聚類樣本是歸一化后的標(biāo)準(zhǔn)樣本,需要通過(guò)FCM處理,將所得的較優(yōu)的聚類中心作為遷移學(xué)習(xí)算法的輸入聚類中心,再進(jìn)行聚類,實(shí)現(xiàn)樣本數(shù)據(jù)的故障診斷[7]。
在STORM平臺(tái)中,Bolt是數(shù)據(jù)處理的基本單元,Bolt組件間具有靈活的訂閱關(guān)系[8]。為實(shí)現(xiàn)相關(guān)特征下向量數(shù)據(jù)的并行故障診斷,要處理元組件中發(fā)送的元組。
傳輸過(guò)程:首先,處理數(shù)據(jù)。將處理過(guò)程封裝在PreBolt組件中,經(jīng)過(guò)標(biāo)準(zhǔn)化處理后的聚類樣本可以加快聚類的收斂速度,降低迭代次數(shù)[9]。其次,在STORM平臺(tái)中部署遷移算法處理并行化大數(shù)據(jù)流。同第一步,將遷移算法封裝在SubBolt組件中[10]。SubBolt組件接收到的數(shù)據(jù)來(lái)源于PreBolt組件傳遞的元組。在元組中的數(shù)據(jù)為PreBolt組件的數(shù)據(jù)集,為標(biāo)準(zhǔn)化待聚類樣本。這些樣本需要參加后續(xù)的聚類診斷處理,按照編號(hào)進(jìn)行最終的匯總[11]。最后,實(shí)現(xiàn)遷移學(xué)習(xí)算法引入。為避免后續(xù)遷移學(xué)習(xí)算法陷入局部最優(yōu),將得到的初始聚類中心封裝為一個(gè)元組,傳遞給下游組件,即K?meansblot。在聚類的過(guò)程中,需要將上游傳來(lái)的聚類中心作為初始聚類中心[12]。通過(guò)迭代計(jì)算后,不斷更新得到最優(yōu)的聚類中心。將此類聚類中心封裝給下游組件Fcmblot。Fcmblot是系統(tǒng)軟件的主體部分,在組件內(nèi)實(shí)現(xiàn)遷移學(xué)習(xí)算法,通過(guò)模糊隸屬度確定標(biāo)準(zhǔn)化待測(cè)樣本的類別[13]。Fcmblot與上游K?meansblot組件是相結(jié)合的整體??傮w聚類效果相比單一的Fcmblot組件更好,具有較強(qiáng)的魯棒能力[14]。
由此,完成基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)的軟件設(shè)計(jì)。
3? 實(shí)驗(yàn)分析
3.1? 實(shí)驗(yàn)環(huán)境
為驗(yàn)證所提的并行化大數(shù)據(jù)流傳輸系統(tǒng)的可行性,設(shè)置仿真實(shí)驗(yàn)。在實(shí)驗(yàn)室搭建STORM平臺(tái),共有5臺(tái)服務(wù)器組成物理集群。服務(wù)器之間用千兆交換機(jī)相互連接。將虛擬軟件Xenserver安裝到每臺(tái)服務(wù)器。在上述環(huán)境下,虛擬出9個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)分配2個(gè)CPU核心。在這9個(gè)虛擬機(jī)上,都安裝傳統(tǒng)系統(tǒng)和本次設(shè)計(jì)的系統(tǒng)。虛擬機(jī)1為主控節(jié)點(diǎn)。虛擬機(jī)2~9為工作節(jié)點(diǎn),如表1所示。
先部署與系統(tǒng)有關(guān)的外部環(huán)境,再部署STORM框架。STORM安裝版本為STORM 1.0.1。在每個(gè)工作節(jié)點(diǎn)都要分配4個(gè)Worker Slot,節(jié)點(diǎn)之間可以通過(guò)交換機(jī)連接。
3.2? 實(shí)驗(yàn)搭建過(guò)程
1) 分別在主控節(jié)點(diǎn)和工作節(jié)點(diǎn)安裝STORM,安裝STORM后的系統(tǒng)比較依賴外部資源。
2) 在主控節(jié)點(diǎn)和工作節(jié)點(diǎn)上,下載STORM發(fā)布版本。
3) 修改STORM配置文件。
4) 使用腳本啟動(dòng)STORM后臺(tái)進(jìn)程。
安裝STORM后,會(huì)比較依賴外部環(huán)境,所以要先創(chuàng)建安裝目錄,下載JDK文件,解壓到該目錄。配置Java路徑,而Zero下載編譯后,直接安裝。為確保JZMQ正常工作,需要Java變量對(duì)應(yīng),因?yàn)橄到y(tǒng)版本不同,需要安裝不同的組件。
為了檢測(cè)傳統(tǒng)系統(tǒng)和基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)在并行化大數(shù)據(jù)流組件不變情況下的吞吐量,將并行化大數(shù)據(jù)流分類組件設(shè)置為(5.5), (5.6), (5.7), (5.8)。表2和表3為所提系統(tǒng)與傳統(tǒng)系統(tǒng)在并行化大數(shù)據(jù)流組件不變情況下的吞吐量。
在組件不變的情況下,使用所建系統(tǒng)的吞吐量會(huì)隨著分類組件并行度的增加呈上升趨勢(shì)。這是因?yàn)樾略鼍€程數(shù)據(jù)量增加導(dǎo)致的。而使用傳統(tǒng)系統(tǒng)的吞吐量在不斷減少。隨著并發(fā)數(shù)的增多,每個(gè)線程所獲取的資源也在逐漸減少。由此可知,文章所建立的基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)所設(shè)置的組件并行度可以有效提高大數(shù)據(jù)流傳輸效率。
4? 結(jié)? 語(yǔ)
針對(duì)傳統(tǒng)系統(tǒng)存在的問(wèn)題,提出基于遷移學(xué)習(xí)的并行化大數(shù)據(jù)流傳輸系統(tǒng)設(shè)計(jì)。系統(tǒng)的硬件設(shè)計(jì)由FPGA 核心控制器、XC7K325T?2FFG900 芯片、DCM時(shí)鐘組成,軟件是在STORM平臺(tái)下引入遷移學(xué)習(xí)算法。完成系統(tǒng)設(shè)計(jì)。最后通過(guò)實(shí)驗(yàn)驗(yàn)證,所提系統(tǒng)具有一定可行性。
參考文獻(xiàn)
[1] 任俊,胡曉峰,李寧.基于SDA與SVR混合模型的遷移學(xué)習(xí)預(yù)測(cè)算法[J].計(jì)算機(jī)科學(xué),2018,45(1):280?284.
[2] 衡冬冬,唐玉華,易曉東,等.并行原型系統(tǒng)上BFS算法設(shè)計(jì)實(shí)現(xiàn)與測(cè)試分析[J].計(jì)算機(jī)工程與科學(xué),2017,39(1):27?34.
[3] 曾瑛,李星南,劉新展.電力通信大數(shù)據(jù)并行化聚類算法研究[J].電子技術(shù)應(yīng)用,2018,44(5):1?4.
[4] 夏為丙,楊朝明,張志文.多路高速串口并行傳輸系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2018(2):97?100.
[5] 王林童,趙騰,張焰,等.基于Hadoop的風(fēng)力發(fā)電監(jiān)測(cè)大數(shù)據(jù)存儲(chǔ)優(yōu)化及并行查詢方法[J].電測(cè)與儀表,2018,55(11):1?6.
[6] 朱永利,李莉,宋亞奇,等.ODPS平臺(tái)下的電力設(shè)備監(jiān)測(cè)大數(shù)據(jù)存儲(chǔ)與并行處理方法[J].電工技術(shù)學(xué)報(bào),2017,32(9):199?210.
[7] 金宇.基于云計(jì)算環(huán)境的大數(shù)據(jù)兼容性存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2019,42(1):24?27.
[8] 朱嘉舟,邵培南,陳景.影像數(shù)據(jù)分布并行計(jì)算處理平臺(tái)體系架構(gòu)研究[J].計(jì)算機(jī)工程,2017,43(5):60?66.
[9] 徐源,程潛善,李陽(yáng),等.基于大數(shù)據(jù)聚類的電力系統(tǒng)中長(zhǎng)期負(fù)荷預(yù)測(cè)[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2017,29(8):43?48.
[10] 梁胤程,袁媛,楊峰.基于Hadoop的探地雷達(dá)數(shù)據(jù)并行處理方法研究[J].系統(tǒng)仿真學(xué)報(bào),2017,29(1):120?128.
[11] 季一木,張永潘,郎賢波,等.面向流數(shù)據(jù)的決策樹(shù)分類算法并行化[J].計(jì)算機(jī)研究與發(fā)展,2017,54(9):1945?1957.
[12] 宋中喆,裴東興,楊少博.基于USB3.0接口的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(4):159?162.
[13] 杜興林,經(jīng)小川,梁光成,等.基于FPGA的多通道高可靠高速單向傳輸系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2017,37(S2):6?10.
[14] 徐志剛.基于嵌入式的火災(zāi)檢測(cè)系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(10):168?171.
[15] 李莉,朱永利,宋亞奇.泄漏電流數(shù)據(jù)的Spark?KNN并行模式識(shí)別方法[J].系統(tǒng)仿真學(xué)報(bào),2018,30(4):1473?1481.