專利名稱:組合計(jì)算裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式并行計(jì)算系統(tǒng),更具體而言,涉及并行計(jì)算系統(tǒng)中進(jìn)行組合計(jì)算的裝置和方法。
背景技術(shù):
信息技術(shù)的發(fā)展為人們提供了越來(lái)越豐富和強(qiáng)大的應(yīng)用和服務(wù),同時(shí)也對(duì)處理設(shè)備的運(yùn)算能力提出了越來(lái)越高的要求。盡管處理器的運(yùn)行速度也在不斷提高,但是面對(duì)海量信息和數(shù)據(jù),分布式并行計(jì)算成為一種實(shí)用的解決方式。分布式并行計(jì)算是將一個(gè)處理任務(wù)分散到多個(gè)處理器中同時(shí)并行執(zhí)行的方案。目 前,已經(jīng)存在多種大規(guī)模并行計(jì)算的執(zhí)行方式,其中最為重要和常用的是MapReduce模型。MapReduce是一種簡(jiǎn)潔的并行計(jì)算模型,其名字源于這個(gè)模型中的兩項(xiàng)核心操作映射(Map)和規(guī)約(Reduce),這兩個(gè)概念來(lái)自于函數(shù)式編程語(yǔ)言(FunctionProgramming)。簡(jiǎn)單地說,Map是把一組數(shù)據(jù)一對(duì)一地映射為另外的一組數(shù)據(jù),其映射的規(guī)則由用戶定義的一個(gè)函數(shù)來(lái)指定。Reduce是根據(jù)用戶定義的函數(shù)對(duì)一組數(shù)據(jù)進(jìn)行合并和規(guī)約。在Map過程中,數(shù)據(jù)被并行地分開、獨(dú)立處理,而在Reduce過程中,分開的數(shù)據(jù)被合并到了一起。因此,利用Map和Reduce操作的一分一合,就可以將一個(gè)復(fù)雜龐大的任務(wù)分拆成許多個(gè)作業(yè)并行執(zhí)行運(yùn)算,然后對(duì)并行運(yùn)算的結(jié)果進(jìn)行綜合,從而得到期望的結(jié)果。圖I示出現(xiàn)有技術(shù)MapReduce模型的基本架構(gòu)的示意圖。在圖I所示的映射規(guī)約模型中,每個(gè)映射單元從對(duì)應(yīng)的數(shù)據(jù)源讀取鍵值對(duì)(k,v)形式的輸入數(shù)據(jù),根據(jù)用戶定義的函數(shù),將輸入鍵值對(duì)(k,v)映射為新的鍵值對(duì),稱為中間鍵值對(duì)。之后,在規(guī)約階段,將具有相同鍵的中間鍵值對(duì)發(fā)往相同的規(guī)約單元,由規(guī)約單元對(duì)結(jié)果進(jìn)行綜合。如上所述,在現(xiàn)有的MapReduce模型中,輸入數(shù)據(jù)必須遵從單個(gè)鍵值對(duì)的輸入形式。也就是說,映射單元只能對(duì)單個(gè)鍵值對(duì)(k,v)進(jìn)行操作,因此只能支持單個(gè)數(shù)據(jù)源的輸入。然而,對(duì)于很多應(yīng)用來(lái)說,單個(gè)鍵值對(duì)形式的輸入要求對(duì)于并行計(jì)算設(shè)計(jì)來(lái)說過于嚴(yán)格。實(shí)際上,在許多應(yīng)用中,將多個(gè)數(shù)據(jù)源作為輸入數(shù)據(jù),并希望對(duì)多個(gè)數(shù)據(jù)源進(jìn)行組合運(yùn)算。這時(shí),現(xiàn)有的MapReduce模型就帶來(lái)了很大的局限性。下面結(jié)合兩個(gè)例子說明多組輸入數(shù)據(jù)的組合運(yùn)算的情況。在一個(gè)例子中,利用并行計(jì)算系統(tǒng)對(duì)陣列天線進(jìn)行配置。由于陣列天線的各種信息都是以矩陣形式進(jìn)行存儲(chǔ),因此計(jì)算系統(tǒng)需要對(duì)大型矩陣進(jìn)行各種運(yùn)算。對(duì)于m* s的矩陣A,如果要計(jì)算A乘以一個(gè)常數(shù)\的結(jié)果,那么在現(xiàn)有的MapReduce模型下,可以將輸入鍵值對(duì)(kl,vl)設(shè)定為kl =矩陣行號(hào),Vl =對(duì)應(yīng)行的矩陣元素,并將映射函數(shù)設(shè)定為f(kl,vl) = (kl, X vl),從而得到映射后的鍵值對(duì)(k2, v2) = f (kl, vl),以此鍵值對(duì)表示乘以常數(shù)之后的結(jié)果。然而,如果要計(jì)算矩陣A乘以另一個(gè)s * n的矩陣B的結(jié)果,根據(jù)矩陣乘法的定義,必然要同時(shí)對(duì)A、B兩個(gè)矩陣的元素進(jìn)行組合操作,也就需要將兩個(gè)矩陣的元素同時(shí)作為輸入數(shù)據(jù)。在現(xiàn)有MapReduce計(jì)算系統(tǒng)下,由于映射單元只能接受單個(gè)鍵值對(duì)作為輸入,因此編程人員往往要通過非常復(fù)雜的算法將矩陣B的元素拆分和分發(fā),并設(shè)定復(fù)雜的輸入鍵值對(duì)來(lái)實(shí)現(xiàn)兩個(gè)矩陣的乘法運(yùn)算。在另一個(gè)例子中,利用并行計(jì)算系統(tǒng)實(shí)現(xiàn)推薦功能,這一功能廣泛應(yīng)用在各種購(gòu)物網(wǎng)站中。具體地,在用戶m購(gòu)買某商品n之后,系統(tǒng)會(huì)記錄用戶m對(duì)該商品n的評(píng)分Rm_n,用于分析商品之間的相似度S。在獲得任意商品之間的相似度的基礎(chǔ)上,在用戶購(gòu)買某商品i時(shí),系統(tǒng)可以計(jì)算出與商品i具有最大相似度S的商品,并將這樣的商品推薦給用戶。一般地,用于計(jì)算相似度的評(píng)分?jǐn)?shù)據(jù)以矩陣、表格等形式記錄在例如HDFS (Hadoop DistributedFile System)的共享文件中。為了計(jì)算商品之間的相似度,在一種算法中,商品i與商品j之間的相似度被定義為
權(quán)利要求
1.一種組合計(jì)算裝置,位于并行計(jì)算系統(tǒng)中,包括 輸入設(shè)定單元,配置為接收與多組輸入數(shù)據(jù)相關(guān)的第一設(shè)定和與所述多組輸入數(shù)據(jù)之間的組合方式相關(guān)的第二設(shè)定; 數(shù)據(jù)獲取單元,配置為根據(jù)所述第一設(shè)定和第二設(shè)定,獲取由多組輸入數(shù)據(jù)構(gòu)成的數(shù)據(jù)組合; 至少一個(gè)組合操作單元,配置為對(duì)所述數(shù)據(jù)組合進(jìn)行所需的計(jì)算操作。
2.根據(jù)權(quán)利要求I的裝置,其中所述第一設(shè)定包括所述多組輸入數(shù)據(jù)的數(shù)據(jù)源的信息和輸入數(shù)據(jù)的格式設(shè)定。
3.根據(jù)權(quán)利要求2的裝置,其中所述輸入數(shù)據(jù)的格式設(shè)定包括將輸入數(shù)據(jù)設(shè)定為鍵值對(duì)的形式。
4.根據(jù)權(quán)利要求2的裝置,其中所述輸入設(shè)定單元還配置為,針對(duì)所述至少一個(gè)組合操作單元進(jìn)一步限定所述第一設(shè)定中的數(shù)據(jù)源的信息。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)的裝置,其中所述數(shù)據(jù)獲取單元包括 數(shù)據(jù)讀取模塊,配置為根據(jù)所述第一設(shè)定讀取多組輸入數(shù)據(jù);以及 數(shù)據(jù)組合模塊,配置為根據(jù)所述第二設(shè)定對(duì)所讀取的多組輸入數(shù)據(jù)進(jìn)行組合,形成所述數(shù)據(jù)組合。
6.根據(jù)權(quán)利要求I的裝置,其中所述數(shù)據(jù)獲取單元配置為,根據(jù)特定規(guī)則將所述數(shù)據(jù)組合組織為單組數(shù)據(jù)的形式;所述至少一個(gè)組合操作單元還配置為,基于所述特定規(guī)則將所述單組數(shù)據(jù)還原為包含多組輸入數(shù)據(jù)的數(shù)據(jù)組合。
7.根據(jù)權(quán)利要求I的裝置,其中所述至少一個(gè)組合操作單元包含用于接收操作函數(shù)的接口,并根據(jù)所接收的操作函數(shù)對(duì)所述數(shù)據(jù)組合進(jìn)行計(jì)算操作。
8.一種并行計(jì)算系統(tǒng),包括 如權(quán)利要求1-7中任一項(xiàng)所述的組合計(jì)算裝置,其產(chǎn)生中間數(shù)據(jù);以及 規(guī)約計(jì)算裝置,包括多個(gè)規(guī)約單元,其每一個(gè)配置為對(duì)所述中間數(shù)據(jù)進(jìn)行規(guī)約和合并,產(chǎn)生最終結(jié)果。
9.一種組合計(jì)算方法,包括 接收與多組輸入數(shù)據(jù)相關(guān)的第一設(shè)定和與所述多組輸入數(shù)據(jù)之間的組合方式相關(guān)的第二設(shè)定; 根據(jù)所述第一設(shè)定和第二設(shè)定獲取由多組輸入數(shù)據(jù)構(gòu)成的數(shù)據(jù)組合;以及 對(duì)所述數(shù)據(jù)組合進(jìn)行所需的計(jì)算操作。
10.根據(jù)權(quán)利要求9的方法,其中所述第一設(shè)定包括所述多組輸入數(shù)據(jù)的數(shù)據(jù)源的信息和輸入數(shù)據(jù)的格式設(shè)定。
11.根據(jù)權(quán)利要求10的方法,其中所述輸入數(shù)據(jù)的格式設(shè)定包括將輸入數(shù)據(jù)設(shè)定為鍵值對(duì)的形式。
12.根據(jù)權(quán)利要求10的方法,還包括,進(jìn)一步限定所述第一設(shè)定中的數(shù)據(jù)源的信息。
13.根據(jù)權(quán)利要求9-12中任一項(xiàng)的方法,其中所述獲取由多組輸入數(shù)據(jù)構(gòu)成的數(shù)據(jù)組合包括 根據(jù)所述第一設(shè)定讀取多組輸入數(shù)據(jù);以及 根據(jù)所述第二設(shè)定對(duì)所讀取的多組輸入數(shù)據(jù)進(jìn)行組合,從而形成數(shù)據(jù)組合。
14.根據(jù)權(quán)利要求9的方法,其中所述獲取數(shù)據(jù)組合還包括,根據(jù)特定規(guī)則將所述數(shù)據(jù)組合組織為單組數(shù)據(jù)的形式;所述進(jìn)行所需的計(jì)算操作還包括,基于所述特定規(guī)則將所述單組數(shù)據(jù)還原為包含多組輸入數(shù)據(jù)的數(shù)據(jù)組合。
15.根據(jù)權(quán)利要求9的方法,還包括接收定義的操作函數(shù),并且所述進(jìn)行定義的計(jì)算操作包括,根據(jù)接收的操作函數(shù)對(duì)所述數(shù)據(jù)組合進(jìn)行計(jì)算操作。
全文摘要
提供一種組合計(jì)算裝置和方法,所述裝置包括輸入設(shè)定單元,配置為接收與多組輸入數(shù)據(jù)相關(guān)的第一設(shè)定和與所述多組輸入數(shù)據(jù)之間的組合方式相關(guān)的第二設(shè)定;數(shù)據(jù)獲取單元,配置為根據(jù)所述第一設(shè)定和第二設(shè)定,獲取由多組輸入數(shù)據(jù)構(gòu)成的數(shù)據(jù)組合;以及至少一個(gè)組合操作單元,配置為對(duì)所述數(shù)據(jù)組合進(jìn)行所需的計(jì)算操作。本發(fā)明還提供了與上述裝置對(duì)應(yīng)的系統(tǒng)和方法。通過上述裝置和方法,改進(jìn)了現(xiàn)有的并行計(jì)算方式,使得并行計(jì)算的設(shè)計(jì)和操作更加簡(jiǎn)單,提高了并行計(jì)算系統(tǒng)的性能和效率。
文檔編號(hào)G06F9/50GK102722412SQ20111007961
公開日2012年10月10日 申請(qǐng)日期2011年3月31日 優(yōu)先權(quán)日2011年3月31日
發(fā)明者劉弢, 李嚴(yán), 楊雨?yáng)|, 林海波 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司