眾核技術(shù)將CPU作為主機(jī),MIC作為協(xié)處理器兩者協(xié)同工作。CPU負(fù)責(zé)進(jìn)行邏輯性強(qiáng)的事物處理和串行計算,MIC則專注于執(zhí)行高度線程化的并行處理任務(wù)。CPU、MIC協(xié)處理器各自擁有相互獨立的存儲器地址空間:主機(jī)端內(nèi)存和MIC協(xié)處理器內(nèi)存。一旦確定了程序中的并行計算函數(shù),就考慮把這部分計算交給MIC。
[0036]所述四層滑動窗口模型包括:時序數(shù)據(jù)層、緩沖窗口層、滑動窗口層和概要數(shù)據(jù)矩陣。MIC協(xié)處理器通過最小交換原則執(zhí)行多數(shù)據(jù)多數(shù)據(jù)流查詢算法,僅返回最后的查詢結(jié)果。所述四層滑動窗口模型為跨PCIE總線的四層滑動窗口模型。
[0037]S13 =MIC協(xié)處理器將數(shù)據(jù)流查詢結(jié)果返回至CPU ;
[0038]S14:CPU依據(jù)數(shù)據(jù)流查詢結(jié)果得到用戶的1輸出任務(wù),執(zhí)行1輸出任務(wù)。
[0039]針對多數(shù)據(jù)流,本發(fā)明提供的四層滑動窗口模型是遵循最小數(shù)據(jù)交換原則的,跨PCIE總線的。MIC協(xié)處理器在多數(shù)據(jù)流相關(guān)系數(shù)精確計算的實時性上比純CPU處理有顯著優(yōu)勢。該四層滑動窗口模型的框架可以推廣到多數(shù)據(jù)流挖掘其他研究領(lǐng)域中,如多數(shù)據(jù)流主分量計算和多數(shù)據(jù)流聚類分析,具有一定的通用性。
[0040]對于四層滑動窗口模型,具體的,時序數(shù)據(jù)層的數(shù)據(jù)為三元組:〈SID,Timestamp,Value〉,SID是數(shù)據(jù)流標(biāo)識,Timestamp是元組到達(dá)時間,Value是數(shù)據(jù)值,時序數(shù)據(jù)層用于數(shù)據(jù)1處理和數(shù)據(jù)緩沖處理,對在任意數(shù)據(jù)采樣時間單位內(nèi)到達(dá)的具有相同SID的數(shù)據(jù)計算和值,沒有數(shù)據(jù)到達(dá)的按照O插值或線性插值進(jìn)行處理。
[0041 ] 緩沖窗口層的數(shù)據(jù)為四元組:〈SID,Timestamp, Data,Synopsis〉,SID是數(shù)據(jù)流標(biāo)識符,Timestamp是所有基本窗口內(nèi)數(shù)據(jù)共享的時間戳,Data是窗口內(nèi)的數(shù)據(jù)的集合,Synopsis該緩沖窗口的統(tǒng)計信息或摘要信息,緩沖窗口層用于通過PCIE總線將每條數(shù)據(jù)流對應(yīng)的緩沖窗口的數(shù)據(jù)交換到MIC協(xié)處理器的內(nèi)存中,在MIC協(xié)處理器上生成基本窗口的摘要信息。
[0042]滑動窗口層的數(shù)據(jù)為三元組:〈SID,Data,Synopsis〉,SID表示該滑動窗口的數(shù)據(jù)流標(biāo)識符,Data是滑動窗口數(shù)據(jù),滑動窗口數(shù)據(jù)是在物理存儲上是連續(xù)的w/b個基本窗口的數(shù)據(jù)的集合,Synopsis是整個滑動窗口的概要數(shù)據(jù),滑動窗口層用于在新的緩沖窗口被交換到MIC協(xié)處理器的內(nèi)存時,增量維護(hù)每條數(shù)據(jù)流的整體摘要信息。
[0043]概要數(shù)據(jù)矩陣為:M = [s。,S1,...sn JT,M為概要矩陣,S1是索引SID = i的數(shù)據(jù)流的數(shù)據(jù)或概要數(shù)據(jù)結(jié)構(gòu)組成的行向量,概要數(shù)據(jù)矩陣用于通過將多個滑動窗口密集排列在概要數(shù)據(jù)矩陣中,保存在連續(xù)的內(nèi)存空間中。
[0044]該方法的具體使用中,需要硬件系統(tǒng)和四層滑動窗口模型的框架軟件系統(tǒng),其中,硬件系統(tǒng)包括:一個MIC高性能服務(wù)器系統(tǒng),該系統(tǒng)節(jié)點采用CPU+MIC異構(gòu)架構(gòu),節(jié)點內(nèi)除CPU芯片外,還含有至少一個MIC協(xié)處理器。
[0045]數(shù)據(jù)在CPU主機(jī)和MIC協(xié)處理器設(shè)備之間的傳輸需要經(jīng)過PCIE總線,盡管PCIE
2.0具有3.2G/s的理論帶寬,在二者之間傳輸數(shù)據(jù)仍然需要額外的時鐘開銷。在MIC協(xié)處理器數(shù)據(jù)流并行處理的應(yīng)用中,頻繁的數(shù)據(jù)交換是不可避免的,這也是MIC協(xié)處理器數(shù)據(jù)流并行計算的一個重要不利因素。而跨PCIE總線的四層滑動窗口模型能夠減少二者之間的數(shù)據(jù)交換頻率和數(shù)據(jù)交換量。
[0046]MIC卡可以看作是CPU的一個協(xié)處理器,它起到優(yōu)化算法運行時間從而提高數(shù)據(jù)流處理實時性,及分擔(dān)數(shù)據(jù)流處理任務(wù)的雙重任務(wù)。在四層滑動窗口模型中,MIC協(xié)處理器利用挖掘算法并行并行處理數(shù)據(jù)流,中央處理器具有處理復(fù)雜程序流程和強(qiáng)大的數(shù)據(jù)緩沖的能力,集中處理流程控制和數(shù)據(jù)緩沖數(shù)以千計的數(shù)據(jù)流的任務(wù)。
[0047]具體的,四層滑動窗口模型的框架軟件系統(tǒng)中,基于基本窗口方法的四層滑動窗口模型,其最突出的特點是具有三種不同粒度的時間單位:數(shù)據(jù)采樣時間單位、基本窗口時間單位和滑動窗口時間單位。而且?;敬翱诘囊粋€重要的意義是降低了對多個滑動窗口維護(hù)的時間和空間復(fù)雜度。在MIC協(xié)處理器對并行數(shù)據(jù)流的處理中,基本窗口提高數(shù)據(jù)流處理并行化粒度。
[0048]數(shù)據(jù)采樣時間單位是采集數(shù)據(jù)的最小時間單位,該時間段內(nèi)到達(dá)的數(shù)據(jù)流元組具有相同的時間戳。假設(shè)數(shù)據(jù)采樣時間單位為At,當(dāng)前時間戳為t,則t之后到達(dá)的任意數(shù)據(jù)的時間戳可以表示為t+iX At,其中i e I。
[0049]基本窗口時間單位是維護(hù)滑動窗口的基本單位,任何更新滑動窗口,刪除過期基本窗口,統(tǒng)計、摘要信息的維護(hù)都以該時間單位進(jìn)行?;敬翱跁r間單位越小,數(shù)據(jù)流處理的實時性越高,對數(shù)據(jù)流維護(hù)的計算開銷越大。設(shè)每個基本窗口含有b個元素,則每個基本窗口的時間跨度為AT = bX At?;敬翱跁r間單位的大小需要依據(jù)實際應(yīng)用需要和數(shù)據(jù)流的實際實時處理能力決定。更小的基本窗口時間單位雖然可以提供更好的數(shù)據(jù)流處理實時性。
[0050]對于四層滑動模型采用的基本窗口方法,基本窗口方法是一種在計算能力不足的情況下,擴(kuò)大數(shù)據(jù)流處理和挖掘算法時間間隔粒度的技術(shù)。在MIC協(xié)處理器對并行數(shù)據(jù)流的處理中,有時出現(xiàn)的由于數(shù)據(jù)流分塊不足以滿足MIC協(xié)處理器全功率計算,造成性能損失的情況,而在這種情況下,基本窗口方法使MIC協(xié)處理器能夠以更高的效率對數(shù)據(jù)流進(jìn)行并行計算。
[0051]滑動窗口時間單位是實際應(yīng)用需要維護(hù)的數(shù)據(jù)流時間跨度。設(shè)滑動窗口長度為W,窗口數(shù)量為n,基本窗口大小為b,則滑動窗口長度為w = nXbo
[0052]跨PCIE總線的四層滑動窗口模型是基于基本窗口技術(shù)的滑動窗口模型的基礎(chǔ)之上提出的,如圖2所示,圖2為四層滑動窗口模型示意圖。時序數(shù)據(jù)層的數(shù)據(jù)是三元組:〈SID,Timestamp,Value〉,SID是數(shù)據(jù)流標(biāo)識,Timestamp是元組到達(dá)時間,Value是數(shù)據(jù)值。該層的任務(wù)主要是數(shù)據(jù)1和數(shù)據(jù)緩沖。在這一層中,在任意數(shù)據(jù)采樣時間單位內(nèi)到達(dá)的具有相同SID的數(shù)據(jù)取其和,沒有數(shù)據(jù)到達(dá)表則按O插值或線性插值處理。例如:針對股票交易手?jǐn)?shù)的數(shù)據(jù)流應(yīng)采用O插值,股值的數(shù)據(jù)流則更適合線性插值。時序數(shù)據(jù)層的計算任務(wù)主要是數(shù)據(jù)緩沖,即從數(shù)據(jù)源獲取數(shù)據(jù),并將SID和Timestamp視為索引,僅將其值寫累加到多數(shù)據(jù)流數(shù)據(jù)緩沖區(qū)對應(yīng)SID和Timestamp的位置上,直至寫滿一個基本窗口的數(shù)據(jù)。由于CPU比MIC協(xié)處理器有更好的緩沖能力,因此該層的計算任務(wù)完全交由CPU完成。
[0053]在MIC協(xié)處理器多數(shù)據(jù)流處理模型中,用于緩沖一個基本窗口容量大小的數(shù)據(jù),向MIC協(xié)處理器設(shè)備交換數(shù)據(jù)的一個基本窗口,叫做緩沖窗口。緩沖窗口的實質(zhì)是一個基本窗口,它是基本窗口在特定狀態(tài)下的特定稱謂,緩沖窗口用于減少主機(jī)和協(xié)處理器間的數(shù)據(jù)交換頻率,提高多數(shù)據(jù)流并行計算的密集程度。數(shù)據(jù)緩沖層是MIC協(xié)處理器對多數(shù)據(jù)流并行處理的最小單位,經(jīng)過摘要處理的緩沖窗口作為普通的子窗口更新到滑動窗口中。數(shù)據(jù)緩沖層采用隨機(jī)內(nèi)存訪問機(jī)制,符合MIC并行計算對數(shù)據(jù)結(jié)構(gòu)的規(guī)格要求和數(shù)據(jù)并行訪問效率要求。
[0054]緩沖窗口層的數(shù)據(jù)為一個四元組:〈SID,Timestamp,Data,Synopsis〉,其中,SID是數(shù)據(jù)流標(biāo)識符,Timestamp是所有基本窗口內(nèi)數(shù)據(jù)共享的時間戳,Data是窗口內(nèi)的數(shù)據(jù)的集合,Synopsis該緩沖窗口的統(tǒng)計信息或摘要信息。根據(jù)應(yīng)用的不同可以省略數(shù)據(jù)Data,而僅僅保留其摘要信息Synopsis。從緩沖窗口開始的計算任務(wù)被轉(zhuǎn)移到MIC協(xié)處理器上,MIC協(xié)處理器使用MIC核算法并行執(zhí)行計算任務(wù),滑動窗口層的計算任務(wù)有兩個:通過PCIE總線將η條數(shù)據(jù)流的η個緩沖窗口的數(shù)據(jù)交換到MIC內(nèi)存,及在MIC協(xié)處理器上執(zhí)行基本窗口摘要信息維護(hù)內(nèi)核,生成基本窗口的摘要信息。經(jīng)過MIC協(xié)處理器內(nèi)核處理并更新到滑動窗口上的緩沖窗口,可以視為一個普通的基本窗口,緩沖窗口用于基本窗口上的增量統(tǒng)計信息的維護(hù)。
[0055]滑動窗口層的數(shù)據(jù)是一個三元組:〈SID,Data,Synopsis〉,其中,SID表示該滑動窗口的數(shù)據(jù)流標(biāo)識符,Data是滑動窗口數(shù)據(jù),它在物理存儲上是連續(xù)的w/b個基本窗口的數(shù)據(jù)的集合,Synopsis是整個滑動窗口的概要數(shù)據(jù)?;瑒哟翱诤突敬翱谙嗤梢愿鶕?jù)需要選擇是否保留窗口數(shù)據(jù)。
[0056]滑動窗口層是滑動窗口內(nèi)所有未過期的基本窗口的集合,設(shè)滑動窗口的長度為W,則對于{t-w+1,t}時間內(nèi)的數(shù)據(jù),由于滑動窗口的更新時以基本窗口為單位,設(shè)每個基本窗口的長度為b,則對于任意一條數(shù)據(jù)流,每次有b個數(shù)據(jù)過期,b個新數(shù)據(jù)被更新?;瑒哟翱?