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

簡(jiǎn)化并行計(jì)算系統(tǒng)中的傳輸?shù)南到y(tǒng)與方法

文檔序號(hào):6597884閱讀:194來源:國知局
專利名稱:簡(jiǎn)化并行計(jì)算系統(tǒng)中的傳輸?shù)南到y(tǒng)與方法
技術(shù)領(lǐng)域
本發(fā)明涉及分布式并行計(jì)算系統(tǒng),更具體而言,涉及分布式并行計(jì)算系統(tǒng)中傳輸 的簡(jiǎn)化。
背景技術(shù)
信息技術(shù)的發(fā)展為人們提供了越來越豐富和強(qiáng)大的應(yīng)用和服務(wù),同時(shí)也對(duì)處理設(shè) 備的運(yùn)算能力提出了越來越高的要求。盡管處理器的運(yùn)行速度也在不斷提高,但是面對(duì)海 量信息和數(shù)據(jù),分布式并行計(jì)算成為一種實(shí)用的解決方式。例如,在各種統(tǒng)計(jì)方法中都會(huì)涉及海量數(shù)據(jù)的處理。網(wǎng)頁排名是一項(xiàng)基本的也是 廣泛采用的方法,用來評(píng)價(jià)網(wǎng)站或特定內(nèi)容的狀態(tài)。詞頻統(tǒng)計(jì)是示出人們關(guān)心的熱門話題 的另一個(gè)例子。此外,各種智能分析,包括用戶行為分析、關(guān)系分析、推薦系統(tǒng)以及內(nèi)容定制 等等,都是基于大量的數(shù)據(jù)和信息。在以上這些例子中,處理系統(tǒng)的輸入通常是一系列文 件,例如web日志文件,其輸出是從這些輸入中提取出來的信息。對(duì)于商業(yè)網(wǎng)站來說,一天 之中產(chǎn)生的日志文件就會(huì)超過IT字節(jié)(1000G)。這樣的數(shù)據(jù)量幾乎不可能通過傳統(tǒng)方式進(jìn) 行處理。為了進(jìn)行大量數(shù)據(jù)的處理,提出了分布式并行計(jì)算,將一個(gè)處理任務(wù)分散到多個(gè) 處理器中同時(shí)并行執(zhí)行。目前,已經(jīng)存在多種大規(guī)模并行計(jì)算的執(zhí)行方式,其中最為重要和 常用的是Google提出的MapReduce模型和Microsoft提出的Dryad模型。MapReduce是一種簡(jiǎn)潔的并行計(jì)算模型,其名字源于這個(gè)模型中的兩項(xiàng)核 心操作映射(Map)和規(guī)約(Reduce),這兩個(gè)概念來自于函數(shù)式編程語言(Function Programming)。簡(jiǎn)單地說,Map是把一組數(shù)據(jù)一對(duì)一地映射為另外的一組數(shù)據(jù),其映射的規(guī) 則由用戶定義的一個(gè)函數(shù)來指定。Reduce是根據(jù)用戶定義的函數(shù)對(duì)一組數(shù)據(jù)進(jìn)行合并和規(guī) 約。在Map過程中,我們將數(shù)據(jù)并行,也就是將數(shù)據(jù)分開,而Reduce則把分開的數(shù)據(jù)合到了 一起。換句話說,Map是一個(gè)分的過程,Reduce則對(duì)應(yīng)著合,利用這一分一合,就可以將一個(gè) 復(fù)雜龐大的任務(wù)分拆成許多個(gè)作業(yè)并行執(zhí)行運(yùn)算,然后對(duì)并行運(yùn)算的結(jié)果進(jìn)行綜合,從而 得到期望的結(jié)果。圖1示出現(xiàn)有技術(shù)MapReduce模型的基本架構(gòu)的示意圖。在圖1所示的映射規(guī)約 模型中,每個(gè)映射單元從對(duì)應(yīng)的數(shù)據(jù)源讀取鍵值(key,value)對(duì)形式的輸入數(shù)據(jù),根據(jù)用 戶定義的函數(shù),將輸入鍵值對(duì)映射為一組新的鍵值對(duì),即圖1中包含鍵1,鍵2,鍵3的鍵值 對(duì),稱為中間鍵值對(duì)。映射單元通常將產(chǎn)生的中間鍵值對(duì)存儲(chǔ)在其本地。之后,在規(guī)約階段, 將具有相同鍵的中間鍵值對(duì)發(fā)往相同的規(guī)約單元,由規(guī)約單元對(duì)結(jié)果進(jìn)行綜合。下面結(jié)合一個(gè)例子說明映射和規(guī)約的過程。在這個(gè)例子中,需要完成的任務(wù)是在 一個(gè)文檔集合中統(tǒng)計(jì)每個(gè)單詞出現(xiàn)的次數(shù)。對(duì)于這樣的任務(wù),可以將文檔集合中的每個(gè)文 檔分配給一個(gè)映射單元。映射操作的輸入是鍵值對(duì)形式的每一篇文檔,映射內(nèi)容可以是將 輸入文檔中每一個(gè)單詞的出現(xiàn)輸出到中間文件中去。更具體地,可以如下設(shè)置輸入鍵值對(duì), 其中鍵(key)對(duì)應(yīng)于文檔名稱,值(value)對(duì)應(yīng)于文檔內(nèi)容。進(jìn)一步地,可以將映射函數(shù)定義為,對(duì)于值中的每個(gè)單詞w,產(chǎn)生中間鍵值對(duì)(w,l)?;诖?,如果某篇文檔的內(nèi)容是: "hello beijing, hello world”,那么得到的中間鍵值對(duì)就是(hello, 1), (beijing,l), (hello, 1), (world 1)。之后,在規(guī)約階段,規(guī)約單元對(duì)單詞和出現(xiàn)次數(shù)的序列進(jìn)行處理和 綜合,得到最后的統(tǒng)計(jì)結(jié)果(hello,2),(beijing, 1), (world, 1) 0與MapReduce相似,Dryad模型同樣將一項(xiàng)任務(wù)分散到多個(gè)處理單元中進(jìn)行運(yùn)算。 圖2示出現(xiàn)有技術(shù)Dryad模型的基本架構(gòu)的示意圖。如圖所示,輸入文檔被分散到多個(gè)計(jì) 算單元,經(jīng)過多個(gè)階段的層層分拆,以及反向地層層合并,得到最后的處理結(jié)果。與圖1的 MapReduce模型相比,兩者最大的不同在于,MapReduce模型是典型的兩階段處理過程,即 映射階段與規(guī)約階段,而Dryad作業(yè)構(gòu)建的執(zhí)行流程圖包含多個(gè)處理階段。不管是MapReduce模型,還是Dryad模型,或者是其他分布式并行計(jì)算方法,在不 同處理階段之間都需要進(jìn)行中間結(jié)果的傳輸。以MapReduce為例,在映射階段,映射單元會(huì) 產(chǎn)生大量的中間鍵值對(duì)。這些中間鍵值對(duì)需要發(fā)送給適當(dāng)?shù)囊?guī)約單元做進(jìn)一步處理,這就 產(chǎn)生了不同處理單元之間的1/0問題。由于中間鍵值對(duì)的數(shù)量非常龐大,傳輸這些數(shù)據(jù)往 往要占用大量網(wǎng)絡(luò)10資源,降低并行計(jì)算的效率。以維基百科WikiPedia的所有單詞的統(tǒng) 計(jì)分析為例,采用MapReduce模型,利用IG共享網(wǎng)絡(luò)的5臺(tái)刀片機(jī)架進(jìn)行處理。處理中可 以檢測(cè)到,在映射/規(guī)約階段之間,每臺(tái)機(jī)器的10已經(jīng)達(dá)到24MB/s,5臺(tái)機(jī)器的網(wǎng)絡(luò)10總 消耗達(dá)到約mb/s。如此龐大的網(wǎng)絡(luò)10消耗很容易成為整個(gè)并行計(jì)算的瓶頸,降低整個(gè)并 行計(jì)算系統(tǒng)的性能。因此,希望提供一種方法,對(duì)現(xiàn)有的并行計(jì)算方式進(jìn)行改進(jìn)以降低10 消耗,提高計(jì)算性能。

