欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法和系統(tǒng)的制作方法

文檔序號:6383302閱讀:201來源:國知局
專利名稱:用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)領(lǐng)域,特別是涉及一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法和 系統(tǒng)。
背景技術(shù)
在大規(guī)模并行計算中,很重要一類計算是矩陣或向量的計算。通常描述矩陣采用 (Rowkey, colkey, value)的三元組(其中Rowkey, colkey分別為行標(biāo)、列標(biāo),va Iue為實 際存儲的數(shù)據(jù)內(nèi)容),這樣可以采用稀疏的存儲方式,從而減少存儲空間。用戶再將矩陣按 照行(Rowkey)或者列(colkey)進(jìn)行劃分,將數(shù)據(jù)散布到多個計算結(jié)點(也即計算服務(wù)器) 上,從而達(dá)到并行計算的目的。通常為了唯一標(biāo)識矩陣中每個數(shù)據(jù)元素,輸入的Rowkey和 colkey采用位數(shù)較多(64位,128位)的簽名。而在實際的計算過程中,Rowkey和colkey 僅作為一個下標(biāo),并不需要很多的位數(shù)。因此為了減少節(jié)點內(nèi)存存儲空間,并且方便計算時 順序訪問,常常要對key和colkey進(jìn)行連續(xù)的id化,即將Rowkey和colkey都轉(zhuǎn)換為連續(xù) 的O-N的整數(shù)列。
現(xiàn)有技術(shù)中,存在一種對矩陣數(shù)據(jù)的的存儲標(biāo)識進(jìn)行id化的方法是串行id化方 法,即采用一個計算節(jié)點,逐個獲取矩陣中的數(shù)據(jù)元素將其行標(biāo)和列標(biāo)進(jìn)行id化,但是該 種方法處理效率低,時間長。發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的裝置和相應(yīng)的一種用于連續(xù)化矩陣數(shù)據(jù)元 素標(biāo)識的方法。
依據(jù)本發(fā)明的一個方面,提供了一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法,包 括
針對N個計算節(jié)點,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié) 點的矩陣分塊的數(shù)據(jù)元素;
每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中 的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點發(fā)送的數(shù) 據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識;
每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo) 識相應(yīng)的第一標(biāo)識;
每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算 節(jié)點。
可選的,所述每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié)點的矩 陣分塊的數(shù)據(jù)元素包括
每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的數(shù)據(jù)元素??蛇x的,所述每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點包括每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1個計算節(jié)點發(fā)送的列標(biāo)識。可選的,所述每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識包括每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識;每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。可選的,所述每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點包括每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點??蛇x的,所述每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點包括每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算節(jié)點發(fā)送的行標(biāo)識??蛇x的,所述每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識包括每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識;每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識??蛇x的,所述每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點包括每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點??蛇x的,所述對向量進(jìn)行連續(xù)化包括每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點;每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識;每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。依據(jù)本發(fā)明的另一個方面,提供一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng),包括
N個計算節(jié)點;
所述每個參與計算的計算節(jié)點包括
數(shù)據(jù)讀取模塊,適于每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié) 點的矩陣分塊的數(shù)據(jù)元素;
散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則, 將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余 N-1個計算節(jié)點發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識;
連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化, 獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識;
通知模塊,適于每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通 知給其他計算節(jié)點。
可選的,所述數(shù)據(jù)讀取模塊進(jìn)一步適于
每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的 數(shù)據(jù)元素。
可選的,當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素時,所 述散步和接收模塊包括
列散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則, 將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1 個計算節(jié)點發(fā)送的列標(biāo)識。
可選的,所述連續(xù)化模塊包括
第一行連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識 向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識;
第一列連續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生 成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。
可選的,所述通知模塊包括
第一通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng) 關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。
可選的,當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按列分塊的數(shù)據(jù)元素時,所 述散步和接收模塊包括
行散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則, 將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算 節(jié)點發(fā)送的行標(biāo)識。
可選的,所述連續(xù)化模塊包括
第二列續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向 量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識;
第二行續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成 行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識。
可選的,所述通知模塊包括
第二通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。可選的,所述第一列續(xù)化模塊、第一行續(xù)化模塊、第二列續(xù)化模塊、第二行續(xù)化模塊包括統(tǒng)計模塊,適于每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點;起始標(biāo)識計算模塊,適于每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識;向量連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點本發(fā)明每個參與計算的計算節(jié)點從存儲矩陣數(shù)據(jù)元素的服務(wù)器中讀取相應(yīng)矩陣分塊的數(shù)據(jù)元素,然后根據(jù)數(shù)據(jù)標(biāo)識的散步規(guī)則,將數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識發(fā)送至相應(yīng)的計算該類數(shù)據(jù)標(biāo)識的計算節(jié)點中,然后每個參與計算的計算節(jié)點將得到的各數(shù)據(jù)標(biāo)識生成數(shù)據(jù)標(biāo)識向量,對該數(shù)據(jù)標(biāo)識向量中每個分量(也即數(shù)據(jù)標(biāo)識)進(jìn)行連續(xù)化,獲得與每個分量對應(yīng)的第一標(biāo)識;然后每個參與計算的計算節(jié)點再將本地計算得到的數(shù)據(jù)標(biāo)識與第一標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點,那么其他計算節(jié)點即可獲知本地需要進(jìn)行計算的數(shù)據(jù)元素的連續(xù)化后的第一標(biāo)識。在這個過程中,對于大規(guī)模的矩陣數(shù)據(jù),可以通過各個計算節(jié)點并行的進(jìn)行連續(xù)化,加快了連續(xù)化的速度,提高了數(shù)據(jù)處理效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式



