亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

采用向量處理的同時(shí)分割的制作方法

文檔序號(hào):11635365閱讀:307來源:國(guó)知局
采用向量處理的同時(shí)分割的制造方法與工藝



背景技術(shù):

本發(fā)明的一些實(shí)施例涉及輸入數(shù)據(jù)流的分割,更具體地但不僅限于,涉及通過將輸入數(shù)據(jù)流拆分成采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來分割輸入數(shù)據(jù)流。

當(dāng)今是信息時(shí)代,需要在各地之間存儲(chǔ)和/或傳輸?shù)臄?shù)據(jù)量迅速增加??紤]到用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間和/或用于傳輸數(shù)據(jù)的網(wǎng)絡(luò)帶寬,巨大的數(shù)據(jù)量可能主要帶來成本和/或復(fù)雜性的挑戰(zhàn)。

常用于減少存儲(chǔ)和/或傳輸?shù)臄?shù)據(jù)的量的一種解決方案是重復(fù)數(shù)據(jù)刪除(通常稱為“智能壓縮”或“單實(shí)例存儲(chǔ)”),其是通過消除冗余數(shù)據(jù)來減少數(shù)據(jù)量的方法。雖然存在用于重復(fù)文件刪除的方法,但是考慮到數(shù)據(jù)壓縮,塊重復(fù)刪除可以呈現(xiàn)更好的結(jié)果。在塊重復(fù)刪除中,實(shí)際上只保留數(shù)據(jù)流的數(shù)據(jù)段(塊)的唯一一個(gè)實(shí)例,而與已經(jīng)保留的數(shù)據(jù)段相同的冗余數(shù)據(jù)段替換為指向保留數(shù)據(jù)段的副本的指針。塊重復(fù)刪除處理可包括多個(gè)數(shù)據(jù)類型例如,數(shù)據(jù)文件、媒體文件、流數(shù)據(jù)等的數(shù)據(jù)流,以識(shí)別一個(gè)或多個(gè)數(shù)據(jù)段(塊)的唯一實(shí)例。使用rabin-karp滾動(dòng)哈希和/或buzhash等哈希算法為每個(gè)分段生成唯一的數(shù)(哈希值)。將針對(duì)每個(gè)分段生成的哈希值與針對(duì)先前分段生成的現(xiàn)有哈希值進(jìn)行比較,并且若該哈希值等于現(xiàn)有哈希值,則該分段不保留,而由指向現(xiàn)有分段的副本的指針替代。此外,若該分段更新,可僅保留改變的數(shù)據(jù),而不保留可能包括大量這種分段的剩余未改變數(shù)據(jù)。

主要挑戰(zhàn)之一是有效地分割數(shù)據(jù)流,以使對(duì)分段的數(shù)據(jù)內(nèi)容的改變盡可能少地影響分段。如業(yè)內(nèi)已知,滾動(dòng)哈希技術(shù)可以用于對(duì)數(shù)據(jù)流進(jìn)行分割。使用滾動(dòng)哈希,計(jì)算在數(shù)據(jù)流中對(duì)數(shù)據(jù)序列進(jìn)行移位的哈希值(在每個(gè)滾動(dòng)序列中刪除結(jié)束數(shù)據(jù)項(xiàng)并插入新數(shù)據(jù)項(xiàng))。檢查所計(jì)算的哈希值是否符合預(yù)定義的一個(gè)或多個(gè)分割標(biāo)準(zhǔn),且若識(shí)別出符合,將各個(gè)滾動(dòng)序列的起始點(diǎn)指定為分段邊界或切割點(diǎn)。



技術(shù)實(shí)現(xiàn)要素:

根據(jù)本發(fā)明的第一方面,提供一種分割輸入數(shù)據(jù)流的系統(tǒng),包括:處理器,用于:將輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,使得所述多個(gè)子數(shù)據(jù)流的每個(gè)子數(shù)據(jù)流與所述多個(gè)子數(shù)據(jù)流中與其相鄰的子數(shù)據(jù)流具有重疊部分;在所述處理器的處理管線中同時(shí)分割所述多個(gè)子數(shù)據(jù)流以創(chuàng)建多個(gè)分割的子數(shù)據(jù)流;根據(jù)所述多個(gè)子數(shù)據(jù)流中的每?jī)蓚€(gè)連續(xù)子數(shù)據(jù)流的重疊部分的至少一個(gè)重疊分段同步所述多個(gè)分割的子數(shù)據(jù)流的每個(gè)分割的子數(shù)據(jù)流的排序,連接所述多個(gè)分割的子數(shù)據(jù)流以創(chuàng)建分割的數(shù)據(jù)流。

術(shù)語“同時(shí)”因此具有在持續(xù)時(shí)間中重疊的含義,還包括同時(shí)的,例如,發(fā)生在同一時(shí)間的含義。

在本發(fā)明第一方面的第一種實(shí)現(xiàn)方式中,所述處理器是單指令多數(shù)據(jù)(single-instruction-multiple-data,簡(jiǎn)稱simd)處理器。

根據(jù)第一方面的第一種實(shí)現(xiàn)方式,在第一方面的第二種實(shí)現(xiàn)方式中,所述處理器用于:計(jì)算滾動(dòng)序列的滾動(dòng)哈希值;其中,所述滾動(dòng)序列應(yīng)用于所述多個(gè)子數(shù)據(jù)流中的每個(gè)子數(shù)據(jù)流的連續(xù)數(shù)據(jù)項(xiàng)的多個(gè)序列中的每個(gè)序列;當(dāng)所述滾動(dòng)哈希值符合至少一個(gè)分割標(biāo)準(zhǔn)時(shí)將序列指定為可變長(zhǎng)分段以分割所述多個(gè)子數(shù)據(jù)流中的每個(gè)子數(shù)據(jù)流,其中,所述滾動(dòng)序列包括序列的連續(xù)數(shù)據(jù)項(xiàng)的子集。

根據(jù)第一方面的第一或第二種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第一方面的第三種實(shí)現(xiàn)方式中,所述多個(gè)序列的每個(gè)序列包括預(yù)定義的最少連續(xù)數(shù)據(jù)項(xiàng)。

根據(jù)第一方面的第一至第三種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第一方面的第四種實(shí)現(xiàn)方式中,當(dāng)在檢測(cè)所述滾動(dòng)哈希值對(duì)所述至少一個(gè)分割標(biāo)準(zhǔn)的符合性之前,所述多個(gè)序列中的至少一個(gè)大序列的連續(xù)數(shù)據(jù)項(xiàng)的數(shù)量超過預(yù)定義最大值,所述處理器用于將所述至少一個(gè)大序列指定為可變長(zhǎng)分段。