發(fā)明內(nèi)容
考慮到上述問題,指出本發(fā)明,旨在提供簡(jiǎn)化并行計(jì)算系統(tǒng)的10傳輸?shù)姆桨浮8鶕?jù)本發(fā)明第一方面,提供一種用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)姆椒ǎ?所述分布式并行計(jì)算系統(tǒng)包括至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元,所述方法包括識(shí) 別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng)目;根據(jù)簡(jiǎn)化編碼算法,建立所述至少 一個(gè)項(xiàng)目與其索引之間的對(duì)應(yīng)關(guān)系,所述索引的平均大小小于所述至少一個(gè)項(xiàng)目的平均大 ??;根據(jù)所述對(duì)應(yīng)關(guān)系,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引;基于所述索引由所述 并行計(jì)算單元產(chǎn)生簡(jiǎn)化的中間結(jié)果;以及傳輸所述簡(jiǎn)化的中間結(jié)果。根據(jù)本發(fā)明第二方面,提供一種用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)南到y(tǒng), 所述分布式并行計(jì)算系統(tǒng)包括至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元,所述系統(tǒng)包括簡(jiǎn)化 裝置,包括項(xiàng)目識(shí)別單元,配置用于識(shí)別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng) 目;對(duì)應(yīng)建立單元,配置用于根據(jù)簡(jiǎn)化編碼算法,建立所述至少一個(gè)項(xiàng)目與其索引之間的對(duì) 應(yīng)關(guān)系,所述索引的平均大小小于所述至少一個(gè)項(xiàng)目的平均大??;項(xiàng)目替換單元,配置用于 根據(jù)所述對(duì)應(yīng)關(guān)系,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引,使得所述并行計(jì)算單元能 夠基于所述索引產(chǎn)生簡(jiǎn)化的中間結(jié)果,并由所述并行計(jì)算單元傳輸所述簡(jiǎn)化的中間結(jié)果。利用本發(fā)明的方法和系統(tǒng),使得分布式并行計(jì)算系統(tǒng)中的中間結(jié)果得到簡(jiǎn)化,從 而有效縮減中間結(jié)果的傳輸所帶來的10問題,提高并行計(jì)算系統(tǒng)的總體效率。