通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例一的流程示意圖;圖2示出了根據(jù)本發(fā)明一個實施例的矩陣數(shù)據(jù)存儲邏輯示意圖;圖3根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例二的流程示意圖;圖4示出了根據(jù)本發(fā)明實施例的一種數(shù)據(jù)標(biāo)識廣播邏輯示意圖;圖5根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例三的流程示意圖;圖6根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例一的結(jié)構(gòu)不意圖;圖7示出了根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例二的結(jié)構(gòu)示意圖;以及圖8示出了根據(jù)本發(fā)明一個實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例三的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開 的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例 所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
參照圖1,示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例一的流 程示意圖,具體可以包括
步驟110,針對N個計算節(jié)點,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給 該計算節(jié)點的矩陣分塊的數(shù)據(jù)元素;
在本發(fā)明實施例中,矩陣數(shù)據(jù)存儲在指定的數(shù)據(jù)服務(wù)器中,比如日志數(shù)據(jù),其存 儲的邏輯方式可為矩陣的形式。如圖2所示,value為實際的數(shù)據(jù)內(nèi)容,比如日志數(shù)據(jù),ColKeyi (i = 1、2......M)為相應(yīng) value 的列標(biāo),RowKeyi (i = 1、2......N)為相應(yīng) value的行標(biāo)。其中在該稀疏矩陣中,每行沒列可能存在一定數(shù)量的非零元素(即實際數(shù)據(jù)),和 大量的零元素(零元素沒有數(shù)據(jù),不進(jìn)行存儲)。
那么對于用于計算的N個計算節(jié)點來說(也即N個計算服務(wù)器),首先需要預(yù)先將 圖1的矩陣數(shù)據(jù)進(jìn)行分塊,比如按行分為N塊(N小于等于行數(shù),一般情況下計算節(jié)點的個 數(shù)遠(yuǎn)遠(yuǎn)小于矩陣的行數(shù)和列數(shù)),然后分別將N指定給一個計算節(jié)點,由該計算節(jié)點進(jìn)行處理。
那么在進(jìn)行實際計算之前,各個計算節(jié)點需要根據(jù)預(yù)先指定的矩陣分塊,讀取相 應(yīng)矩陣分塊的數(shù)據(jù)。比如當(dāng)前存在10個計算節(jié)點,10000行*10000列矩陣的矩陣數(shù)據(jù), 其中第I 1000行的數(shù)據(jù)分配給計算節(jié)點1,第1001 2000行的數(shù)據(jù)分配給計算節(jié)點2,......第9001 10000行的數(shù)據(jù)分配給計算節(jié)點10,那么計算節(jié)點I至10則分別讀取相應(yīng)1000行的數(shù)據(jù)。
步驟120,每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù) 據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點 發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識;
本發(fā)明實施例為了將矩陣數(shù)據(jù)的數(shù)據(jù)標(biāo)識利用各計算節(jié)點進(jìn)行并行的連續(xù)化 (也即id化),可將各節(jié)點的矩陣數(shù)據(jù)按某個規(guī)則將具有同一屬性的數(shù)據(jù)標(biāo)識集中發(fā)送到 某個計算節(jié)點進(jìn)行處理。也即每個參與計算的計算節(jié)點,將將當(dāng)前讀取的每個數(shù)據(jù)元素的 數(shù)據(jù)標(biāo)識,根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則進(jìn)行計算,根據(jù)計算結(jié)果見數(shù)據(jù)標(biāo)識發(fā)送給與計 算結(jié)果相對應(yīng)的計算節(jié)點。同時,每個參與計算的計算節(jié)點也接收其他計算節(jié)點發(fā)送到本 節(jié)點數(shù)據(jù)標(biāo)識。那么最終,每個參與計算的計算節(jié)點則保存了未發(fā)送出去的數(shù)據(jù)標(biāo)識和其 他計算節(jié)點發(fā)送到本節(jié)點數(shù)據(jù)標(biāo)識。
如此每個參與計算的計算節(jié)點只處理一部分?jǐn)?shù)據(jù)標(biāo)識,并且各個計算節(jié)點處理的 數(shù)據(jù)標(biāo)識兩兩互不相同。
在本申請實施例中,各計算節(jié)點之間的通信通過MPI (Message Passing Interface,訊息傳遞接口 ;一種消息傳遞編程接口,同時提供了實現(xiàn)其一系列接口的多語言函數(shù)庫)進(jìn)行。即每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,通過MPI將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識。步驟130,每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識;如前所述,每個參與計算的計算節(jié)點最終保存了未發(fā)送出去的數(shù)據(jù)標(biāo)識和其他計算節(jié)點發(fā)送到本節(jié)點數(shù)據(jù)標(biāo)識,那么每個參與計算的計算節(jié)點基于上述最終數(shù)據(jù)標(biāo)識,進(jìn)行連續(xù)化。其中,進(jìn)行連續(xù)化時,每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識,生成數(shù)據(jù)標(biāo)識向量并進(jìn)行向量連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識。步驟140,每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點。由于對數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化是在進(jìn)程中進(jìn)行,而為了使其他計算節(jié)點的進(jìn)程也能知道同步知道,需要每個參與計算的計算節(jié)點將當(dāng)前id化得到的數(shù)據(jù)標(biāo)識與第一標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點,以使整個計算系統(tǒng)全局均知道數(shù)據(jù)標(biāo)識與第一標(biāo)識的對應(yīng)關(guān)系,以使后續(xù)計算過程可以使各進(jìn)程方便將相應(yīng)矩陣分塊的數(shù)據(jù)以第一標(biāo)識存儲于內(nèi)存中。本步驟中,每個參與計算的計算節(jié)點通過MPI將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點。參照圖3,示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例二的流程示意圖,具體可以包括步驟210,針對N個計算節(jié)點,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素。即圖2中的矩陣數(shù)據(jù)按行分成N個行塊,并將N個行塊分別分配給一個計算節(jié)點進(jìn)行計算。那么每個參與計算的計算節(jié)點則讀取分配給該計算節(jié)點的若干行的數(shù)據(jù)元素。即計算節(jié)點按行標(biāo)讀取矩陣元素,直至在其范圍內(nèi)的行標(biāo)的矩陣元素讀取完畢。步驟220,每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1個計算節(jié)點發(fā)送的列標(biāo)識。在本發(fā)明實施例中,首先可定義全局的列標(biāo)(Colkey)的散步規(guī)則,將每個數(shù)據(jù)元素的列標(biāo)散步到相應(yīng)計算節(jié)點,比如規(guī)則R — (RANK = COLKEY% NODES)公式(I)上述公式為對ColKey針對計算節(jié)點總數(shù)Nodes取余,每種余數(shù)對應(yīng)一個計算節(jié)點R0比如總共4個計算節(jié)點A、B、C、D,余數(shù)為0,1,2,3,那么余數(shù)O可對應(yīng)計算節(jié)點A,余數(shù)I可對應(yīng)計算節(jié)點B,余數(shù)2可對應(yīng)計算節(jié)點C,余數(shù)3可對應(yīng)計算節(jié)點D。那么計算節(jié)點將當(dāng)前讀取的矩陣元素,也即(Rowkey, colkey, value),將其中的colkey采用公式(I)進(jìn)行計算,根據(jù)計算結(jié)果與計算節(jié)點的對應(yīng)關(guān)系,將colkey發(fā)送至相應(yīng)計算節(jié)點。每個參與計算的計算節(jié)點也接收其他計算節(jié)點根據(jù)公式(I)對colkey進(jìn)行計算然后發(fā)送到本節(jié)點colkey。
步驟230,每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識;
步驟240,每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生成列標(biāo)識向量, 并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。
在步驟230,中,還包括對相同的列標(biāo)進(jìn)行合并。即保證每個colkey只有一份。
由步驟230和240,經(jīng)過計算節(jié)點之間的第一次通信過后,每個參與計算的計算節(jié)點保存了一部分列標(biāo)(colkey)和本節(jié)點當(dāng)前被分配進(jìn)行處理行矩陣塊的行標(biāo)(rowkey)。 那么即可針對該節(jié)點保存的rowkey生成行向量,colkey生成列向量,然后進(jìn)行連續(xù)化(id 化),得到行標(biāo)識和第一行標(biāo)識(連續(xù)化后的標(biāo)識)的對應(yīng)關(guān)系,和列標(biāo)識和第一列標(biāo)識 (連續(xù)化后的標(biāo)識)的對應(yīng)關(guān)系,也即(RowKey- > RowId)和(ColKey- > ColId)。
其中,針對行向量和列向量的連續(xù)化,其采用方法包括
步驟S11,每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點;
步驟S12,每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識;
步驟S13,每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。
下面以列向量為例進(jìn)行說明
1、針對N個計算節(jié)點,每個參與計算的計算節(jié)點統(tǒng)計其列向量中分量的數(shù)目Ni ;
2、每個計算節(jié)i點調(diào)用MPI_Allgather函數(shù)將本節(jié)點的分量數(shù)目Ni廣播給其他 N-1計算節(jié)點,并接收其他N-1個計算節(jié)點廣播的分量數(shù)目,獲得每個參與計算的計算節(jié)點 i計算的分量數(shù)目;
3、每個參與計算的計算節(jié)點i,根據(jù)如下公式(2)計算本節(jié)點的起始(第一列標(biāo)識)ID編號:
StartID =N1......公式⑵
其中,Ni為計算節(jié)點i的分量數(shù)目,rank為當(dāng)前計算節(jié)點的編號(rank可設(shè)置為 O......n,其中 rank = O 時,Star ID = 0)。
4、每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始ID號,對本節(jié)點列向量的各分量進(jìn)行id化。
當(dāng)然本申請對各個計算節(jié)點針對(RowKey- > RowId)和(ColKey- > ColId)這種二維結(jié)構(gòu)形式的連續(xù)ID化還可采用其他形式,本發(fā)明實施例對其加以限制。
另外,可選的, 還包括
步驟S21,在本計算結(jié)點內(nèi)部設(shè)置多個工作線程,并將本結(jié)點處理的行分量依次分配到每個工作線程上;
步驟S22,利用每個工作線程對各自對應(yīng)的數(shù)據(jù)進(jìn)行連接id化處理。
可選地,所述利用每個工作線程對各自對應(yīng)的數(shù)據(jù)進(jìn)行連接id化處理,包括步驟S31對于任意一個工作線程,判斷當(dāng)前處理的數(shù)據(jù)是否是自身所處理的最后一條數(shù)據(jù);若是,則結(jié)束并退出處理流程;若否,則為當(dāng)前數(shù)據(jù)賦予id,并觸發(fā)下一條數(shù)據(jù)的處理??蛇x地,所述觸發(fā)下一條數(shù)據(jù)的處理,包括利用原子遞增atomic_inc,對下一條數(shù)據(jù)進(jìn)行連接id化處理。在上述對分量進(jìn)行id化的過程中,總體上分為行分量處理過程,和列分量處理過程,即每個參與計算的計算節(jié)點計算行分量時獲取其他計算節(jié)點的行分量數(shù)據(jù)進(jìn)行計算,每個參與計算的計算節(jié)點計算列分量時獲取其他計算節(jié)點的列分量數(shù)據(jù)進(jìn)行計算。通過上述對分量的計算,那么數(shù)據(jù)并不是在一個隊列中依次進(jìn)行處理的,而是在多個隊列中并行處理的,其處理速度相對現(xiàn)有技術(shù)中的id化處理有大幅度的提升。并行處理的結(jié)點數(shù)越多,該數(shù)據(jù)被處理結(jié)束的速度就越快。采用本發(fā)明實施例能夠縮短數(shù)據(jù)存儲的時間,尤其是對于大規(guī)模數(shù)據(jù)的存儲,能夠起到節(jié)省時間提高存儲速率的作用,滿足大規(guī)模數(shù)據(jù)存儲的時間性要求,節(jié)省系統(tǒng)資源。步驟250,每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。在本發(fā)明實施例中,由于每個參與計算的計算節(jié)點處理的行向量為本身需要處理的矩陣數(shù)據(jù)的行表,即矩陣數(shù)據(jù)`是按行劃分給每個參與計算的計算節(jié)點的,因此
(RowKey- > RowId)和本地的RowKey是--對應(yīng)的。而(ColKey- > ColId)和本地的
ColKey不是——對應(yīng),每一行數(shù)據(jù)都可能包含全部的列,因此需要將(ColKey- > ColId)全局化,即每個參與計算的計算節(jié)點將本地id化得到的(ColKey- > ColId)廣播到其他N-1個計算節(jié)中,參照圖4,其為本實施例每個參與計算的計算節(jié)點的每個(ColKey- >ColId)廣播到其他計算節(jié)點的一個邏輯示意圖。每個參與計算的計算節(jié)點計算得到的(ColKey- > ColId)廣播到其他計算節(jié)點相應(yīng)的colkey處。如此,對于全局計算節(jié)點來說,均可記錄所有計算節(jié)點計算的(ColKey- > ColId)和其節(jié)點本身的(RowKey- > RowId)。其中,將MPI的MPI_Allgather接口,將本地的(ColKey- > ColId)廣播到其他所有計算結(jié)點。然后,每個參與計算的計算節(jié)點在計算其行塊的數(shù)據(jù)元素時,即可根據(jù)其(RowKey- > RowId)和(ColKey- > ColId)對其value存儲至內(nèi)存,在計算時,也可很容易的知道數(shù)據(jù)界限。參照圖,5,示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法實施例二的流程示意圖,具體可以包括步驟310,針對N個計算節(jié)點,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按列分塊的數(shù)據(jù)元素。即將圖2中矩陣數(shù)據(jù)即按列分成N個行塊,并將N個列塊分別分配給一個計算節(jié)點進(jìn)行計算。那么每個參與計算的計算節(jié)點則讀取分配給該計算節(jié)點的若干列的數(shù)據(jù)元素。步驟320,每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算節(jié)點發(fā)送的行標(biāo)識。
在本發(fā)明實施例中,首先可定義全局的列標(biāo)(Colkey)的散步規(guī)則,將每個數(shù)據(jù)元素的列標(biāo)散步到相應(yīng)計算節(jié)點,比如規(guī)則
R — (RANK = ROWKEY % NODES)公式(3)
那么計算節(jié)點將當(dāng)前讀取的矩陣元素,也即(Rowkey, colkey, value),將其中的 rowkey采用公式(3)進(jìn)行計算,根據(jù)計算結(jié)果與計算節(jié)點的對應(yīng)關(guān)系,將rowkey發(fā)送至相應(yīng)計算節(jié)點。每個參與計算的計算節(jié)點也接收其他計算節(jié)點根據(jù)公式(3)對rowkey進(jìn)行計算然后發(fā)送到本節(jié)點rowkey。
步驟330,每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識;
步驟340,每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成行標(biāo)識向量, 并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識。
在步驟330,中,還包括對相同的行標(biāo)進(jìn)行合并。即保證每個rowkey只有一份。
第一次通信過后,步驟320,步驟330,每個參與計算的計算節(jié)點保存了一部分行標(biāo)(rowkey)和本節(jié)點當(dāng)前被分配進(jìn)行處理行矩陣塊的列標(biāo) (colkey)。那么即可針對該節(jié)點保存的rowkey生成行向量,colkey生成列向量,然后進(jìn)行連續(xù)化(id化),得到行標(biāo)識和第一行標(biāo)識(連續(xù)化后的標(biāo)識)的對應(yīng)關(guān)系,和列標(biāo)識和第一列標(biāo)識(連續(xù)化后的標(biāo)識) 的對應(yīng)關(guān)系,也即(RowKey- > RowId)和(ColKey- > ColId)。
其也可以利用步驟Sll至S13和公式⑵進(jìn)行計算。
步驟350,每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。
本實施例(colKey-> colld)和本地的colKey是--對應(yīng)的。而(rowKey->ColId)和本地的rowKey不是--對應(yīng),每一行數(shù)據(jù)都可能包含全部的列,因此需要將(rowKey- > rowld)全局化,即每個參與計算的計算節(jié)點將本地id化得到的(rowKey- > rowld)廣播到其他N-1個計算節(jié)中。
本實施例與實施例二基本原理類似,在此不再詳述。
參照圖6,其示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例一的結(jié)構(gòu)示意圖,包括
N個計算節(jié)點;
所述每個參與計算的計算節(jié)點400包括
數(shù)據(jù)讀取模塊410,適于每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié)點的矩陣分塊的數(shù)據(jù)元素;
散步和接收模塊420,適于每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識;
連續(xù)化模塊430,適于每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識;
通知模塊440,適于每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點??蛇x的,所述數(shù)據(jù)讀取模塊進(jìn)一步適于每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的數(shù)據(jù)元素??蛇x的,當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素時,所述散步和接收模塊包括列散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1個計算節(jié)點發(fā)送的列標(biāo)識。 可選的,所述連續(xù)化模塊包括第一行連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識;第一列連續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識??蛇x的,所述通知模塊包括第一通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。可選的,當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按列分塊的數(shù)據(jù)元素時,所述散步和接收模塊包括行散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算節(jié)點發(fā)送的行標(biāo)識。可選的,所述連續(xù)化模塊包括第二列續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識;第二行續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識??蛇x的,所述通知模塊包括第二通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。可選的,所述第一列續(xù)化模塊、第一行續(xù)化模塊、第二列續(xù)化模塊、第二行續(xù)化模塊包括統(tǒng)計模塊,適于每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點;起始標(biāo)識計算模塊,適于每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識;向量連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。參照圖7,其示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例二的結(jié)構(gòu)示意圖,包括
N個計算節(jié)點;
所述每個參與計算的計算節(jié)點500包括
數(shù)據(jù)讀取模塊510,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元 素;
列散步和接收模塊520,適于每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī) 則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他 N-1個計算節(jié)點發(fā)送的列標(biāo)識;
第一行連續(xù)化模塊530,適于每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行 標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識;
第一列連續(xù)化模塊540,適于每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重 并生成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。
第一通知模塊550,適于每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的 對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。
參照圖8,其示出了本發(fā)明一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)實施例二的 結(jié)構(gòu)示意圖,包括
N個計算節(jié)點;
所述每個參與計算的計算節(jié)點600包括
數(shù)據(jù)讀取模塊610,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按列分塊的數(shù)據(jù)元 素;
行散步和接收模塊620,適于每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī) 則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他 計算節(jié)點發(fā)送的行標(biāo)識。
第二列續(xù)化模塊630,適于每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo) 識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識;
第二行續(xù)化模塊640,適于每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并 生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識。
第二通知模塊650,適于每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的 對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。
在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求 的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種 編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā) 明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施 例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu) 和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在 上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
權(quán)利要求
1.一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法,其特征在于,包括 針對N個計算節(jié)點,每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié)點的矩陣分塊的數(shù)據(jù)元素; 每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識; 每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識; 每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)占. 其中,所述每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié)點的矩陣分塊的數(shù)據(jù)元素包括 每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的數(shù)據(jù)元素。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點包括 每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1個計算節(jié)點發(fā)送的列標(biāo)識。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識包括 每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識; 每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點包括 每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點包括 每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算節(jié)點發(fā)送的行標(biāo)識。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識包括 每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識; 每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點包括 每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。
8.根據(jù)權(quán)利要求3或6所述的方法,其特征在于,所述對向量進(jìn)行連續(xù)化包括 每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點; 每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識; 每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。
9.一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的系統(tǒng),包括 N個計算節(jié)點; 所述每個參與計算的計算節(jié)點包括 數(shù)據(jù)讀取模塊,適于每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中被分配給該計算節(jié)點的矩陣分塊的數(shù)據(jù)元素; 散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)預(yù)置的數(shù)據(jù)標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的數(shù)據(jù)標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點,并接收剩余N-1個計算節(jié)點發(fā)送的數(shù)據(jù)標(biāo)識,獲得由所述計算節(jié)點進(jìn)行處理的最終數(shù)據(jù)標(biāo)識; 連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)所述最終數(shù)據(jù)標(biāo)識進(jìn)行連續(xù)化,獲得與每個數(shù)據(jù)標(biāo)識相應(yīng)的第一標(biāo)識; 通知模塊,適于每個參與計算的計算節(jié)點將第一標(biāo)識與原數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系通知給其他計算節(jié)點; 其中,所述數(shù)據(jù)讀取模塊進(jìn)一步適于 每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的數(shù)據(jù)元素。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素時,所述散步和接收模塊包括 列散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的列標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的列標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他N-1個計算節(jié)點發(fā)送的列標(biāo)識。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述連續(xù)化模塊包括 第一行連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的行標(biāo)識生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識; 第一列連續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的列標(biāo)識進(jìn)行去重并生成列標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述通知模塊包括第一通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一列標(biāo)識與原列標(biāo)識的對應(yīng)關(guān)系,將第一列標(biāo)識通知給其他計算節(jié)點。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 當(dāng)每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按列分塊的數(shù)據(jù)元素時,所述散步和接收模塊包括 行散步和接收模塊,適于每個參與計算的計算節(jié)點根據(jù)閾值的行標(biāo)識散步規(guī)則,將所讀取的數(shù)據(jù)元素中的行標(biāo)識保留在本地或者發(fā)送到相應(yīng)的計算節(jié)點;并接收其他計算節(jié)點發(fā)送的行標(biāo)識。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述連續(xù)化模塊包括 第二列續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本地的列標(biāo)識生成行標(biāo)識向量,并對列標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個列標(biāo)識相應(yīng)的第一列標(biāo)識; 第二行續(xù)化模塊,適于每個參與計算的計算節(jié)點對本地的行標(biāo)識進(jìn)行去重并生成行標(biāo)識向量,并對行標(biāo)識向量進(jìn)行連續(xù)化,獲得與每個行標(biāo)識相應(yīng)的第一行標(biāo)識。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述通知模塊包括 第二通知模塊,適于每個參與計算的計算節(jié)點根據(jù)第一行標(biāo)識與原行標(biāo)識的對應(yīng)關(guān)系,將第一行標(biāo)識通知給其他計算節(jié)點。
16.根據(jù)權(quán)利要求12或15所述的系統(tǒng),其特征在于,所述第一列續(xù)化模塊、第一行續(xù)化模塊、第二列續(xù)化模塊、第二行續(xù)化模塊包括 統(tǒng)計模塊,適于每個參與計算的計算節(jié)點i統(tǒng)計待計算的標(biāo)識總數(shù)Ni,并將所述總數(shù)通知給其他計算節(jié)點; 起始標(biāo)識計算模塊,適于每個參與計算的計算節(jié)點根據(jù)各計算節(jié)點待計算的標(biāo)識總數(shù)Ni,計算本節(jié)點起始的第一標(biāo)識; 向量連續(xù)化模塊,適于每個參與計算的計算節(jié)點根據(jù)本節(jié)點的起始的第一標(biāo)識,對本節(jié)點的標(biāo)識向量進(jìn)行連續(xù)化,獲得相應(yīng)的第一標(biāo)識。
全文摘要
本發(fā)明公開了一種用于連續(xù)化矩陣數(shù)據(jù)元素標(biāo)識的方法和系統(tǒng),涉及計算機(jī)領(lǐng)域。所述系統(tǒng)包括N個計算節(jié)點;所述每個參與計算的計算節(jié)點包括數(shù)據(jù)讀取模塊;散步和接收模塊;連續(xù)化模塊;通知模塊;其中,所述數(shù)據(jù)讀取模塊進(jìn)一步適于每個參與計算的計算節(jié)點讀取矩陣數(shù)據(jù)中按行分塊的數(shù)據(jù)元素,或者按列分塊的數(shù)據(jù)元素。對于大規(guī)模的矩陣數(shù)據(jù),可以通過各個計算節(jié)點并行的進(jìn)行連續(xù)化,加快了連續(xù)化的速度,提高了數(shù)據(jù)處理效率。
文檔編號G06F17/30GK103049487SQ201210517949
公開日2013年4月17日 申請日期2012年12月5日 優(yōu)先權(quán)日2012年12月5日
發(fā)明者齊路, 何銳邦, 唐會軍 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
昭通市| 彭水| 全南县| 玉屏| 凭祥市| 温泉县| 宣化县| 黎城县| 郯城县| 彩票| 福州市| 嘉峪关市| 扎鲁特旗| 鹤山市| 舒城县| 明溪县| 安阳市| 历史| 广河县| 长葛市| 麻阳| 东方市| 囊谦县| 特克斯县| 通海县| 新沂市| 九龙城区| 平邑县| 安阳市| 佳木斯市| 财经| 江永县| 文化| 辽阳市| 宣武区| 紫阳县| 萍乡市| 绥江县| 错那县| 日土县| 商水县|