根據(jù)第一方面的第一至第四種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第一方面的第五種實(shí)現(xiàn)方式中,所述處理器用于當(dāng)所述同步失敗時(shí),依次分割所述輸入數(shù)據(jù)流。

根據(jù)本發(fā)明的第二方面,提供一種分割輸入數(shù)據(jù)流的方法,包括:將輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,使得所述多個(gè)子數(shù)據(jù)流的每個(gè)子數(shù)據(jù)流與所述多個(gè)子數(shù)據(jù)流中與其相鄰的子數(shù)據(jù)流具有重疊部分;在處理器的處理管線中同時(shí)分割所述多個(gè)子數(shù)據(jù)流以創(chuàng)建多個(gè)分割的子數(shù)據(jù)流;根據(jù)所述多個(gè)子數(shù)據(jù)流中的每?jī)蓚€(gè)連續(xù)子數(shù)據(jù)流的重疊部分的至少一個(gè)重疊分段同步所述多個(gè)分割的子數(shù)據(jù)流的每個(gè)分割的子數(shù)據(jù)流的排序,連接所述多個(gè)分割的子數(shù)據(jù)流以創(chuàng)建分割的數(shù)據(jù)流。

在本發(fā)明第二方面的第一種實(shí)現(xiàn)方式中,計(jì)算滾動(dòng)序列的滾動(dòng)哈希值;其中,所述滾動(dòng)序列應(yīng)用于所述多個(gè)子數(shù)據(jù)流的每個(gè)子數(shù)據(jù)流的連續(xù)數(shù)據(jù)項(xiàng)的多個(gè)序列中的每個(gè)序列的滾動(dòng)序列;當(dāng)所述滾動(dòng)哈希值符合至少一個(gè)分割標(biāo)準(zhǔn)時(shí)將序列指定為可變長(zhǎng)分段以分割所述多個(gè)子數(shù)據(jù)流中的每個(gè)子數(shù)據(jù)流,其中,所述滾動(dòng)序列包括序列的連續(xù)數(shù)據(jù)項(xiàng)的子集。

根據(jù)第二方面的第一種實(shí)現(xiàn)方式,在第二方面的第二種實(shí)現(xiàn)方式中,所述多個(gè)序列的每個(gè)序列包括預(yù)定義的最少連續(xù)數(shù)據(jù)項(xiàng)。

根據(jù)第二方面的第一或第二種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第二方面的第三種實(shí)現(xiàn)方式中,當(dāng)在檢測(cè)所述滾動(dòng)哈希值對(duì)所述至少一個(gè)分割標(biāo)準(zhǔn)的符合性之前,所述多個(gè)序列中的至少一個(gè)大序列的連續(xù)數(shù)據(jù)項(xiàng)的數(shù)量超過預(yù)定義最大值,將所述至少一個(gè)大序列指定為可變長(zhǎng)分段。

根據(jù)第二方面的第一至第三種實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在第二方面的第四種實(shí)現(xiàn)方式中,當(dāng)所述同步失敗時(shí),依次分割所述輸入數(shù)據(jù)流。

附圖說明

此處僅作為示例,結(jié)合附圖描述了本發(fā)明的一些實(shí)施例?,F(xiàn)在具體結(jié)合附圖,需要強(qiáng)調(diào)的是所示的項(xiàng)目作為示例,為了說明性地討論本發(fā)明的實(shí)施例。這樣,根據(jù)附圖說明,如何實(shí)踐本發(fā)明實(shí)施例對(duì)本領(lǐng)域技術(shù)人員而言是顯而易見的。

在附圖中:

圖1是本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流分成采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來拆分輸入數(shù)據(jù)流的示例性系統(tǒng)的示意圖;

圖2是本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流分成采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來拆分輸入數(shù)據(jù)流的示例性過程的流程圖;

圖3是本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流拆分成多個(gè)子流的示例性過程的示意圖;

圖4是本發(fā)明一些實(shí)施例連接多個(gè)分割的子數(shù)據(jù)流以創(chuàng)建分割的數(shù)據(jù)流的示例性過程的示意圖;

圖5是使用滾動(dòng)哈希分割來分割輸入數(shù)據(jù)流的示例性過程的示意圖;

圖6是本發(fā)明的一些實(shí)施例使用滾動(dòng)哈希分割同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7a是本發(fā)明的一些實(shí)施例在第一時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7b是本發(fā)明的一些實(shí)施例在第二時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7c是本發(fā)明的一些實(shí)施例在第三時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7d是本發(fā)明的一些實(shí)施例在第四時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7e是本發(fā)明的一些實(shí)施例在第五時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7f是本發(fā)明的一些實(shí)施例在第六時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7g是本發(fā)明的一些實(shí)施例在第七時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7h是本發(fā)明的一些實(shí)施例在第八時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7i是本發(fā)明的一些實(shí)施例在第九時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7j是本發(fā)明的一些實(shí)施例在第十時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7k是本發(fā)明的一些實(shí)施例在第十一時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7l是本發(fā)明的一些實(shí)施例在第十二時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖;

圖7m是本發(fā)明的一些實(shí)施例在第十三時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖。

具體實(shí)施方式

本發(fā)明的一些實(shí)施例涉及輸入數(shù)據(jù)流的分割,更具體地但不僅限于,涉及通過采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來分割輸入數(shù)據(jù)流。

本發(fā)明提供一種分割輸入數(shù)據(jù)流的系統(tǒng)和方法,采用向量處理作為對(duì)輸入數(shù)據(jù)流的重復(fù)刪除過程的一部分,以便通過去除冗余(重復(fù)的)數(shù)據(jù)段減少輸入數(shù)據(jù)流,例如,數(shù)據(jù)文件、媒體文件、流數(shù)據(jù)等的數(shù)據(jù)量。執(zhí)行用于減少輸入數(shù)據(jù)流的數(shù)據(jù)量的重復(fù)刪除過程,以便減少存儲(chǔ)和/或傳輸輸入數(shù)據(jù)流所需的存儲(chǔ)空間和/或網(wǎng)絡(luò)帶寬。分割通過以下方式實(shí)現(xiàn):通過將輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,通過單指令多數(shù)據(jù)(singleinstructionmultipledata,簡(jiǎn)稱simd)處理器等向量處理器的多個(gè)處理管線并行地分割子數(shù)據(jù)流以及連接分割的子數(shù)據(jù)流以形成分割的數(shù)據(jù)流。將輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,使得每個(gè)子數(shù)據(jù)流和與其相鄰的子數(shù)據(jù)流的數(shù)據(jù)有部分重疊。在所有子數(shù)據(jù)流分割完成之后,通過使每?jī)蓚€(gè)子數(shù)據(jù)流之間的重疊部分中的數(shù)據(jù)段(塊)同步來將子數(shù)據(jù)流彼此連接。由于處理管線將相同的分割技術(shù)和/或分割標(biāo)準(zhǔn)應(yīng)用于子數(shù)據(jù)流,因此預(yù)期重疊部分中的分割是相同的,并且因此分割可以用于使子數(shù)據(jù)流彼此同步??梢允褂枚鄠€(gè)分割技術(shù)中的一個(gè)或多個(gè)來完成每個(gè)子數(shù)據(jù)流的分割,例如,為沿著子數(shù)據(jù)流移位的滾動(dòng)序列計(jì)算唯一哈希值,并將該哈希值與一個(gè)或多個(gè)分割標(biāo)準(zhǔn)進(jìn)行比較。哈希值可以通過多個(gè)哈希算法中的一個(gè)或多個(gè)來計(jì)算,例如,rabin-karp滾動(dòng)哈?;騜uzhash。

