亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

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

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

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


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