两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于塊的子圖構(gòu)建及分布式圖處理方法

文檔序號:9826629閱讀:423來源:國知局
一種基于塊的子圖構(gòu)建及分布式圖處理方法
【技術領域】
[0001 ]本發(fā)明屬于計算機大數(shù)據(jù)處理技術領域,更具體地,涉及一種基于塊的子圖構(gòu)建 及分布式圖處理方法。
【背景技術】
[0002] 在當前大數(shù)據(jù)背景下,呈現(xiàn)出越來越多的對大規(guī)模圖數(shù)據(jù)進行分析、處理、挖掘的 應用需求。近年來,研究人員提出了一些分布式圖處理框架,例如Google公司的Pregel、卡 內(nèi)基梅隆大學的Distributed GraphLab和PowerGraph、斯坦福大學的GPS;這些分布式圖處 理框架大多采用隨機分割的方法把頂點分布到集群的各計算節(jié)點上;在計算過程中,頂點 通過消息傳遞的方式或直接訪問分布式共享內(nèi)存的方式實現(xiàn)交互。這種細粒度的交互方式 帶來了巨大的系統(tǒng)通訊開銷;例如,GPS在執(zhí)行PageRank圖算法時,其通訊時間占到整個運 行時間的95%。導致高通訊開銷的主要原因是這種細粒度的通訊方式不能充分利用網(wǎng)絡帶 寬。

【發(fā)明內(nèi)容】