可選地,在一個(gè)或多個(gè)子數(shù)據(jù)流的同步失敗的情況下,對(duì)輸入數(shù)據(jù)流進(jìn)行順序分割。

與現(xiàn)有的順序分割方法相比,采用向量處理架構(gòu)的多個(gè)處理管線的同時(shí)分割可能呈現(xiàn)顯著的優(yōu)點(diǎn)。向量處理技術(shù)在許多方面迅速發(fā)展,例如,在現(xiàn)代處理器中可用的處理管線的數(shù)量、可以并行處理的數(shù)據(jù)項(xiàng)的數(shù)量和/或處理器的處理能力。雖然輸入數(shù)據(jù)流的有效分割可能對(duì)整個(gè)重復(fù)刪除過程的有效性做出了主要貢獻(xiàn),但該分割可能是重復(fù)刪除過程中主要的耗時(shí)操作和/或處理器密集操作之一。由于輸入序列的數(shù)據(jù)項(xiàng)可以視為是彼此獨(dú)立的,因此可以充分利用向量處理技術(shù),例如simd處理器和/或引擎,并行拆分和處理輸入數(shù)據(jù)流。與當(dāng)前分割方法所采用的順序分割相比,采用向量處理器處理輸入數(shù)據(jù)流可以顯著減少分割時(shí)間。隨著分割時(shí)間顯著減少,整個(gè)重復(fù)刪除過程可以顯著縮短,并且可能去除數(shù)據(jù)傳輸和/或數(shù)據(jù)存儲(chǔ)操作中的瓶頸。

此外,采用向量處理架構(gòu)的多個(gè)處理管線的同時(shí)分割應(yīng)用現(xiàn)有的順序分割方法所使用的標(biāo)準(zhǔn)分割技術(shù)。這可能允許分割過程中的向后符合性,因此不會(huì)對(duì)在重復(fù)刪除過程應(yīng)用的其他操作和/或算法造成影響。此外,本發(fā)明中呈現(xiàn)的同時(shí)分割過程所使用的分割技術(shù)的向后符合性可能允許將同時(shí)分割過程與順序分割過程耦合,使得對(duì)輸入數(shù)據(jù)流的一些部分進(jìn)行同時(shí)分割處理,而其他部分則可進(jìn)行順序分割處理。

在詳細(xì)解釋本發(fā)明的至少一個(gè)實(shí)施例之前,應(yīng)當(dāng)理解,本發(fā)明不必將其應(yīng)用限于在下面的描述中闡述的和/或在附圖和/或?qū)嵤├姓f明的部件和/或方法的結(jié)構(gòu)和布置的細(xì)節(jié)。本發(fā)明可以有其他實(shí)施例或可以采用各種方式實(shí)踐或執(zhí)行。

本發(fā)明可以是系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。所述計(jì)算機(jī)程序產(chǎn)品可以包括具有計(jì)算機(jī)可讀程序指令的一個(gè)(或多個(gè))計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令用于使處理器執(zhí)行本發(fā)明的各個(gè)方面。

所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是有形設(shè)備,該有形設(shè)備可以保存和存儲(chǔ)指令執(zhí)行設(shè)備使用的指令。例如,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是但不限于電子存儲(chǔ)設(shè)備、磁性存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或這幾者的任意合適組合。

可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中將此處描述的計(jì)算機(jī)可讀程序指令下載到各個(gè)計(jì)算/處理設(shè)備上,或通過網(wǎng)絡(luò)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備上,所述網(wǎng)絡(luò)如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)。

所述計(jì)算機(jī)可讀程序指令可以完全在用戶電腦上執(zhí)行,部分在用戶電腦上執(zhí)行,或作為獨(dú)立的軟件包,部分在用戶電腦上執(zhí)行,部分在遠(yuǎn)端電腦上執(zhí)行,或完全在遠(yuǎn)端電腦或服務(wù)器上執(zhí)行。在后面的場(chǎng)景中,遠(yuǎn)端電腦可以通過任何類型的網(wǎng)絡(luò)與用戶電腦連接,包括局域網(wǎng)(localareanetwork,簡(jiǎn)稱lan)或廣域網(wǎng)(wideareanetwork,簡(jiǎn)稱wan),或者,可以(例如,使用因特網(wǎng)服務(wù)提供商通過因特網(wǎng))在外部電腦上建立該連接。在一些實(shí)施例中,包括可編程邏輯電路、現(xiàn)場(chǎng)可編程門陣列(field-programmablegatearray,簡(jiǎn)稱fpga)或可編程邏輯陣列(programmablelogicarray,簡(jiǎn)稱pla)等的電子電路可以利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息執(zhí)行所述計(jì)算機(jī)可讀程序指令以個(gè)性化所述電子電路,以便執(zhí)行本發(fā)明的各方面。

此處,結(jié)合本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))以及計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)框以及流程圖和/或框圖中的框的組合可以由計(jì)算機(jī)可讀程序指令來實(shí)現(xiàn)。

附圖中的流程圖和框圖示出了根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。此時(shí),流程圖或框圖中的每個(gè)框都可以代表一個(gè)模塊、分段或指令的一部分,包括一個(gè)或多個(gè)用于實(shí)現(xiàn)特定邏輯功能的可執(zhí)行指令。在一些替代的實(shí)現(xiàn)方式中,框中指出的功能可以不按照?qǐng)D中的順序?qū)崿F(xiàn)。例如,事實(shí)上,連續(xù)展示的兩個(gè)框可以同時(shí)執(zhí)行,或者有時(shí)候,框可以按照相反的順序執(zhí)行,這取決于所涉及的功能。還應(yīng)注意的是,框圖和/或流程圖中每一個(gè)框以及框圖和/或流程圖中框的組合可以由基于專用硬件的系統(tǒng)執(zhí)行,該系統(tǒng)執(zhí)行指定的功能或動(dòng)作,或者執(zhí)行專用硬件和計(jì)算機(jī)指令的組合。