圖1示出現(xiàn)有技術(shù)MapReduce模型的基本架構(gòu)的示意圖;圖2示出現(xiàn)有技術(shù)Dryad模型的基本架構(gòu)的示意圖;圖3示出根據(jù)本發(fā)明實(shí)施例的改進(jìn)的并行計(jì)算系統(tǒng)的示意圖;圖4示出根據(jù)本發(fā)明實(shí)施例的簡(jiǎn)化裝置210的框圖;圖5示出根據(jù)本發(fā)明實(shí)施例的復(fù)原裝置230的框圖;以及圖6示出根據(jù)本發(fā)明實(shí)施例的簡(jiǎn)化傳輸?shù)姆椒鞒虉D。
具體實(shí)施例方式下面參照附圖,結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行描述。這樣的描述僅僅出于說明目 的,而不意圖對(duì)本發(fā)明的范圍進(jìn)行限制。圖3示出根據(jù)本發(fā)明實(shí)施例的改進(jìn)的并行計(jì)算系統(tǒng)的示意圖。如圖3所示,該改 進(jìn)的系統(tǒng)包括計(jì)算系統(tǒng)100和傳輸簡(jiǎn)化系統(tǒng)200。應(yīng)該理解,所示出的計(jì)算系統(tǒng)100和傳輸 簡(jiǎn)化系統(tǒng)200的劃分和各自的結(jié)構(gòu)僅僅出于功能示意的目的,而不對(duì)其實(shí)際的結(jié)構(gòu)和物理 平臺(tái)有任何限制。在圖3中,以MapReduce模型的結(jié)構(gòu)為例圖示了計(jì)算系統(tǒng)100。但是,可 以理解,該計(jì)算系統(tǒng)100也可以采用其他的并行計(jì)算模型。具體地,在示出為MapReduce模 型的計(jì)算系統(tǒng)100中,將輸入的一項(xiàng)任務(wù)分為多個(gè)(在圖3的例子中為兩個(gè))相對(duì)獨(dú)立的 作業(yè),再將每個(gè)作業(yè)分散到多個(gè)映射操作單元中進(jìn)行處理。這些映射操作單元按照用戶定 義的函數(shù),將輸入的鍵值對(duì)映射到中間鍵值對(duì),產(chǎn)生大量中間結(jié)果。然后,這些中間結(jié)果被 發(fā)送到對(duì)應(yīng)的規(guī)約操作單元。規(guī)約操作單元于是將大量中間鍵值對(duì)進(jìn)行規(guī)約與合并,并將 合并的結(jié)果發(fā)送至綜合單元。綜合單元基于合并的結(jié)果產(chǎn)生最終結(jié)果,并響應(yīng)于用戶獲得 最終結(jié)果的請(qǐng)求,而將該最終結(jié)果呈現(xiàn)出來??梢岳斫猓鲜龆鄠€(gè)映射操作單元和多個(gè)規(guī)約 操作單元可以在相同的或者多個(gè)不同的物理機(jī)或虛擬機(jī)中實(shí)現(xiàn),以并行地執(zhí)行所需處理。本領(lǐng)域技術(shù)人員可以理解,MapReduce形式的計(jì)算系統(tǒng)100只是一個(gè)示例,計(jì)算系 統(tǒng)100不限于使用MapReduce模型的計(jì)算系統(tǒng)。在其他并行計(jì)算模型中,例如Dryad模型 中,計(jì)算系統(tǒng)100不限于映射和規(guī)約兩階段的處理,而是包含多個(gè)階段的處理過程。為了表 述的清楚并不失一般性,我們認(rèn)為計(jì)算系統(tǒng)可能包含η個(gè)處理階段,在各個(gè)階段中都有多 個(gè)處理單元來執(zhí)行計(jì)算和處理,包括但不限于映射和規(guī)約操作??梢詫⑦@樣的多個(gè)處理單 元統(tǒng)稱為并行計(jì)算單元。這些并行計(jì)算單元可以分布在多個(gè)計(jì)算機(jī)和處理器中。為了解決計(jì)算系統(tǒng)100中不同階段的并行計(jì)算單元之間(例如映射操作單元與規(guī) 約操作單元之間)的IO問題,根據(jù)本發(fā)明一個(gè)實(shí)施例,為計(jì)算系統(tǒng)100提供了附加的傳輸 簡(jiǎn)化系統(tǒng)200。如圖3所示,傳輸簡(jiǎn)化系統(tǒng)200包含簡(jiǎn)化裝置210,用于對(duì)并行計(jì)算單元的 中間結(jié)果進(jìn)行簡(jiǎn)化,從而縮減有待進(jìn)行傳輸?shù)闹虚g結(jié)果的大??;中央字典庫220,用于存儲(chǔ) 簡(jiǎn)化前后的對(duì)應(yīng)關(guān)系;以及復(fù)原裝置230,用于復(fù)原經(jīng)過簡(jiǎn)化的處理結(jié)果。以下對(duì)傳輸簡(jiǎn)化 系統(tǒng)200中的各個(gè)裝置進(jìn)行進(jìn)一步詳細(xì)描述。圖4示出根據(jù)本發(fā)明實(shí)施例的簡(jiǎn)化裝置210的框圖。如圖所示,簡(jiǎn)化裝置210包 括項(xiàng)目識(shí)別單元211,配置用于識(shí)別輸入數(shù)據(jù)中的項(xiàng)目;對(duì)應(yīng)建立單元212,配置用于根據(jù) 簡(jiǎn)化編碼算法,建立所述項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系,所述索引的平均大小小于所述項(xiàng)目 的平均大??;以及項(xiàng)目替換單元213,配置用于根據(jù)所述對(duì)應(yīng)關(guān)系,將所述項(xiàng)目替換為所述索引,使得并行計(jì)算單元基于所述索引產(chǎn)生簡(jiǎn)化的中間結(jié)果。結(jié)合MapReduce模型進(jìn)一步說明簡(jiǎn)化裝置210的配置與操作。在MapReduce并行 計(jì)算系統(tǒng)的情況下,簡(jiǎn)化裝置210可以設(shè)置在每個(gè)映射操作單元中。如上所述,映射操作單 元獲得鍵值對(duì)形式的輸入數(shù)據(jù),并根據(jù)定義的函數(shù)將輸入鍵值對(duì)映射為中間鍵值對(duì)。例如, 在背景技術(shù)中描述的用于統(tǒng)計(jì)單詞出現(xiàn)次數(shù)的例子中,映射操作單元可以將輸入的文檔 "hellobeijing, hello world” 映射為多個(gè)中間鍵值對(duì)(hello,1),(beijing, 1), (hello, 1),(world 1)。針對(duì)這樣的例子,簡(jiǎn)化裝置210可以對(duì)映射操作單元產(chǎn)生的中間鍵值對(duì)進(jìn) 行簡(jiǎn)化,縮減該中間結(jié)果的大小。具體地,項(xiàng)目識(shí)別單元211識(shí)別輸入數(shù)據(jù)中的項(xiàng)目,即輸入鍵值對(duì)的內(nèi)容。在上述 單詞統(tǒng)計(jì)的例子中,項(xiàng)目識(shí)別單元211識(shí)別輸入文檔中的每一個(gè)單詞,該每一個(gè)單詞成為 一個(gè)輸入項(xiàng)目。接著,對(duì)應(yīng)建立單元212根據(jù)特定的簡(jiǎn)化編碼算法,建立項(xiàng)目與索引之間的對(duì)應(yīng) 關(guān)系,并使得項(xiàng)目的平均大小大于索引的平均大小。項(xiàng)目或索引的大小可以是其所占據(jù)的 存儲(chǔ)空間的大小、占用的傳輸帶寬的大小等等。上述平均大小可以是根據(jù)項(xiàng)目和索引的形 式和特點(diǎn)采用的數(shù)學(xué)平均、(根據(jù)出現(xiàn)頻率的)加權(quán)平均等各種平均方式得到的平均大小。 在項(xiàng)目和索引都是字符串形式的情況下,該大小對(duì)應(yīng)于字符串的長(zhǎng)度。也就是,在字符串 的情況下,平均來說,索引的長(zhǎng)度更短。在數(shù)據(jù)簡(jiǎn)化編碼領(lǐng)域,通常會(huì)建立一個(gè)字典,包含 多個(gè)條目,每一條目記錄一個(gè)簡(jiǎn)化編碼前的項(xiàng)目與簡(jiǎn)化編碼后的索引之間的對(duì)應(yīng)關(guān)系。因 此,可以認(rèn)為,該對(duì)應(yīng)建立單元212配置用于根據(jù)一定的簡(jiǎn)化編碼算法,構(gòu)建壓縮字典的條 目。例如,在上述單詞統(tǒng)計(jì)的例子中,對(duì)應(yīng)建立單元212可以基于某種算法,將識(shí)別的項(xiàng)目 ‘‘hello”映射為索引“11”,將項(xiàng)目‘‘beijing”映射為“22”,將‘‘world”映射為“33”。在建立項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系之后,對(duì)應(yīng)建立單元212可以將這樣的對(duì)應(yīng)關(guān) 系注冊(cè)到中央字典庫220。在一個(gè)實(shí)施例中,對(duì)應(yīng)建立單元212對(duì)于新構(gòu)建的每一個(gè)條目, 都實(shí)時(shí)地將其注冊(cè)到中央字典庫220中。在另一個(gè)實(shí)施例中,對(duì)應(yīng)建立單元212定時(shí)地執(zhí) 行條目的注冊(cè)。為了避免重復(fù)構(gòu)建條目,對(duì)應(yīng)建立單元212對(duì)于識(shí)別的每一個(gè)項(xiàng)目,可以 首先核查是否已經(jīng)為該項(xiàng)目建立了對(duì)應(yīng)關(guān)系,在尚未建立對(duì)應(yīng)關(guān)系的情況下才構(gòu)建新的條 目。為了執(zhí)行這樣的核查,在一個(gè)實(shí)施例中,對(duì)應(yīng)建立單元212到中央字典庫220中進(jìn)行查 詢,判斷是否已經(jīng)存在相應(yīng)的條目。在另一個(gè)實(shí)施例中,對(duì)應(yīng)建立單元212還將建立的對(duì)應(yīng) 關(guān)系存儲(chǔ)在本地,首先核查本地存儲(chǔ)的對(duì)應(yīng)關(guān)系,以此加速上述核查過程。于是,在上面的 例子中,在對(duì)應(yīng)建立單元212針對(duì)第一個(gè)項(xiàng)目建立了 “hello”與“11”的對(duì)應(yīng)關(guān)系之后,就 不必在再次遇到這個(gè)項(xiàng)目時(shí)重新建立對(duì)應(yīng)關(guān)系的條目。為了構(gòu)建項(xiàng)目與“較短”的索引之間的對(duì)應(yīng)關(guān)系,對(duì)應(yīng)建立單元212可以采用多種 簡(jiǎn)化編碼算法,只要使得索引的平均大小小于項(xiàng)目的平均大小即可。在后文中會(huì)給出簡(jiǎn)化 編碼算法的舉例。在構(gòu)建了項(xiàng)目與索引的對(duì)應(yīng)關(guān)系之后,項(xiàng)目替換單元213就可以基于這樣的對(duì)應(yīng) 關(guān)系,將映射操作單元所處理的項(xiàng)目替換為簡(jiǎn)化編碼后的較短的索引,使得映射操作單元 產(chǎn)生簡(jiǎn)化的中間鍵值對(duì)。這樣的替換可以在映射操作執(zhí)行之前或之后進(jìn)行。在上述單詞 統(tǒng)計(jì)的例子中,根據(jù)一個(gè)實(shí)施例,項(xiàng)目替換單元213可以在執(zhí)行映射操作、產(chǎn)生中間鍵值對(duì) (hello, 1), (beijing,!), (hello, 1), (world 1)之后進(jìn)行項(xiàng)目的替換,從而將其轉(zhuǎn)換為簡(jiǎn)化的中間鍵值對(duì)(11,1),02,1)等。在另一個(gè)實(shí)施例中,項(xiàng)目替換單元213在識(shí)別輸入項(xiàng) 目之后、執(zhí)行映射操作之前進(jìn)行項(xiàng)目的替換,使得輸入數(shù)據(jù)轉(zhuǎn)變?yōu)椤?1 22,11 33”。于是,映 射操作單元可以對(duì)該簡(jiǎn)化的輸入項(xiàng)目執(zhí)行映射操作,直接產(chǎn)生經(jīng)過簡(jiǎn)化編碼的中間鍵值對(duì)。通過以上結(jié)合具體例子的描述可以看到,通過項(xiàng)目識(shí)別單元211、對(duì)應(yīng)建立單元 212和項(xiàng)目替換單元213的操作,簡(jiǎn)化裝置210對(duì)映射操作單元產(chǎn)生的中間鍵值對(duì)進(jìn)行了簡(jiǎn) 化,極大地縮減了中間鍵值對(duì)的大小和所占空間。通常,映射操作單元會(huì)將產(chǎn)生的中間鍵值 對(duì)存儲(chǔ)在本地,并在需要的時(shí)候發(fā)送給適當(dāng)?shù)囊?guī)約操作單元。因此,中間鍵值對(duì)的簡(jiǎn)化編碼 不僅節(jié)省了映射操作單元本地的存儲(chǔ)空間,還減少了后續(xù)發(fā)送給規(guī)約操作單元時(shí)IO的壓 力。雖然以上針對(duì)MapReduce模型并結(jié)合單詞統(tǒng)計(jì)的具體例子描述了簡(jiǎn)化裝置210, 但是本領(lǐng)域技術(shù)人員能夠理解,簡(jiǎn)化裝置210可以類似地應(yīng)用于其他計(jì)算任務(wù)和其他并行 計(jì)算系統(tǒng)。對(duì)于如上所述的包含η個(gè)處理階段的一般性的并行計(jì)算系統(tǒng),簡(jiǎn)化裝置210可以 設(shè)置在計(jì)算系統(tǒng)的任何階段的并行計(jì)算單元中,只要該并行計(jì)算單元產(chǎn)生中間結(jié)果,并且 該中間結(jié)果有待在不同并行計(jì)算單元之間進(jìn)行傳輸。在這種情況下,項(xiàng)目識(shí)別單元211識(shí) 別輸入到該并行計(jì)算單元中的數(shù)據(jù)中的項(xiàng)目,對(duì)應(yīng)建立單元212根據(jù)特定簡(jiǎn)化編碼算法, 建立所述項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系,項(xiàng)目替換單元213根據(jù)所述對(duì)應(yīng)關(guān)系,將所述項(xiàng)目 替換為所述索引,使得該并行計(jì)算單元產(chǎn)生經(jīng)過簡(jiǎn)化的中間結(jié)果。由于并行計(jì)算單元得到 的輸入不限于鍵值對(duì)的形式,因此簡(jiǎn)化裝置210根據(jù)輸入數(shù)據(jù)的形式,對(duì)輸入數(shù)據(jù)中各種 存在簡(jiǎn)化可能的數(shù)據(jù)項(xiàng)目進(jìn)行簡(jiǎn)化,而不限于上述例子中僅簡(jiǎn)化鍵值對(duì)中的鍵。由此,簡(jiǎn)化 裝置210實(shí)現(xiàn)了中間結(jié)果的簡(jiǎn)化,從而降低了并行計(jì)算系統(tǒng)中與中間結(jié)果傳輸相關(guān)的IO消
^^ ο如上所述,在簡(jiǎn)化裝置210對(duì)中間結(jié)果進(jìn)行簡(jiǎn)化的過程中,它產(chǎn)生了大量的簡(jiǎn)化 前項(xiàng)目與簡(jiǎn)化后索引之間的對(duì)應(yīng)關(guān)系,或稱字典條目。簡(jiǎn)化裝置210可以將這些字典條目 注冊(cè)到中央字典庫220進(jìn)行統(tǒng)一管理??傮w來說,中央字典庫220用于存儲(chǔ)簡(jiǎn)化前后的對(duì)應(yīng)關(guān)系。典型地,中央字典庫 220以字典的形式來存儲(chǔ)上述對(duì)應(yīng)關(guān)系,該字典包括多個(gè)條目,每個(gè)條目記錄一個(gè)項(xiàng)目與一 個(gè)索引之間的對(duì)應(yīng),字典中多個(gè)項(xiàng)目的平均大小大于對(duì)應(yīng)的多個(gè)索引的平均大小。中央字 典庫220中的條目可以來自于簡(jiǎn)化裝置210。多個(gè)簡(jiǎn)化裝置210可以同時(shí)向中央字典庫220 注冊(cè)其構(gòu)建的條目。在一個(gè)實(shí)施例中,中央字典庫220是與簡(jiǎn)化裝置210和復(fù)原裝置230 相獨(dú)立的實(shí)體。簡(jiǎn)化裝置210和復(fù)原裝置230各自通過現(xiàn)有技術(shù)中已知的各種有線、無線 通信方式與中央字典庫220實(shí)現(xiàn)通信。為了防止多個(gè)簡(jiǎn)化裝置210同時(shí)注冊(cè)可能引起的注冊(cè)重復(fù),在一個(gè)實(shí)施例中,中 央字典庫220還配置為在接收到新的字典條目注冊(cè)時(shí),檢查是否已經(jīng)注冊(cè)有相同的條目。 此外,簡(jiǎn)化裝置210可能采用的各種簡(jiǎn)化編碼算法具有不同的可能沖突率。為此,中央字典 庫220還配置為在接收到新的條目時(shí),檢查該新條目是否與已有條目相沖突,并在出現(xiàn)沖 突的情況下,通知試圖注冊(cè)該新條目的簡(jiǎn)化裝置210重新進(jìn)行簡(jiǎn)化。由此,保證了原始項(xiàng)目 與簡(jiǎn)化后的索引之間的唯一對(duì)應(yīng),使得該簡(jiǎn)化具有可恢復(fù)性。進(jìn)一步地,為了在讀取處理結(jié)果時(shí)恢復(fù)數(shù)據(jù),與簡(jiǎn)化裝置210相對(duì)應(yīng)地提供有復(fù) 原裝置230。圖5示出根據(jù)本發(fā)明實(shí)施例的復(fù)原裝置230的框圖。如圖5所示,復(fù)原裝置230包括對(duì)應(yīng)獲取單元231和結(jié)果替換單元232。仍然以MapReduce模型為例描述該復(fù)原 裝置230。在圖3的MapReduce結(jié)構(gòu)中,復(fù)原裝置230可以設(shè)置在綜合單元中,用于將經(jīng)過簡(jiǎn) 化的處理結(jié)果復(fù)原為原始結(jié)果。更具體地,在產(chǎn)生中間結(jié)果過程中,簡(jiǎn)化裝置210建立原始 項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系,并根據(jù)該對(duì)應(yīng)關(guān)系將數(shù)據(jù)中的項(xiàng)目替換成了較短的索引。對(duì) 應(yīng)地,在進(jìn)行復(fù)原時(shí),對(duì)應(yīng)獲取單元231首先獲取上述原始項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系,然 后結(jié)果替換單元232根據(jù)獲得的對(duì)應(yīng)關(guān)系,將處理結(jié)果中的索引替換回原始項(xiàng)目,由此產(chǎn) 生用戶可讀的處理結(jié)果。在一個(gè)實(shí)施例中,簡(jiǎn)化裝置210將上述對(duì)應(yīng)關(guān)系注冊(cè)到了中央字 典庫中。相應(yīng)地,對(duì)應(yīng)獲取單元231通過查閱中央字典庫220中的條目,而獲得原始項(xiàng)目與 索引之間的對(duì)應(yīng)關(guān)系。在單詞統(tǒng)計(jì)的例子中,映射操作單元通過簡(jiǎn)化裝置210產(chǎn)生了簡(jiǎn)化的中間鍵值對(duì) (11,1),(22,1)等。通過規(guī)約操作單元對(duì)中間鍵值對(duì)的常規(guī)處理,綜合單元于是將會(huì)得到這 樣的統(tǒng)計(jì)結(jié)果(11,2),(22,1), (33,1)。然而這樣的結(jié)果對(duì)于用戶來說是沒有意義的。因 此,在一個(gè)實(shí)施例中,一旦綜合單元獲得處理結(jié)果,復(fù)原裝置230中的對(duì)應(yīng)獲取單元231就 查閱中央字典庫220,獲得與處理結(jié)果相關(guān)的對(duì)應(yīng)關(guān)系,并將這樣的對(duì)應(yīng)關(guān)系發(fā)送給結(jié)果替 換單元232,結(jié)果替換單元232于是基于這樣的對(duì)應(yīng)關(guān)系執(zhí)行替換,得到用戶可讀的處理結(jié) 果(hell0,2),(beijing,l),(W0rld,l)。由于并行計(jì)算系統(tǒng)中最終獲得的處理結(jié)果往往也 很龐大,因此,在另一個(gè)實(shí)施例中,復(fù)原裝置230響應(yīng)于綜合單元接收到的用戶要求讀取特 定部分結(jié)果的請(qǐng)求來進(jìn)行操作。在一個(gè)例子中,對(duì)應(yīng)獲取單元231響應(yīng)于用戶請(qǐng)求,獲得用 戶請(qǐng)求中涉及的項(xiàng)目,通過查詢中央字典庫找到記錄該項(xiàng)目的條目,得到該條目所記錄的 對(duì)應(yīng)關(guān)系以及相應(yīng)的索引,并將這樣的信息發(fā)給結(jié)果替換單元232。結(jié)果替換單元232根據(jù) 獲得的索引,確定處理結(jié)果中與用戶請(qǐng)求的特定部分結(jié)果相關(guān)的部分,并根據(jù)索引與項(xiàng)目 的對(duì)應(yīng)關(guān)系對(duì)這部分結(jié)果執(zhí)行替換。例如,如果用戶僅僅請(qǐng)求讀取“hello”出現(xiàn)的次數(shù),那 么對(duì)應(yīng)獲取單元231首先基于“hello”在中央字典庫中查找到“hello”與索引“11”的對(duì) 應(yīng)關(guān)系,獲得索引“11”,然后結(jié)果替換單元232從處理結(jié)果中篩選出與索引“11”相關(guān)的結(jié) 果作為用戶請(qǐng)求的特定部分結(jié)果,并對(duì)這部分結(jié)果進(jìn)行替換,也就是僅僅將處理結(jié)果中的 (11,2)替換為(hello,2),并提供給用戶。類似地,在不同于MapReduce結(jié)構(gòu)的其他并行計(jì)算系統(tǒng)中可以類似地設(shè)置復(fù)原裝 置。對(duì)于如上所述的包含η個(gè)處理階段的一般性的并行計(jì)算系統(tǒng),復(fù)原裝置230可以設(shè)置 在最后一階段的計(jì)算單元中或?qū)S糜诔尸F(xiàn)結(jié)果的單元中。如此,通過圖3的傳輸簡(jiǎn)化系統(tǒng)200,在并行計(jì)算開始時(shí)將處理數(shù)據(jù)進(jìn)行簡(jiǎn)化,在 并行計(jì)算結(jié)束時(shí)將處理數(shù)據(jù)復(fù)原,使得整個(gè)并行計(jì)算過程中,在多個(gè)并行計(jì)算單元之間傳 輸?shù)闹虚g結(jié)果的大小得到縮減,從而極大地減小了并行計(jì)算系統(tǒng)內(nèi)、計(jì)算單元之間的IO消 耗,有效解決現(xiàn)有技術(shù)中的IO瓶頸??梢岳斫猓⑿杏?jì)算系統(tǒng)中中間結(jié)果的簡(jiǎn)化比例以及 IO縮減的比例都取決于簡(jiǎn)化裝置210所采用的簡(jiǎn)化編碼算法。下面對(duì)該簡(jiǎn)化編碼算法進(jìn)行 舉例和描述。為了實(shí)現(xiàn)數(shù)據(jù)簡(jiǎn)化編碼,哈希算法是一種較為常用的方法。哈希算法是一類算法 的統(tǒng)稱,它將任意長(zhǎng)度的二進(jìn)制值根據(jù)特定的數(shù)學(xué)函數(shù)映射為固定長(zhǎng)度的較小二進(jìn)制值, 這個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。較為完善的哈希算法能夠使得,構(gòu)造兩個(gè)相互獨(dú)立且具有相同哈希值的輸入不能通過計(jì)算方法 實(shí)現(xiàn)。哈希算法常用于身份認(rèn)證、數(shù)字簽名等操作。典型的哈希算法包括MD2、MD4、MD5和 SHA-1。其中MD5是一種符合工業(yè)標(biāo)準(zhǔn)的單向1 位哈希方案,它以結(jié)果唯一并且不能返回 到其原始格式的方式來轉(zhuǎn)換數(shù)據(jù)。下面我們以并行計(jì)算中常遇到的單詞統(tǒng)計(jì)問題為例,說明哈希算法在并行計(jì)算的 中間結(jié)果簡(jiǎn)化編碼中的可用性。統(tǒng)計(jì)表明,日常生活中最為常用的英語單詞只有2000個(gè)左右。我們假定,有待 統(tǒng)計(jì)的文本中可能出現(xiàn)的單詞個(gè)數(shù)為常用單詞的100倍(實(shí)際上會(huì)遠(yuǎn)遠(yuǎn)低于該值),即 2000X100 = 200,000。假定我們將每個(gè)單詞哈希至4個(gè)字節(jié)大小,即32位,那么可能存儲(chǔ) 的單詞數(shù)目為4,294, 967,296個(gè)。這意味著,用4個(gè)字節(jié)存儲(chǔ)可能出現(xiàn)的200,000個(gè)單詞 的稀疏度為4. 6566e-5,平均的沖突率小于加_9。如果在設(shè)計(jì)哈希算法時(shí)進(jìn)一步考慮字母 的分布規(guī)律,那么沖突率可以進(jìn)一步降低。如此低的沖突率足以使得這樣的簡(jiǎn)化編碼能夠 保證編碼前后的唯一對(duì)應(yīng)。以維基百科的單詞量為例,2008年11月英文版維基百科所有單 詞的總數(shù)為35M,占用的總空間大小為211MB,平均每個(gè)單詞6個(gè)字節(jié)。將所有單詞哈希至4 個(gè)字節(jié),仍然用5臺(tái)刀片機(jī)架進(jìn)行處理,那么可以看到,每臺(tái)機(jī)器的平均IO從原來的25MB/ s(見背景技術(shù)部分中的舉例)降至19MB/S。如果簡(jiǎn)化的對(duì)象是并行計(jì)算中常常遇到網(wǎng)頁 URL,那么簡(jiǎn)化效率將更加可觀。URL的平均長(zhǎng)度為95字節(jié),通過將這樣的URL哈希至4個(gè) 字節(jié),可以將IO流量降低為原來的10%。在基本哈希算法的基礎(chǔ)上,還可以根據(jù)需要采用 階躍哈希,以進(jìn)一步優(yōu)化簡(jiǎn)化編碼的結(jié)果。采用哈希算法的另一個(gè)優(yōu)勢(shì)是計(jì)算資源的復(fù)用。實(shí)際上,在現(xiàn)有的MapReduce并 行計(jì)算系統(tǒng)中,在映射階段產(chǎn)生大量中間鍵值。在規(guī)約階段,由特定的管理機(jī)(master)或 由某個(gè)規(guī)約操作單元充當(dāng)這樣的管理機(jī)來負(fù)責(zé)中間鍵值對(duì)的“路由”,以使得來自多個(gè)映 射操作單元的“鍵”相同的鍵值對(duì)被發(fā)往同一規(guī)約操作單元。為了實(shí)現(xiàn)這樣的“路由”,規(guī) 約階段中通常仍然需要將這些鍵值對(duì)中的鍵進(jìn)行哈希,據(jù)此對(duì)這些鍵值對(duì)進(jìn)行分組,基于 該分組來確定哪個(gè)鍵值對(duì)應(yīng)該發(fā)往哪個(gè)規(guī)約操作單元以進(jìn)行進(jìn)一步處理。而在本發(fā)明的 實(shí)施例中,在映射操作階段已經(jīng)用哈希算法對(duì)中間鍵值對(duì)進(jìn)行了簡(jiǎn)化,潛在地對(duì)中間鍵值 對(duì)進(jìn)行了分組,那么在規(guī)約階段就可以直接復(fù)用哈希的結(jié)果,而不必再次進(jìn)行哈希運(yùn)算。 因此,在映射操作階段進(jìn)行中間鍵值對(duì)的哈希簡(jiǎn)化使得計(jì)算資源得到復(fù)用,進(jìn)一步提高了 MapReduce并行計(jì)算系統(tǒng)的運(yùn)行效率。在其他并行計(jì)算系統(tǒng)中,也存在中間結(jié)果的“路由” 傳輸問題??梢灶愃频鼗谥虚g結(jié)果的簡(jiǎn)化編碼來對(duì)中間結(jié)果進(jìn)行分組傳輸。如上所述,哈希算法是將輸入序列映射為固定長(zhǎng)度的索引的過程。然而,在其他簡(jiǎn) 化編碼算法中,索引的長(zhǎng)度并不必然是固定的。在一種簡(jiǎn)化編碼算法中,將出現(xiàn)頻率較高的 序列映射為長(zhǎng)度較短的索引,將出現(xiàn)頻率較低的序列映射為長(zhǎng)度較長(zhǎng)的索引。在這種方法 中,索引的長(zhǎng)度并不固定,并且并不保證每個(gè)序列的長(zhǎng)度都必然地大于其對(duì)應(yīng)的索引的長(zhǎng) 度。但是,以出現(xiàn)頻率為權(quán)重進(jìn)行平均之后可以使得簡(jiǎn)化編碼后的索引的平均長(zhǎng)度要遠(yuǎn)遠(yuǎn) 小于序列的長(zhǎng)度,從而起到靈活編碼的作用。除了根據(jù)數(shù)學(xué)函數(shù)來執(zhí)行映射的哈希算法之 外,還可以通過其他映射方法來對(duì)輸入序列進(jìn)行簡(jiǎn)化,例如人為規(guī)定輸入序列與索引之間 的對(duì)應(yīng)關(guān)系。這類方法可以稱為類哈希算法。本領(lǐng)域技術(shù)人員可以理解,除了以上描述的編碼算法之外,還可以根據(jù)并行計(jì)算單元中輸入數(shù)據(jù)的格式、內(nèi)容等特點(diǎn),采用其他簡(jiǎn)化編碼方法,只要使得簡(jiǎn)化前后的項(xiàng)目和 索引保持足夠良好的唯一對(duì)應(yīng)關(guān)系,且索引的平均大小小于項(xiàng)目的平均大小。通過以上描述的簡(jiǎn)化裝置210,中央字典庫220和復(fù)原裝置230所構(gòu)成的系統(tǒng) 200,分布式并行計(jì)算系統(tǒng)中的IO消耗大為減小,處理瓶頸得到解除,處理效率得到提高?;谕话l(fā)明構(gòu)思,本發(fā)明還提供了對(duì)應(yīng)的簡(jiǎn)化并行計(jì)算系統(tǒng)中的傳輸?shù)姆椒?。圖6示出根據(jù)本發(fā)明實(shí)施例的用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)姆椒ǎ?述分布式并行計(jì)算系統(tǒng)包括至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元。如圖所示,該方法包 括以下步驟。在步驟601,識(shí)別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng)目;在步驟 602,根據(jù)簡(jiǎn)化編碼算法,建立所述至少一個(gè)項(xiàng)目與其索引之間的對(duì)應(yīng)關(guān)系,所述索引的平 均大小小于所述至少一個(gè)項(xiàng)目的平均大?。恢?,在步驟603,根據(jù)所述對(duì)應(yīng)關(guān)系,將所述 至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引;由此,在步驟604,基于所述索引由所述并行計(jì)算單元 產(chǎn)生簡(jiǎn)化的中間結(jié)果;之后,在步驟605,傳輸所述簡(jiǎn)化的中間結(jié)果。通過這樣的過程,并行 計(jì)算系統(tǒng)中的中間結(jié)果的傳輸?shù)玫胶?jiǎn)化。進(jìn)一步地,與上述簡(jiǎn)化相對(duì)應(yīng),本發(fā)明的方法還包括復(fù)原處理結(jié)果的步驟。具體 地,上述方法還可以包括如下步驟獲取所述項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系;然后,根據(jù)所述 對(duì)應(yīng)關(guān)系,將基于所述簡(jiǎn)化的中間結(jié)果而獲得的處理結(jié)果中的所述索引替換為其對(duì)應(yīng)的項(xiàng) 目。通過這樣的步驟,并行計(jì)算系統(tǒng)的處理結(jié)果得到復(fù)原,成為用戶可讀的處理結(jié)果。由于上述傳輸簡(jiǎn)化方法執(zhí)行的原理和方式與前述對(duì)圖4和圖5的裝置描述相對(duì) 應(yīng),因此不再贅述。本領(lǐng)域技術(shù)人員可以理解,上述簡(jiǎn)化中間結(jié)果、復(fù)原處理結(jié)果的裝置及方法可以 使用計(jì)算機(jī)可執(zhí)行指令和/或包含在處理器控制代碼中來實(shí)現(xiàn),例如在諸如磁盤、CD或 DVD-ROM的載體介質(zhì)、諸如只讀存儲(chǔ)器(固件)的可編程的存儲(chǔ)器或者諸如光學(xué)或電子信號(hào) 載體的數(shù)據(jù)載體上提供了這樣的代碼。本實(shí)施例的系統(tǒng)、裝置及其單元可以由諸如超大規(guī) 模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可 編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的 軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。雖然以上結(jié)合具體實(shí)施例,對(duì)本發(fā)明的提供動(dòng)態(tài)幫助信息的方法和系統(tǒng)進(jìn)行了詳 細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行 多種變換、替換和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、替換、修 改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來限定。
權(quán)利要求
1.一種用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)姆椒?,所述分布式并行?jì)算系統(tǒng)包括 至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元,所述方法包括識(shí)別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng)目;根據(jù)簡(jiǎn)化編碼算法,建立所述至少一個(gè)項(xiàng)目與其索引之間的對(duì)應(yīng)關(guān)系,所述索引的平 均大小小于所述至少一個(gè)項(xiàng)目的平均大?。桓鶕?jù)所述對(duì)應(yīng)關(guān)系,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引;基于所述索引由所述并行計(jì)算單元產(chǎn)生簡(jiǎn)化的中間結(jié)果;以及傳輸所述簡(jiǎn)化的中間結(jié)果。
2.根據(jù)權(quán)利要求1的方法,其中所述分布式并行計(jì)算系統(tǒng)是采用MapReduce模型的計(jì) 算系統(tǒng),所述并行計(jì)算單元是映射操作單元。
3.根據(jù)權(quán)利要求1的方法,還包括將所述對(duì)應(yīng)關(guān)系注冊(cè)到中央字典庫。
4.根據(jù)權(quán)利要求1的方法,還包括將所述對(duì)應(yīng)關(guān)系存儲(chǔ)在所述并行計(jì)算單元本地。
5.根據(jù)權(quán)利要求1的方法,其中所述簡(jiǎn)化編碼算法包括哈希算法。
6.根據(jù)權(quán)利要求1的方法,其中所述替換的步驟包括在所述并行計(jì)算單元執(zhí)行并行 計(jì)算之前,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引。
7.根據(jù)權(quán)利要求1的方法,還包括獲取所述項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系;以及根據(jù)所述對(duì)應(yīng)關(guān)系,將基于所述簡(jiǎn)化的中間結(jié)果而獲得的處理結(jié)果中的所述索引替換 為其對(duì)應(yīng)的項(xiàng)目。
8.根據(jù)權(quán)利要求7的方法,其中所述獲取對(duì)應(yīng)關(guān)系的步驟包括通過查詢中央字典庫 中的條目而獲得所述對(duì)應(yīng)關(guān)系。
9.根據(jù)權(quán)利要求7的方法,其中所述獲取對(duì)應(yīng)關(guān)系的步驟包括響應(yīng)于用戶對(duì)部分結(jié) 果的請(qǐng)求,基于該部分結(jié)果所涉及的部分項(xiàng)目獲得與所述部分項(xiàng)目相關(guān)聯(lián)的部分對(duì)應(yīng)關(guān)系 以及與所述部分項(xiàng)目相對(duì)應(yīng)的部分索引。
10.根據(jù)權(quán)利要求9的方法,其中所述替換步驟包括根據(jù)所述部分索引在處理結(jié)果中 獲得與所請(qǐng)求的部分結(jié)果相關(guān)的部分?jǐn)?shù)據(jù),并根據(jù)所述部分對(duì)應(yīng)關(guān)系將所述部分?jǐn)?shù)據(jù)中的 部分索引替換為對(duì)應(yīng)的部分項(xiàng)目。
11.一種用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)南到y(tǒng),所述分布式并行計(jì)算系統(tǒng)包 括至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元,所述系統(tǒng)包括簡(jiǎn)化裝置,包括項(xiàng)目識(shí)別單元,配置用于識(shí)別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng)目;對(duì)應(yīng)建立單元,配置用于根據(jù)簡(jiǎn)化編碼算法,建立所述至少一個(gè)項(xiàng)目與其索引之間的 對(duì)應(yīng)關(guān)系,所述索引的平均大小小于所述至少一個(gè)項(xiàng)目的平均大小;以及項(xiàng)目替換單元,配置用于根據(jù)所述對(duì)應(yīng)關(guān)系,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索 弓丨,使得所述并行計(jì)算單元能夠基于所述索引產(chǎn)生簡(jiǎn)化的中間結(jié)果,并由所述并行計(jì)算單 元傳輸所述簡(jiǎn)化的中間結(jié)果。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中所述分布式并行計(jì)算系統(tǒng)是采用MapReduce模型的 計(jì)算系統(tǒng),所述并行計(jì)算單元是映射操作單元。
13.根據(jù)權(quán)利要求11的系統(tǒng),其中所述對(duì)應(yīng)建立單元還配置為,將所述對(duì)應(yīng)關(guān)系注冊(cè) 到中央字典庫。
14.根據(jù)權(quán)利要求11的系統(tǒng),其中所述對(duì)應(yīng)建立單元還配置為,將所述對(duì)應(yīng)關(guān)系存儲(chǔ) 在所述并行計(jì)算單元本地。
15.根據(jù)權(quán)利要求11的系統(tǒng),其中所述簡(jiǎn)化編碼算法包括哈希算法。
16.根據(jù)權(quán)利要求11的系統(tǒng),其中所述項(xiàng)目替換單元進(jìn)一步配置為,在所述并行計(jì)算 單元執(zhí)行并行計(jì)算之前,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引。
17.根據(jù)權(quán)利要求11的系統(tǒng),還包括復(fù)原裝置,所述復(fù)原裝置包括對(duì)應(yīng)獲取單元,配置用于獲取所述項(xiàng)目與索引之間的對(duì)應(yīng)關(guān)系;以及結(jié)果替換單元,配置用于根據(jù)所述對(duì)應(yīng)關(guān)系,將基于所述簡(jiǎn)化的中間結(jié)果而獲得的處 理結(jié)果中的所述索引替換為其對(duì)應(yīng)的項(xiàng)目。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中所述對(duì)應(yīng)獲取單元配置為通過查詢中央字典庫中的 條目而獲得所述對(duì)應(yīng)關(guān)系。
19.根據(jù)權(quán)利要求17的系統(tǒng),其中所述對(duì)應(yīng)獲取單元配置為,響應(yīng)于用戶對(duì)部分結(jié)果 的請(qǐng)求,基于該部分結(jié)果所涉及的部分項(xiàng)目獲得與所述部分項(xiàng)目相關(guān)聯(lián)的部分對(duì)應(yīng)關(guān)系以 及與所述部分項(xiàng)目相對(duì)應(yīng)的部分索引。
20.根據(jù)權(quán)利要求19的系統(tǒng),其中所述結(jié)果替換單元配置為,根據(jù)所述部分索引在處 理結(jié)果中獲得與所請(qǐng)求的部分結(jié)果相關(guān)的部分?jǐn)?shù)據(jù),并根據(jù)所述部分對(duì)應(yīng)關(guān)系將所述部分 數(shù)據(jù)中的部分索引替換為對(duì)應(yīng)的部分項(xiàng)目。
全文摘要
提供一種用于簡(jiǎn)化分布式并行計(jì)算系統(tǒng)中的傳輸?shù)姆椒?,所述分布式并行?jì)算系統(tǒng)包括至少一個(gè)產(chǎn)生中間結(jié)果的并行計(jì)算單元,所述方法包括識(shí)別輸入到所述并行計(jì)算單元的數(shù)據(jù)中的至少一個(gè)項(xiàng)目;根據(jù)簡(jiǎn)化編碼算法,建立所述至少一個(gè)項(xiàng)目與其索引之間的對(duì)應(yīng)關(guān)系,所述索引的平均大小小于所述至少一個(gè)項(xiàng)目的平均大??;根據(jù)所述對(duì)應(yīng)關(guān)系,將所述至少一個(gè)項(xiàng)目替換為其對(duì)應(yīng)的索引;基于所述索引由所述并行計(jì)算單元產(chǎn)生簡(jiǎn)化的中間結(jié)果;以及傳輸所述簡(jiǎn)化的中間結(jié)果。本發(fā)明還提供了與上述方法對(duì)應(yīng)的系統(tǒng)。通過這些系統(tǒng)和方法,并行計(jì)算系統(tǒng)中的中間結(jié)果得到簡(jiǎn)化,傳輸這些中間結(jié)果的IO消耗得到顯著降低。
文檔編號(hào)G06F17/30GK102141995SQ201010104978
公開日2011年8月3日 申請(qǐng)日期2010年1月29日 優(yōu)先權(quán)日2010年1月29日
發(fā)明者向哲, 林海波, 溫嘉佳, 趙邑新 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1