本發(fā)明屬于內(nèi)存計(jì)算的任務(wù)劃分領(lǐng)域,涉及大規(guī)模計(jì)算任務(wù)并行化以及任務(wù)分配方法。
背景技術(shù):
圖模型可以表達(dá)對(duì)象之間的復(fù)雜關(guān)系,在諸多領(lǐng)域都有廣泛的應(yīng)用,如社交網(wǎng)絡(luò)、健康醫(yī)療、生物領(lǐng)域、科學(xué)與計(jì)算任務(wù)均可采用圖來(lái)表示并計(jì)算。然而隨著問(wèn)題規(guī)模的擴(kuò)大,如facebook就有超過(guò)8億的活躍用戶和數(shù)百億的關(guān)系鏈接,因此此類問(wèn)題難以在單臺(tái)計(jì)算機(jī)難以此類問(wèn)題計(jì)算,需要將任務(wù)劃分到并行計(jì)算環(huán)境中執(zhí)行。
為應(yīng)對(duì)大圖計(jì)算任務(wù)分析需求,分布式迭代處理系統(tǒng)相應(yīng)的被開(kāi)發(fā)出來(lái),如spark,pregel,giraphlab,trinity等。這些系統(tǒng)主要利用哈希方式將頂點(diǎn)分配到各個(gè)分區(qū),此方式雖然復(fù)雜度低但是處理單元之間的通信量(割邊)會(huì)很大,增加了迭代處理的時(shí)間。如果用劃分質(zhì)量更好的算法代替哈希方式(如metis),由于metis極高的時(shí)間復(fù)雜度,雖然迭代處理時(shí)間降低了,但總的消耗時(shí)間反而比哈希方式大的多,因此設(shè)計(jì)效率更高的圖分割算法已經(jīng)成為現(xiàn)有分布式圖計(jì)算系統(tǒng)亟待解決的問(wèn)題.
現(xiàn)有圖劃分工作方式,無(wú)論是集中式和流式劃分,都難以同時(shí)滿足劃分效率與劃分質(zhì)量上的需求。例如經(jīng)典的kernighan-lin算法只適合處理規(guī)模較小的圖,對(duì)于大圖處理效率很低,難以滿足大數(shù)據(jù)時(shí)代的大圖劃分和計(jì)算的需要.流式圖劃分算法一次只處理一個(gè)點(diǎn),所使用到的信息通常是點(diǎn)的鄰接等比較簡(jiǎn)單的數(shù)據(jù),因此流式劃分的效率要高于集中式劃分.但是劃分質(zhì)量要比集中式劃分算法低很多.
此外,現(xiàn)有的方法都忽視了圖自身結(jié)構(gòu)的特點(diǎn),特別是大部分現(xiàn)實(shí)的圖結(jié)構(gòu)都呈冪率分布特征,即“小世界”的性質(zhì)。這就亟需本領(lǐng)域技術(shù)人員解決相應(yīng)的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題,特別創(chuàng)新地提出了一種面向內(nèi)存計(jì)算的流式平衡圖劃分方法。
為了實(shí)現(xiàn)本發(fā)明的上述目的,本發(fā)明提供了一種面向內(nèi)存計(jì)算的流式平衡圖劃分方法,如下步驟:
s1,根據(jù)圖片呈現(xiàn)冪律分布的特點(diǎn),對(duì)輸入的圖片快速的進(jìn)行社區(qū)檢測(cè),滿足檢測(cè)條件則停止迭代;
s2,對(duì)s1中檢測(cè)出的社區(qū)圖片進(jìn)行排序,確定社區(qū)圖片順序;
s3,按照社區(qū)圖片順序采用確定性貪婪流算法依次將點(diǎn)分配到對(duì)應(yīng)的處理單元中,從而劃分圖片的社區(qū)屬性。
所述的面向內(nèi)存計(jì)算的流式平衡圖劃分方法,優(yōu)選的,所述s1包括:
s1-1,采用標(biāo)簽傳播的方法,每次迭代過(guò)程中取周圍鄰居圖片相同標(biāo)簽號(hào)最多的一類為自身的標(biāo)簽號(hào),如果相同標(biāo)簽號(hào)不止一類時(shí),則隨機(jī)取一類作為自己的標(biāo)簽號(hào);
s1-2,為了防止過(guò)大的社區(qū)圖片出現(xiàn),對(duì)社區(qū)的規(guī)模以及迭代次數(shù)進(jìn)行了限制,每個(gè)社區(qū)的規(guī)模
所述的面向內(nèi)存計(jì)算的流式平衡圖劃分方法,優(yōu)選的,所述s2包括:
對(duì)s1中檢測(cè)出的社區(qū)進(jìn)行排序,確定流順序:f1,f2...fn為檢測(cè)出的社圖片,其中下標(biāo)n為正整數(shù),不同社區(qū)圖片之間的邊數(shù)用edgei,j,其中,i,j代表不同的社區(qū)表示,cleft定義為處理單元剩余的容量,確定社區(qū)的順序步驟如下:
s2-1,隨機(jī)選擇某一社區(qū)
s2-2,如果
s2-3,如果
所述的面向內(nèi)存計(jì)算的流式平衡圖劃分方法,優(yōu)選的,所述s3包括:
s3-1,采用確定性貪婪流算法按照順序依次將點(diǎn)分配到對(duì)應(yīng)的處理單元的步驟如下:
綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
部分子團(tuán)內(nèi)部鏈接要比子團(tuán)之間的鏈接要稠密,如果先將這些子團(tuán)檢測(cè)出來(lái),對(duì)后續(xù)圖的劃分非常有利。而標(biāo)簽傳播算法(lpa)能夠簡(jiǎn)單高效實(shí)現(xiàn)社區(qū)發(fā)現(xiàn)(線性復(fù)雜度),算法迭代四次后有接近百分之九十八的標(biāo)簽可以劃分到某一社區(qū),不再變化。因此該方法很適合本發(fā)明的預(yù)處理工作。
相對(duì)于哈希方式,割邊率明顯降低,圖計(jì)算過(guò)程中計(jì)算機(jī)之間通信量減少;實(shí)際計(jì)算的總時(shí)間(包括圖的劃分,圖的裝載及圖的計(jì)算)有所降低,并且隨著迭代次數(shù)的增多,效果會(huì)更加的明顯。
本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
附圖說(shuō)明
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明算法的流程圖;
圖2是本發(fā)明與傳統(tǒng)算法在圖amazon0312劃分比較;
圖3a和3b是本發(fā)明與傳統(tǒng)算法在理論隨機(jī)圖和冪律圖上的劃分比較;
圖4是本發(fā)明的穩(wěn)定性分析。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。
在本發(fā)明的描述中,除非另有規(guī)定和限定,需要說(shuō)明的是,術(shù)語(yǔ)“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是機(jī)械連接或電連接,也可以是兩個(gè)元件內(nèi)部的連通,可以是直接相連,也可以通過(guò)中間媒介間接相連,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語(yǔ)的具體含義。
如圖1所示,本發(fā)明所述的基于流式的平衡圖劃分方法包括以下步驟:
(1)利用真實(shí)世界的圖大多呈冪律分布的特點(diǎn),采用標(biāo)簽傳播的思想對(duì)輸入圖快速的進(jìn)行社區(qū)檢測(cè),滿足條件則停止迭代,為了防止出現(xiàn)大量詳細(xì)的小社區(qū)或者過(guò)大的社區(qū)出現(xiàn),我們對(duì)迭代次數(shù)與社區(qū)的規(guī)模都進(jìn)行的限制,每個(gè)社區(qū)的規(guī)模
(2)對(duì)第一步驟發(fā)現(xiàn)的結(jié)果(f1,f2...fn)進(jìn)行排序,社區(qū)與社區(qū)之間的邊數(shù)用edgei,j(i,j代表不同的社區(qū))表示.cleft定義為處理單元可接受的剩余容量,確定社區(qū)的順序步驟如下:
a)隨機(jī)選擇某一社區(qū)
b)如果
c)如果
(3)采用確定性貪婪流算法按照社區(qū)順序依次將點(diǎn)分配到對(duì)應(yīng)的處理單元。
實(shí)施例一
參考圖2不同劃分算法在圖amazon0312的劃分結(jié)果,縱坐標(biāo)表示割邊率
實(shí)施例二
參考圖3在理論冪律圖(pl)與非冪律圖(er)的劃分結(jié)果,縱坐標(biāo)表示割邊率
實(shí)施例三
參考圖4本發(fā)明第一步驟中對(duì)于點(diǎn)的標(biāo)號(hào)選取問(wèn)題,如果周圍鄰居中最多標(biāo)號(hào)的種類不止一類時(shí),此時(shí)是隨機(jī)的選取一種,包含有隨機(jī)性,因此,需要驗(yàn)證是否此隨機(jī)性對(duì)劃分結(jié)果有影響.用3個(gè)真實(shí)圖(amazon0505,amazon0312,amazon0601)來(lái)驗(yàn)證本發(fā)明的穩(wěn)定性,縱坐標(biāo)為標(biāo)準(zhǔn)差值differenc=λt-λt+1表示前一次實(shí)驗(yàn)的割邊率與下一次的割邊率的差,橫坐標(biāo)表示實(shí)驗(yàn)次數(shù),由圖4可以看出每次的差值波動(dòng)都是在a*102,(a∈[1,9])附近,波動(dòng)率很小,對(duì)于大圖而言可以忽略不計(jì),說(shuō)明了本算法的穩(wěn)定。
實(shí)施例四
參考表1圖twitter-2010在20臺(tái)機(jī)器上的pagerank計(jì)算的總時(shí)間,分別迭代了9次與12次,預(yù)處理中的迭代次數(shù)設(shè)置為小于4,pagerank迭代9次時(shí)與迭代12次兩算法的差值在逐漸增加,隨著計(jì)算迭代次數(shù)的增多,本發(fā)明的優(yōu)勢(shì)會(huì)越明顯。表1展示了在spark集群系統(tǒng)中,分別調(diào)用本發(fā)明策略與哈希策略對(duì)twitter圖進(jìn)行pagerank計(jì)算的總時(shí)間。
表1
在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。