現(xiàn)在參考圖1,其是根據(jù)本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流分成采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來拆分輸入數(shù)據(jù)流的示例性系統(tǒng)的示意圖。系統(tǒng)100包括用于接收和/或指定輸入數(shù)據(jù)流120和/或輸出分割的數(shù)據(jù)流130的輸入/輸出(i/o)接口102;處理器104,包括多個(gè)處理管線106,用于分割輸入數(shù)據(jù)流120以創(chuàng)建分割的數(shù)據(jù)流130;和程序存儲(chǔ)器108。輸入數(shù)據(jù)流120可以一種或多種格式接收,例如數(shù)據(jù)文件、媒體文件和流數(shù)據(jù)等。輸入數(shù)據(jù)流120包括多個(gè)數(shù)據(jù)項(xiàng),例如可以作為流的順序排列的字節(jié)、字、雙字和/或像素。i/o接口102可以包括一個(gè)或多個(gè)接口,例如網(wǎng)絡(luò)接口、存儲(chǔ)器接口和/或存儲(chǔ)接口。i/o接口102可以用于,例如,通過網(wǎng)絡(luò)接收和/或傳輸數(shù)據(jù)流120和/或130,用于獲取數(shù)據(jù)流120和/或130和/或?qū)?shù)據(jù)流120和/或130存儲(chǔ)到存儲(chǔ)器設(shè)備和/或存儲(chǔ)設(shè)備等。處理器104可以包括一個(gè)或多個(gè)處理器,每個(gè)處理器具有一個(gè)或多個(gè)核。處理器104還包括向量處理能力,例如多個(gè)處理管線106。處理管線106支持的多個(gè)獨(dú)立執(zhí)行管線均能夠處理數(shù)據(jù),例如多個(gè)處理器、多核和/或向量處理器,例如simd處理器和/或simd引擎。simd引擎包括能夠在處理器104的單個(gè)指令下同時(shí)處理多個(gè)數(shù)據(jù)項(xiàng)的多個(gè)處理管線106。程序存儲(chǔ)器108可以包括一個(gè)或多個(gè)非瞬時(shí)性持久存儲(chǔ)設(shè)備,例如硬盤驅(qū)動(dòng)器和閃存陣列等。

現(xiàn)在同時(shí)參考圖2,其是根據(jù)本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流分成采用向量處理并行分割的多個(gè)子數(shù)據(jù)流來拆分輸入數(shù)據(jù)流的示例性過程的流程圖。分割過程200可以由系統(tǒng)100等系統(tǒng)執(zhí)行。過程200應(yīng)用于將輸入數(shù)據(jù)流120拆分成多個(gè)子數(shù)據(jù)流來分割的輸入數(shù)據(jù)流120,所述多個(gè)子數(shù)據(jù)流由多個(gè)處理管線106同時(shí)并行地分割并連接在一起以創(chuàng)建分割的數(shù)據(jù)流,例如分割的數(shù)據(jù)流130。

分割過程200可以由一個(gè)或多個(gè)軟件模塊完成,例如協(xié)調(diào)器110和/或計(jì)算節(jié)點(diǎn)112,其包括由處理器104和/或處理管線106執(zhí)行的來自程序存儲(chǔ)器108的多個(gè)程序指令。可選地,計(jì)算節(jié)點(diǎn)112可以包括嵌有處理管線106的一個(gè)或多個(gè)微代碼模塊,其中,微代碼模塊包括由處理管線106執(zhí)行的程序指令。協(xié)調(diào)器110可以例如由處理器104的處理單元執(zhí)行。協(xié)調(diào)器110可以管理和/或協(xié)調(diào)分割過程,例如在多個(gè)處理管線106之間分發(fā)數(shù)據(jù),從多個(gè)處理管線106收集數(shù)據(jù),同步數(shù)據(jù),同步任務(wù)和/或協(xié)調(diào)計(jì)算節(jié)點(diǎn)112等等。處理器104和/或每個(gè)處理管線106可以執(zhí)行計(jì)算節(jié)點(diǎn)112的實(shí)例以同時(shí)處理輸入數(shù)據(jù)流120的子數(shù)據(jù)流。若處理器104是包括作為獨(dú)立處理單元的處理管線106的向量處理器,每個(gè)處理管線106可以獨(dú)立地執(zhí)行計(jì)算節(jié)點(diǎn)112實(shí)例。然而,若處理器104將simd引擎并入,計(jì)算節(jié)點(diǎn)112可以由向simd引擎的每個(gè)處理管線106分配數(shù)據(jù)的處理器104執(zhí)行。然后,處理器104可以發(fā)起單個(gè)指令以指示simd引擎的所有處理管線106同時(shí)執(zhí)行相同的操作(指令),每個(gè)處理管線106處理其各自的分配的數(shù)據(jù)。

如202所示,過程200開始于協(xié)調(diào)器110接收輸入數(shù)據(jù)流120。

如204所示,協(xié)調(diào)器110將輸入數(shù)據(jù)流120拆分成多個(gè)子數(shù)據(jù)流,并將多個(gè)子數(shù)據(jù)流分發(fā)到多個(gè)計(jì)算節(jié)點(diǎn)112,每個(gè)計(jì)算節(jié)點(diǎn)由相應(yīng)的一個(gè)處理管線106執(zhí)行??梢愿鶕?jù)處理管線106等可用處理管線的數(shù)量來選擇子數(shù)據(jù)流的數(shù)量。若過程200由具有simd引擎的處理器104執(zhí)行,計(jì)算節(jié)點(diǎn)110由處理器104執(zhí)行,處理器104將子數(shù)據(jù)流的數(shù)據(jù)分配給simd引擎的處理管線106。協(xié)調(diào)器110拆分輸入數(shù)據(jù)流120,使得每對(duì)連續(xù)子數(shù)據(jù)流與相鄰子數(shù)據(jù)流,即,前一子數(shù)據(jù)流和/或后一子數(shù)據(jù)流,具有重疊部分。協(xié)調(diào)器110可以設(shè)置重疊部分的長(zhǎng)度以最好地適應(yīng)用于計(jì)算節(jié)點(diǎn)110分割多個(gè)子數(shù)據(jù)流中的每一個(gè)的一個(gè)或多個(gè)分割技術(shù),如下文所述。