[0003] 針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種基于塊的子圖構(gòu)建及分 布式圖處理方法,其目的在于降低分布式圖處理的通訊開銷。
[0004] 為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于塊的子圖構(gòu)建方法,具 體包括以下步驟:
[0005] (1)圖分割:采用SGP(Streaming Graph Partition)方法,用啟發(fā)式函數(shù)將頂點按 順序指派到P個子圖;具體的,采用以下的啟發(fā)函數(shù)把頂點u分配到子圖i:其中,P>1;
[0007] 其中,Q是計算結(jié)點i的最大容量,K是子圖的個數(shù),P是子圖i在t時間的頂點集 合,N(u)是頂點u的鄰居集合;
用于降低邊的切割率,
圖間的工作負載;其中,容量是指能存放邊的條數(shù),〇 < i < P-1,ueV,V為頂點的集合;
[0008] (2)對子圖中的頂點重新貼標簽:依次對P個子圖的頂點貼標簽,使之形成P個連續(xù) 但不相交的區(qū)間(Interval);這種連續(xù)但不相交的區(qū)間帶來有益效果是:對于給定的頂點, 可以很直觀地判斷它屬于哪個子圖;
[0009] (3)將區(qū)間與數(shù)據(jù)片關聯(lián):每個區(qū)間關聯(lián)一個數(shù)據(jù)片(shard);并將shard從0到(P-1)按順序貼上標簽;每個shard保存所有目標頂點在該區(qū)間范圍內(nèi)的邊,邊按其源頂點的順 序存放;
[00?0] (4)分塊:根據(jù)shard中邊的源頂點所屬的區(qū)間把一個shard分解成P個連續(xù)塊;將 塊按順序從0到(P-1)貼標簽;每個塊用B(X,y)來標識,X是塊標簽號,y是shard標簽號;Ο < X <P-l,0<y <Ρ-1;
[0011] (5)構(gòu)建子圖:由一個局部邊塊(LB)、(Ρ-1)個遠程入邊塊(RIB)和(Ρ-1)個遠程出 邊塊(ROB)構(gòu)建成一個子圖;
[0012] 子圖s的(P-1)個遠程入邊塊表示為B(i,s);(P_l)個遠程出邊塊表示為B(p,j),0 < i <P-l,s關i,0< j <P-1;
[0013] 每個遠程出邊塊包含目標頂點在其它子圖所有的邊;每個遠程入邊塊包含源頂點 在其它子圖所有的邊;局部邊塊B(p,p)是一個特殊的塊,該塊所有邊的源頂點和目標頂點 都在區(qū)間P內(nèi);圖分割時,邊的切割率越低,局部邊塊B(p,p)越大,而其它(P-1)個出邊塊越 小;
[0014] 各子圖間存在數(shù)據(jù)塊的依賴關系;子圖s的遠程出邊塊B_data(s,t)是子圖t的遠 程入邊塊13_(1&七&(8,1:)的副本,0 < t < (P-1),且t關s,0 < s < P-1,0 < t < P-1;
[0015] 為實現(xiàn)本發(fā)明目的,按照本發(fā)明的另一個方面,提供了一種基于上述子圖構(gòu)建方 法的分布式圖處理方法,具體包括以下步驟:
[0016] (6)塊分割:將上述每個塊B(x,y)分割為一個B_adj(x,y)塊和一fB_data(x,y) 塊;
[0017] 其中,B_adj(x,y)塊用于保存圖拓撲結(jié)構(gòu)信息,B_data(x,y)塊用于保存邊的值; 由此,當兩個子圖進行信息交換時,只需要在網(wǎng)絡上傳塊;
[0018] 各子圖間存在數(shù)據(jù)塊的依賴關系,子圖ρ的遠程出邊塊B_data(p,t)是子圖t的遠 程入邊(p,t)的副本;
[0019] (7)執(zhí)行步驟:將前一個超步的輸出作為下一個超步的輸入,進行超步迭代,直到 所有頂點達到收斂條件。
[0020] 優(yōu)選地,上述步驟(7)中的超步包括計算和通信,具體如下:
[0021 ] (7.1)各頂點并行地通過指針直接讀或?qū)戇叺闹担?br>[0022] (7.2)各計算節(jié)點發(fā)送(P-1)個遠程出邊塊到其它(P-1)個計算節(jié)點;計算節(jié)點用 接收到的遠程出邊塊替換接收到出邊塊對應的副本;
[0023] (7.3)重復步驟(7.1)~(7.2 ),直到所有的頂點達到收斂條件;其中,收斂條件由 用戶預設。
[0024]與傳統(tǒng)基于消息傳遞(message passing)通訊模式的圖處理方法相比,本發(fā)明提 供的圖處理方法,以邊塊為單位構(gòu)建子圖,以邊塊為單位進行通信;在通信步驟中,每個計 算節(jié)點只需向其它(P-1)個計算結(jié)節(jié)各發(fā)送一個出邊數(shù)據(jù)塊,可大幅提高系統(tǒng)的通信效率, 從而提高系統(tǒng)的總體性能。
[0025] 總體而言,通過本發(fā)明所構(gòu)思的以上技術方案與現(xiàn)有技術相比,能夠取得下列有 益效果:
[0026] (1)本發(fā)明提供的基于塊的子圖構(gòu)建方法,采用啟發(fā)式的、輕量級的SGP方法進行 圖分割,采用用戶定義的啟發(fā)式函數(shù)把頂點按順序指派到P個子圖,具有性能高,邊的切割 率較低的特點,并且可以兼顧子圖工作負載平衡問題;
[0027] (2)本發(fā)明提供的分布式圖處理系統(tǒng),子圖之間以整個內(nèi)存塊為單位進行通信;而 現(xiàn)有技術的分布式圖處理系統(tǒng)采用細粒度的通訊方式,圖的頂點數(shù)量巨大,造成群集機器 間的通訊次數(shù)多,在通訊總量一定的情況下,該方式的網(wǎng)絡利用率低,不能充分利用網(wǎng)絡帶 寬,增加了系統(tǒng)通信開銷;與現(xiàn)有技術的這種細粒度通訊方式相比,本發(fā)明的基于內(nèi)存塊的 數(shù)據(jù)交換,可以充分利用網(wǎng)絡帶寬,提高網(wǎng)絡的利用率,降低通訊時間;
[0028] (3)本發(fā)明提供的基于塊的子圖構(gòu)建及分布式圖處理方法中,邊的數(shù)據(jù)以塊為單 位駐留內(nèi)存中,Update(v)函數(shù)通過指針直接讀/寫邊的值,當子圖間進行相關數(shù)據(jù)交換時, 集群中的一臺機器直接把整個相關數(shù)據(jù)塊通過網(wǎng)絡復制到另一臺機器的內(nèi)存中,另一臺機 器收到該數(shù)據(jù)塊后,Update(v)函數(shù)可以直接使用該數(shù)據(jù)塊中邊的值,避免了合并、轉(zhuǎn)換、解 析等步驟帶來的額外開銷;而現(xiàn)有技術中,采用合并消息的方法來提高通訊效率:合并多個 頂點的消息,組合轉(zhuǎn)換為一個數(shù)據(jù)包,發(fā)送給集群的另一個計算節(jié)點,另一個計算節(jié)點收到 消息后解析該數(shù)據(jù)包,并把消息發(fā)送相應的頂點;與現(xiàn)有技術相比,本發(fā)明提供的方法,消 除了合并,轉(zhuǎn)換,解析帶來的時延。
【附圖說明】
[0029] 圖1為本發(fā)明提供的子圖構(gòu)建方法與處理流程圖;
[0030] 圖2為實施例1中圖分割、重新貼標簽的不意圖;
[0031] 圖3為實施例1中圖G的4個shard;
[0032] 圖4為實施例1中圖G的4個子圖;
[0033]圖5為實施例2的計算步驟與通信步驟的數(shù)據(jù)處理示意圖。
【具體實施方式】
[0034]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
拉孜县| 德阳市| 资中县| 台州市| 龙胜| 崇义县| 建瓯市| 吐鲁番市| 阿拉尔市| 巴南区| 闻喜县| 昂仁县| 奉新县| 玛纳斯县| 万年县| 贵阳市| 开化县| 台安县| 通州区| 馆陶县| 栾城县| 长泰县| 萨迦县| 通榆县| 扎囊县| 宁南县| 漾濞| 西平县| 紫金县| 喀什市| 芜湖县| 三原县| 全州县| 鹿泉市| 宜春市| 扶沟县| 阳春市| 叶城县| 武威市| 阿瓦提县| 肃南|