現(xiàn)在參考圖3,其是根據(jù)本發(fā)明的一些實(shí)施例將輸入數(shù)據(jù)流拆分成多個(gè)子流的示例性過程的示意圖。協(xié)調(diào)器110等協(xié)調(diào)器接收示例性輸入數(shù)據(jù)流,例如輸入數(shù)據(jù)流120,由計(jì)算節(jié)點(diǎn)112等多個(gè)計(jì)算節(jié)點(diǎn)處理。協(xié)調(diào)器110將輸入數(shù)據(jù)流120拆分成,例如,四個(gè)子數(shù)據(jù)流300a、300b、300c和300d。這里描述的子數(shù)據(jù)流的數(shù)量是任意選擇的??梢愿鶕?jù)處理管線106等可用處理管線的數(shù)量來選擇子數(shù)據(jù)流的數(shù)量,例如4、8、16、64、128、256和/或256。此外,隨著處理器技術(shù)的進(jìn)步,能夠并行處理的處理管線106的數(shù)量不斷增加,因此子數(shù)據(jù)流的數(shù)量可相應(yīng)地增加。預(yù)期在大多數(shù)情況下(即,輸入數(shù)據(jù)流120足夠大),分割性能隨著處理管線的增加而提升。協(xié)調(diào)器110拆分輸入數(shù)據(jù)流120,使得輸入數(shù)據(jù)流300a、300b、300c和300d中的每一個(gè)與相鄰的前一和/或在后一子數(shù)據(jù)流300a、300b、300c和/或300d具有重疊部分。例如,子數(shù)據(jù)流300a與子數(shù)據(jù)流300b具有重疊部分302a,子數(shù)據(jù)流300b與子數(shù)據(jù)流300c具有重疊部分302b,并且子數(shù)據(jù)流300c與子數(shù)據(jù)流300d具有重疊部分302c。很明顯,中心子數(shù)據(jù)流,例如子數(shù)據(jù)流300b和300c分別具有兩個(gè)重疊部分,例如,分別與前一子數(shù)據(jù)流300a和300b具有的第一重疊部分302a和302b以及分別與后一子數(shù)據(jù)流300c和300d具有的第二重疊部分302b和302c。協(xié)調(diào)器110可選擇和/或調(diào)整重疊部分的長(zhǎng)度以最好地適應(yīng)用于分割子數(shù)據(jù)流300a、300b、220c和300d的分割技術(shù)。通常,選擇讓重疊部分302a,302b和/或302b等重疊部分的長(zhǎng)度包括若干數(shù)據(jù)段(塊),例如4、8和/或16個(gè)分段。雖然大多數(shù)分割技術(shù)可以創(chuàng)建可變長(zhǎng)度分段,但是分段可以保持平均分段長(zhǎng)度,例如4千字節(jié)(kilobytes,簡(jiǎn)稱kb),其可以在預(yù)定義的最小分段長(zhǎng)度和預(yù)定義的最大分段長(zhǎng)度之間變化。

再次參考圖2。如206所示,計(jì)算節(jié)點(diǎn)112同時(shí)分割子數(shù)據(jù)流300a-300d。若處理管線106分別獨(dú)立地執(zhí)行計(jì)算節(jié)點(diǎn)112,則每個(gè)計(jì)算節(jié)點(diǎn)112分割相應(yīng)的多于一個(gè)的子數(shù)據(jù)流300a-300d以創(chuàng)建相應(yīng)的多于一個(gè)的分割的子數(shù)據(jù)流。若處理管線106是simd處理管線,處理器104執(zhí)行計(jì)算節(jié)點(diǎn)112,其發(fā)起單個(gè)指令,用于simd引擎的處理管線106同時(shí)分割各個(gè)子數(shù)據(jù)流300a-300d。計(jì)算節(jié)點(diǎn)112可以使用多個(gè)分割技術(shù)中的一個(gè)或多個(gè)來對(duì)各個(gè)子數(shù)據(jù)流進(jìn)行分割,例如,計(jì)算在每個(gè)子數(shù)據(jù)流上移位的滾動(dòng)序列的滾動(dòng)哈希值,以及檢查滾動(dòng)哈希值對(duì)一個(gè)或多個(gè)分割標(biāo)準(zhǔn)的符合性。計(jì)算節(jié)點(diǎn)112可以使用現(xiàn)有技術(shù)中已知的和/或尚未知的其他分割方法,因?yàn)榭梢詫?duì)過程200應(yīng)用任何適用的分割技術(shù)。對(duì)于具有simd引擎的處理器104,由處理器104執(zhí)行的計(jì)算節(jié)點(diǎn)112向每個(gè)simd引擎處理管線106分配子數(shù)據(jù)流300a-300d中相應(yīng)一個(gè)的數(shù)據(jù)。simd引擎處理管線106在計(jì)算節(jié)點(diǎn)112(處理器104)的單個(gè)指令下同時(shí)分割子數(shù)據(jù)流300a-300d。

可選地,計(jì)算節(jié)點(diǎn)112開始以預(yù)定義的最小長(zhǎng)度來分割每個(gè)數(shù)據(jù)段(塊)。當(dāng)每個(gè)計(jì)算節(jié)點(diǎn)112應(yīng)用滾動(dòng)哈希分割技術(shù)時(shí),計(jì)算節(jié)點(diǎn)112開始計(jì)算遵循預(yù)定義的最小長(zhǎng)度的數(shù)據(jù)項(xiàng)的哈希值。通常,對(duì)于重復(fù)數(shù)據(jù)刪除,數(shù)據(jù)段的長(zhǎng)度可以是例如4kb、6kb和/或8kb,其可能最適合當(dāng)前處理,存儲(chǔ)和/或網(wǎng)絡(luò)吞吐量和性能,以關(guān)于分段的數(shù)量?jī)?yōu)化處理數(shù)據(jù)段的開銷?;诘湫偷亩伍L(zhǎng)度,預(yù)定義的最小長(zhǎng)度可以是例如2kb。

可選地,計(jì)算節(jié)點(diǎn)112向分割的子數(shù)據(jù)流中的每個(gè)數(shù)據(jù)段(塊)應(yīng)用預(yù)定義的最大長(zhǎng)度。當(dāng)每個(gè)計(jì)算節(jié)點(diǎn)112應(yīng)用滾動(dòng)哈希分割技術(shù)時(shí),若計(jì)算節(jié)點(diǎn)112檢測(cè)到滾動(dòng)哈希值對(duì)一個(gè)或多個(gè)分割標(biāo)準(zhǔn)的符合性之前即達(dá)到數(shù)據(jù)項(xiàng)的預(yù)定義的最大長(zhǎng)度,計(jì)算節(jié)點(diǎn)112可以“切割”,即,指定數(shù)據(jù)段?;诘湫偷亩伍L(zhǎng)度,預(yù)定義的最大長(zhǎng)度可以是例如16kb。

如208所示,在計(jì)算節(jié)點(diǎn)112已經(jīng)完成對(duì)它們各自的子數(shù)據(jù)流300a-300d的分割之后,協(xié)調(diào)器110同步子數(shù)據(jù)流300a-300d以恢復(fù)原始輸入數(shù)據(jù)流120的原始排序。協(xié)調(diào)器110通過分析由子數(shù)據(jù)流300a-300d的每對(duì)連續(xù)子數(shù)據(jù)流共享的分割的重疊部分302a-302c來同步子數(shù)據(jù)流300a-300d。由于所有計(jì)算節(jié)點(diǎn)112使用相同的分割技術(shù)和相同的分割標(biāo)準(zhǔn)來分割子數(shù)據(jù)流300a-300d,因此預(yù)期每?jī)蓚€(gè)相鄰分割的子數(shù)據(jù)流300a-300d的各個(gè)重疊部分302a-302c的分割相同。協(xié)調(diào)器110可以識(shí)別連續(xù)子數(shù)據(jù)流300a-300d中的相同分段區(qū)域,以適當(dāng)?shù)赝阶訑?shù)據(jù)流300a-300d的分割。

如210所示,在協(xié)調(diào)器110同步分割的子數(shù)據(jù)流300a-300d之后,協(xié)調(diào)器110將分割的子數(shù)據(jù)流連接在一起以創(chuàng)建與原始接收的輸入數(shù)據(jù)流120對(duì)應(yīng)的完整分割的數(shù)據(jù)流130。

可選地,若協(xié)調(diào)器110同步分割的子數(shù)據(jù)流300a-300d失敗,則協(xié)調(diào)器110對(duì)輸入數(shù)據(jù)流120進(jìn)行分割,即不拆分輸入數(shù)據(jù)流120并采用計(jì)算節(jié)點(diǎn)112同時(shí)分割子數(shù)據(jù)流300a-300d。

現(xiàn)在參考圖4,其是本發(fā)明的一些實(shí)施例連接多個(gè)分割的子數(shù)據(jù)流以創(chuàng)建分割的數(shù)據(jù)流的示例性過程的示意圖。若處理器104等處理器包括多個(gè)獨(dú)立的處理管線,每個(gè)處理管線執(zhí)行計(jì)算節(jié)點(diǎn)112等計(jì)算節(jié)點(diǎn)的實(shí)例。計(jì)算節(jié)點(diǎn)112等多個(gè)計(jì)算節(jié)點(diǎn)分割相應(yīng)的子數(shù)據(jù)流,例如子數(shù)據(jù)流300a-300d,以創(chuàng)建相應(yīng)的分割的子數(shù)據(jù)流400a、400b、400c和400d。若處理器104具有simd引擎,由處理器104執(zhí)行計(jì)算節(jié)點(diǎn)112,其向simd引擎的每個(gè)處理管線106分配子數(shù)據(jù)流300a-300d中相應(yīng)一個(gè)的數(shù)據(jù)。處理管線106的simd引擎在(由處理器104執(zhí)行的)計(jì)算節(jié)點(diǎn)112的指令下同時(shí)分割子數(shù)據(jù)流300a-300d。在所有計(jì)算節(jié)點(diǎn)112完全分割子數(shù)據(jù)流300a-300d并提供各自的分割子數(shù)據(jù)流400a-400d之后,協(xié)調(diào)器110等協(xié)調(diào)器連接分割的數(shù)據(jù)流400a-400d以創(chuàng)建與輸入數(shù)據(jù)流120對(duì)應(yīng)的分割的數(shù)據(jù)流130。協(xié)調(diào)器110通過同步分割的重疊部分402a、402b和402c的數(shù)據(jù)項(xiàng)的排序來連接分割的子數(shù)據(jù)流400a-400d以保持如在原始輸入數(shù)據(jù)流120中的順序,其中,分割的重疊部分分別對(duì)應(yīng)于原始重疊部分,例如重疊部分302a、302b和302c。分割的子數(shù)據(jù)流400a-400d的每個(gè)相鄰對(duì)包括分割的重疊部分402a-402c中各自的分割的重疊部分。由于每個(gè)計(jì)算節(jié)點(diǎn)112使用相同的分割技術(shù)和相同的分割標(biāo)準(zhǔn),因此重疊部分302a-302c的分割相同。例如,對(duì)分割的子數(shù)據(jù)流400a進(jìn)行分割的處理管線106和對(duì)分割的子數(shù)據(jù)流400b進(jìn)行分割的處理管線106兩者對(duì)分割的重疊部分402a進(jìn)行相同地分割。類似地,對(duì)分割的子數(shù)據(jù)流400b進(jìn)行分割的處理管線106和對(duì)分割的子數(shù)據(jù)流400c進(jìn)行分割的處理管線106兩者對(duì)分割的重疊部分402b進(jìn)行相同地分割。以相同的方式,對(duì)分割的子數(shù)據(jù)流400c進(jìn)行分割的處理管線106和對(duì)分割的子數(shù)據(jù)流400d進(jìn)行分割的處理管線106兩者對(duì)分割的重疊部分402c進(jìn)行相同地分割。

協(xié)調(diào)器110基于在重疊部分402a-402c中的每一個(gè)中標(biāo)識(shí)的數(shù)據(jù)段通過對(duì)分割的子數(shù)據(jù)流400a-400d的排序進(jìn)行同步來連接分割的子數(shù)據(jù)流400a-400d,以創(chuàng)建分割的數(shù)據(jù)流130。

在本發(fā)明的一些實(shí)施例中,每個(gè)子數(shù)據(jù)流的分割是通過在每個(gè)子數(shù)據(jù)流上對(duì)滾動(dòng)序列進(jìn)行移位以及計(jì)算滾動(dòng)哈希值來完成的。根據(jù)檢查滾動(dòng)哈希值對(duì)一個(gè)或多個(gè)分割標(biāo)準(zhǔn)的符合性以確認(rèn)數(shù)據(jù)段。

在進(jìn)一步展示采用滾動(dòng)哈希分割的實(shí)施例之前,首先描述使用滾動(dòng)序列和滾動(dòng)哈希的分割過程。

現(xiàn)在參考圖5,其是使用滾動(dòng)哈希分割來分割輸入數(shù)據(jù)流的示例性過程的示意圖。分割輸入數(shù)據(jù)流120等輸入數(shù)據(jù)流,以指定輸入數(shù)據(jù)流120中的多個(gè)數(shù)據(jù)段(塊),用于創(chuàng)建分割的數(shù)據(jù)流,例如分割的數(shù)據(jù)流130。檢測(cè)每個(gè)分段包括3個(gè)主要步驟:跳過510、初始化512、滾動(dòng)514和切割516。跳過510包括跳過輸入數(shù)據(jù)流120中的預(yù)定義最小數(shù)量的數(shù)據(jù)項(xiàng),使得每個(gè)分段具有最小長(zhǎng)度。初始化512包括在設(shè)置用于計(jì)算滾動(dòng)哈希值的最小數(shù)據(jù)長(zhǎng)度所需的預(yù)定數(shù)量的數(shù)據(jù)項(xiàng),例如,16、64和/或128個(gè)數(shù)據(jù)項(xiàng)中移位。滾動(dòng)514包括計(jì)算在輸入數(shù)據(jù)流上移位的滾動(dòng)序列的滾動(dòng)哈希值,并將計(jì)算的哈希值與一個(gè)或多個(gè)分割標(biāo)準(zhǔn)進(jìn)行比較以檢測(cè)分段。當(dāng)哈希值符合(滿足)分割標(biāo)準(zhǔn)時(shí),進(jìn)行切割516,并且將包括數(shù)據(jù)項(xiàng)到切割516的點(diǎn)的數(shù)據(jù)段指定為分段。分割過程從輸入數(shù)據(jù)流120的起點(diǎn)開始,并且從每個(gè)切割的點(diǎn)即前一數(shù)據(jù)段的末端,再次開始跳過510,初始化512,滾動(dòng)514和切割516,以檢測(cè)并指定后續(xù)數(shù)據(jù)段。在整個(gè)輸入數(shù)據(jù)流120中重復(fù)分割過程,從而在輸入數(shù)據(jù)流120中指定分段520_1、520_2和520_3等多個(gè)數(shù)據(jù)段以創(chuàng)建分割的數(shù)據(jù)流130。

現(xiàn)在參考圖6,其是本發(fā)明的一些實(shí)施例使用滾動(dòng)哈希分割同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖。協(xié)調(diào)器110等協(xié)調(diào)器將輸入數(shù)據(jù)流120等輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,例如,4個(gè)子數(shù)據(jù)流,如300a、300b、300c和300d。若處理器104等處理器包括多個(gè)獨(dú)立的處理管線,每個(gè)處理管線執(zhí)行計(jì)算節(jié)點(diǎn)112等計(jì)算節(jié)點(diǎn)的實(shí)例。計(jì)算節(jié)點(diǎn)112等多個(gè)計(jì)算節(jié)點(diǎn)例如四個(gè)計(jì)算節(jié)點(diǎn)使用滾動(dòng)哈希分割同時(shí)分割子數(shù)據(jù)流300a、300b、300c和300d以創(chuàng)建相應(yīng)的分割的子數(shù)據(jù)流,例如分割的子數(shù)據(jù)流400a、400b、400c和400d。每個(gè)計(jì)算節(jié)點(diǎn)112處理(分割)子數(shù)據(jù)流300a、300b、300c和300d中的相應(yīng)一個(gè)或多個(gè)。每個(gè)計(jì)算節(jié)點(diǎn)112應(yīng)用包括跳過510等跳過、初始化512等初始化、滾動(dòng)514等滾動(dòng)和切割516等切割的滾動(dòng)哈希分割技術(shù)(如上所述)。由于滾動(dòng)哈希分割技術(shù)采用可變長(zhǎng)度分割,因此每個(gè)計(jì)算節(jié)點(diǎn)112可以例如為520a_1、520b_1、520c_1和/或520d_1等各個(gè)數(shù)據(jù)段,檢測(cè)長(zhǎng)度不同的數(shù)據(jù)段。在一個(gè)計(jì)算節(jié)點(diǎn)112檢測(cè)到數(shù)據(jù)段(滾動(dòng)哈希值對(duì)分割標(biāo)準(zhǔn)的符合性)并指定該段之后,所述計(jì)算節(jié)點(diǎn)112在子數(shù)據(jù)流300a-300d中的各個(gè)子數(shù)據(jù)流間重復(fù)該過程。計(jì)算節(jié)點(diǎn)112彼此獨(dú)立地執(zhí)行分割過程,從而可能消耗不同的處理時(shí)間,因此針對(duì)分割的子數(shù)據(jù)流400a-400d中的每一個(gè),由多個(gè)計(jì)算節(jié)點(diǎn)112執(zhí)行的分割過程可以在不同時(shí)間完成。若處理管線106為simd引擎處理管線106,由處理器104執(zhí)行計(jì)算節(jié)點(diǎn)112,其向simd引擎的每個(gè)處理管線106分配子數(shù)據(jù)流300a-300d中相應(yīng)一個(gè)的數(shù)據(jù)。處理管線106的simd引擎在(由處理器104執(zhí)行的)計(jì)算節(jié)點(diǎn)112的指令下同時(shí)分割子數(shù)據(jù)流300a-300d。simd引擎處理管線106同時(shí)處理它們各自的數(shù)據(jù),直到一個(gè)simd引擎處理管線106檢測(cè)到切割516。在這一點(diǎn)上,(由處理器104執(zhí)行的)計(jì)算節(jié)點(diǎn)112可以停止所有simd引擎處理管線106,因?yàn)樗衧imd引擎處理管線106需要執(zhí)行計(jì)算節(jié)點(diǎn)112的同一指令。計(jì)算節(jié)點(diǎn)112可以在指示所有simd引擎處理管線106恢復(fù)滾動(dòng)514之前,通過完成跳過510和初始化512來順序處理檢測(cè)到切割516的simd引擎處理管線106的各個(gè)子數(shù)據(jù)流。

現(xiàn)在參考圖7a、圖7b、圖7c、圖7d、圖7e、圖7f、圖7g、圖7h、圖7i、圖7j、圖7k、圖7l和圖7m,其是本發(fā)明的一些實(shí)施例在不同時(shí)間點(diǎn)同時(shí)并行地分割多個(gè)子數(shù)據(jù)流的示例性過程的示意圖。協(xié)調(diào)器110等協(xié)調(diào)器首先將輸入數(shù)據(jù)流120等輸入數(shù)據(jù)流拆分成多個(gè)子數(shù)據(jù)流,例如,4個(gè)子數(shù)據(jù)流,如300a、300b、300c和300d。計(jì)算節(jié)點(diǎn)112等多個(gè)處理管線例如四個(gè)計(jì)算節(jié)點(diǎn)使用滾動(dòng)哈希分割技術(shù)同時(shí)分割子數(shù)據(jù)流300a、300b、300c和300d以創(chuàng)建相應(yīng)的分割的子數(shù)據(jù)流,例如分割的子數(shù)據(jù)流400a、400b、400c和400d。如上所述,處理管線106可以是simd處理器和/或引擎的處理管線和/或獨(dú)立處理管線。每個(gè)處理管線106分割(處理)子數(shù)據(jù)流300a-300d中的相應(yīng)一個(gè)。每個(gè)處理管線106將包括跳過510等跳過、初始化512等初始化、滾動(dòng)514等滾動(dòng)和切割516等切割的滾動(dòng)哈希分割應(yīng)用于子數(shù)據(jù)流300a-300d中的相應(yīng)一個(gè)。

圖7a至7m呈現(xiàn)由四個(gè)計(jì)算節(jié)點(diǎn)112完成的同時(shí)分割過程,其中,每個(gè)計(jì)算節(jié)點(diǎn)112由四個(gè)處理管線106之一執(zhí)行。計(jì)算節(jié)點(diǎn)112同時(shí)地和獨(dú)立地分割子數(shù)據(jù)流300a-300d以創(chuàng)建分割的子數(shù)據(jù)流400a-400d。

如圖7a所示,四個(gè)子數(shù)據(jù)流300a-300d的分割與跳過510,初始化512和滾動(dòng)計(jì)算514同時(shí)進(jìn)行。對(duì)分割的子數(shù)據(jù)流400b進(jìn)行分割的處理管線106首先檢測(cè)數(shù)據(jù)段,并且切割516序列以指定分段520。在切割516之后,對(duì)分割的子數(shù)據(jù)流400b進(jìn)行分割的處理管線106繼續(xù),以針對(duì)在指定數(shù)據(jù)段末端開始的后續(xù)數(shù)據(jù)段執(zhí)行跳過510和初始化512。如圖7b所示,當(dāng)處理分割的子數(shù)據(jù)流400a、400c和400d的處理管線106仍然執(zhí)行滾動(dòng)514時(shí),對(duì)分割的子數(shù)據(jù)流400b進(jìn)行分割的處理管線106檢測(cè)第二數(shù)據(jù)段,并且切割516序列以指定分段520。如圖7c所示,當(dāng)處理分割的子數(shù)據(jù)流400a和400d的處理管線106仍然執(zhí)行滾動(dòng)514時(shí),對(duì)分割的子數(shù)據(jù)流400b和400c進(jìn)行分割的兩個(gè)處理管線106分別檢測(cè)第三數(shù)據(jù)段和第一數(shù)據(jù)段,并且切割516序列以指定分段520。處理管線106與圖7d至圖7m中所示的分割過程一起推進(jìn),以創(chuàng)建分割的子數(shù)據(jù)流400a-400d。如圖7h所示,處理分割的子數(shù)據(jù)流400b的處理管線106到達(dá)分割的子數(shù)據(jù)流400b的末端,并完成分割過程。一旦完成了分割序列,創(chuàng)建分割的子數(shù)據(jù)流400b的處理管線106暫停并等待其他處理管線106完成其他分割的子數(shù)據(jù)流400a、400c和400d的分割。

如上所述,對(duì)于simd引擎的處理管線106,當(dāng)處理管線106中的一個(gè)檢測(cè)到切割516并指定分段520時(shí),暫停在所有其他處理管線106上的滾動(dòng)514,直到進(jìn)行切割516的處理管線106完成跳過510和初始化512。在檢測(cè)到進(jìn)行切割516的處理管線106完成跳過510和初始化512之后,(由處理器104執(zhí)行的)計(jì)算節(jié)點(diǎn)112可以指示simd引擎的所有處理管線106恢復(fù)滾動(dòng)514。如圖7l所示,處理分割的子數(shù)據(jù)流400c和400d的計(jì)算節(jié)點(diǎn)112也完成分割過程并暫停。如圖7m所示,處理分割的子數(shù)據(jù)流400a的處理管線106最終完成分割過程并暫停。一旦所有處理管線106完成相應(yīng)的分割的子數(shù)據(jù)流400a-400d的分割,協(xié)調(diào)器110可以通過同步分割重疊,例如,同步分割的重疊部分402a-402c來連接400a-400d,以創(chuàng)建分割的子數(shù)據(jù)流130。

對(duì)本發(fā)明各個(gè)實(shí)施例的描述只是為了說明的目的,而這些描述并不旨在窮舉或限于所公開的實(shí)施例。在不脫離所描述的實(shí)施例的范圍和精神的情況下,本領(lǐng)域技術(shù)人員可以清楚理解許多修改和變化。相比于市場(chǎng)上可找到的技術(shù),選擇此處使用的術(shù)語可最好地解釋本實(shí)施例的原理、實(shí)際應(yīng)用或技術(shù)進(jìn)步,或使本領(lǐng)域其他技術(shù)人員理解此處公開的實(shí)施例。

預(yù)期在從本申請(qǐng)衍生出的專利的有效期內(nèi)能產(chǎn)生多個(gè)相關(guān)的向量處理技術(shù),例如simd,當(dāng)然,術(shù)語simd的范圍旨在先驗(yàn)地包括所有這樣的新技術(shù)。

此處使用的術(shù)語“大約”表示±10%。

術(shù)語“包括”以及“有”表示“包括但不限于”。這個(gè)術(shù)語包括了術(shù)語“由……組成”以及“本質(zhì)上由……組成”。

短語“本質(zhì)上由……組成”是指構(gòu)成或方法在當(dāng)且僅當(dāng)附加成分和/或步驟不會(huì)實(shí)質(zhì)性改變所要求保護(hù)的構(gòu)成或方法的基本和新穎特征時(shí)才可以包括附加成分和/或步驟。

除非上下文中另有明確說明,此處使用的單數(shù)形式“一個(gè)”和“所述”包括復(fù)數(shù)含義。例如,術(shù)語“一個(gè)復(fù)合物”或“至少一個(gè)復(fù)合物”可以包括多個(gè)復(fù)合物,包括其混合物。

此處使用的詞“示例性的”表示“作為一個(gè)例子、示例或說明”。任何“示例性的”實(shí)施例不必理解為優(yōu)先于或優(yōu)越于其他實(shí)施例,和/或并不排除其他實(shí)施例特征的結(jié)合。

此處使用的詞語“可選地”表示“在一些實(shí)施例中提供且在其他實(shí)施例中沒有提供”。本發(fā)明的任意特定的實(shí)施例可以包括多個(gè)“可選的”特征,除非這些特征相互矛盾。

單個(gè)實(shí)施例也可以提供某些特征的組合,這些特征在各個(gè)實(shí)施例正文中有簡(jiǎn)短的描述。相反地,本發(fā)明的各個(gè)特征在單個(gè)實(shí)施例的正文中有簡(jiǎn)短的描述,也可以分別提供這些特征或任何適合的子組合或者作為本發(fā)明所述的任何合適的其他實(shí)施例。不可認(rèn)為各個(gè)實(shí)施例的正文中描述的某些特征是這些實(shí)施例的必要特征,除非沒有這些元素,該實(shí)施例無效。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1