專(zhuān)利名稱(chēng):一種針對(duì)空間度量及方向關(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法
技術(shù)領(lǐng)域:
本發(fā)明屬于并行計(jì)算領(lǐng)域,特別是涉及到一種針對(duì)矢量目標(biāo)空間度量及方向關(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法。
背景技術(shù):
空間度量關(guān)系和空間方向關(guān)系都屬于空間關(guān)系。度量關(guān)系包括空間目標(biāo)的面積、周長(zhǎng)及相互間的距離,用以描述空間目標(biāo)本身的特點(diǎn);方向關(guān)系表達(dá)了兩個(gè)空間目標(biāo)間所處的方位,通常用于描述相離目標(biāo)間的空間方位。空間度量關(guān)系和方向關(guān)系在空間推理和空間查詢(xún)上扮演著非常重要的角色,也是地理信息系統(tǒng)的重要內(nèi)容。隨著空間數(shù)據(jù)量的爆炸式增長(zhǎng),傳統(tǒng)的空間度量及方向關(guān)系串行算法已不能滿(mǎn)足大規(guī)??臻g數(shù)據(jù)分析與需求,亟待利用計(jì)算機(jī)并行體系架構(gòu)發(fā)展一種并行算法,才能滿(mǎn)足大規(guī)模矢量目標(biāo)空間度量與方向關(guān)系快速計(jì)算的應(yīng)用需求。矢量目標(biāo)空間關(guān)系并行算法由2部分組成:1)矢量目標(biāo)集的預(yù)處理及劃分;2)多邊形目標(biāo)空間關(guān)系計(jì)算與判斷。矢量目標(biāo)集預(yù)處理及劃分:并行算法的預(yù)處理是指對(duì)矢量目標(biāo)集進(jìn)行并行排序,排序的原則是根據(jù)矢量目標(biāo)的頂點(diǎn)數(shù)為參數(shù)進(jìn)行排序。矢量目標(biāo)集劃分:多邊形目標(biāo)集的劃分是度量、方向關(guān)系并行算法的重點(diǎn)和難點(diǎn)問(wèn)題。影響并行算法的效率的一個(gè)重要方面是并行計(jì)算過(guò)程中的負(fù)載均衡??臻g關(guān)系并行算法設(shè)計(jì)需考慮兩方面問(wèn)題:一是矢量目標(biāo)的空間特性,二是矢量目標(biāo)集的劃分。目前并行算法的矢量目標(biāo)集劃分方法主要有輪轉(zhuǎn)劃分法[1]、范圍劃分法[1_3]、散列劃分法[1’4]、混合劃分法[1’5]、空間曲線(xiàn)劃分法[6’7]等,但這些已有劃分方法都不能針對(duì)度量、方向關(guān)系算法的特點(diǎn)來(lái)保障并行計(jì)算的各進(jìn)程中任務(wù)的負(fù)載均衡,影響了計(jì)算效率。因此,本發(fā)明針對(duì)度量、方向關(guān)系算法的特點(diǎn),設(shè)計(jì)了新的劃分方法,實(shí)現(xiàn)了對(duì)大規(guī)模矢量目標(biāo)集的度量、方向關(guān)系計(jì)算負(fù)載均衡,提高了矢量目標(biāo)度量、方向關(guān)系并行計(jì)算的效率。參考文獻(xiàn)[I]趙春宇.高性能并行GIS中矢量空間數(shù)據(jù)存取與處理關(guān)鍵技術(shù)研究[D].武漢:武漢大學(xué),2006.
[2]Ann Chervenak, Ian Foster, Carl Kesselman, Charles Salisbury,Steven Tueck.The data grid:Towards an architecture for the distributedmanagement andanalysis of large scientific datasets[J].Journal of Network andComputerApplication.2000,23:187 200.
[3]http://docs.0racle, com/cd/B28359_01/server.11l/b32024/partition.htm[4]Chengwen Liu, Hao Chen, A Hash Partition Strategy for DistributedQueryProcessing [C],the 5 th International Conference on ExtendingDatabaseTechnology(EDBT), Avignon, France,1996,1057:371-387.
[5]Shahram Ghandeharizadeh, David J.Deffitt, Hybrid-range partitioningstrategy:a new declustering strategy for multiprocessor databases machines[C],Proceedings of the sixteenth international conference on Very large databases,Brisbane, Australia,1990,481-492.
[6]王永杰孟令奎趙春宇.基于Hilbert空間排列碼的海量空間數(shù)據(jù)劃分算法研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2007, 32 (7):650 653.
[7]田光.并行計(jì)算環(huán)境中矢量空間數(shù)據(jù)的劃分策略研究與實(shí)現(xiàn)[D].中國(guó)地質(zhì)大學(xué),2011.
發(fā)明內(nèi)容
(一)算法步驟本發(fā)明提供了一種針對(duì)空間度量及方向關(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法。根據(jù)空間度量及方向關(guān)系并行計(jì)算特點(diǎn),采用了顧及矢量目標(biāo)頂點(diǎn)數(shù)的均衡劃分方法,將矢量目標(biāo)集均衡地劃分至不同進(jìn)程,使并行計(jì)算各進(jìn)程的任務(wù)均衡(如圖1所示)。1.顧及矢量目標(biāo)集頂點(diǎn)總數(shù)的均衡劃分方法(簡(jiǎn)稱(chēng)頂點(diǎn)總數(shù)均衡劃分法)矢量目標(biāo)度量(矢量目標(biāo)長(zhǎng)度、面積計(jì)算)及方向關(guān)系(矢量目標(biāo)之間的方向關(guān)系)并行計(jì)算屬于計(jì)算密集型算法,即目標(biāo)度量和方向關(guān)系計(jì)算過(guò)程中矢量目標(biāo)集中幾何對(duì)象的所有點(diǎn)都參與計(jì)算。因此需要根據(jù)矢量目標(biāo)集的點(diǎn)總數(shù),均衡劃分矢量目標(biāo)集至各進(jìn)程。由于矢量目標(biāo)集中各目標(biāo)的頂點(diǎn)數(shù)量不同,所以各進(jìn)程任務(wù)負(fù)載均衡需顧及矢量目標(biāo)的頂點(diǎn)數(shù)。針對(duì)矢量目標(biāo)度量及方向關(guān)系采用頂點(diǎn)總數(shù)均衡劃分法將矢量目標(biāo)集均衡地劃分至各進(jìn)程,解決各進(jìn)程矢量目標(biāo)集任務(wù)的負(fù)載均衡。本發(fā)明以矢量目標(biāo)頂點(diǎn)數(shù)為參數(shù)定義優(yōu)先權(quán)值對(duì)矢量目標(biāo)進(jìn)行劃分。按照優(yōu)先權(quán)(頂點(diǎn)數(shù))的高低(多少)對(duì)矢量目標(biāo)集進(jìn)行排序,即在優(yōu)先隊(duì)列中每次取出優(yōu)先權(quán)最高(或最低)的矢量目標(biāo)并將其分配給優(yōu)先權(quán)和`值最小(或最大)的進(jìn)程。頂點(diǎn)總數(shù)均衡劃分法將矢量目標(biāo)集按照信息量均衡進(jìn)行劃分,使得各進(jìn)程的計(jì)算任務(wù)均衡,其劃分過(guò)程如圖2所示:I)各進(jìn)程讀取矢量目標(biāo)的信息,并將矢量目標(biāo)集(η個(gè))放入到存儲(chǔ)隊(duì)列中;2)利用排序算法對(duì)矢量目標(biāo)排序后存入到優(yōu)先隊(duì)列中,以目標(biāo)的頂點(diǎn)數(shù)(Vi,0< i Sm,m為矢量目標(biāo)集數(shù)量)為參數(shù)量(如圖2A),按照(式I)計(jì)算各矢量目標(biāo)的權(quán)值Wi,為便于矢量目標(biāo)的劃分,設(shè)定其排序規(guī)則為優(yōu)先級(jí)高(或低)的矢量目標(biāo)先存入隊(duì)列;Wi = f (Vi) (I ^ i ^ η) 式 I3)各進(jìn)程初始化一個(gè)存儲(chǔ)向量,用于存儲(chǔ)所分配的矢量目標(biāo),同時(shí)定義一個(gè)記錄優(yōu)先權(quán)和值的變量,用式2 (式中m為矢量目標(biāo)數(shù))累加計(jì)算新增矢量目標(biāo)的權(quán)值,其初始值設(shè)為O ;5;=2,式24)對(duì)所有進(jìn)程(P個(gè))中的Sj進(jìn)行比較,用式3獲取w最小的進(jìn)程pj;w = min。< j^p(Sj) 式 3
5)從優(yōu)先隊(duì)列中取出優(yōu)先級(jí)最高(或最低)的矢量目標(biāo),并分配給Sj最小(或最大)的進(jìn)程,如果有\(zhòng).相等的兩個(gè)以上進(jìn)程,則將矢量目標(biāo)分配給進(jìn)程ID號(hào)最小(或最大)的進(jìn)程(如圖3B);6)劃分矢量目標(biāo)到進(jìn)程JV將所獲矢量目標(biāo)的優(yōu)先權(quán)值累加到中;7)如果優(yōu)先隊(duì)列已經(jīng)為空,則結(jié)束分配過(guò)程,否則繼續(xù)執(zhí)行第4)步。(二)有益效果1、利用本發(fā)明,針對(duì)空間度量及方向關(guān)系算法特點(diǎn)采用頂點(diǎn)總數(shù)均衡劃分法,將矢量目標(biāo)均衡地劃分至不同的進(jìn)程,使進(jìn)程間的任務(wù)實(shí)現(xiàn)負(fù)載均衡,提高了并行計(jì)算效率,且并行效率大于80% ;2、利用本發(fā)明,采用單機(jī)多核、眾核級(jí)高性能集群硬件環(huán)境,可開(kāi)發(fā)高性能并行計(jì)算軟件,實(shí)現(xiàn)對(duì)海量空間數(shù)據(jù)進(jìn)行高效空間關(guān)系分析。
四
圖1空間度量及方向關(guān)系并行算法特點(diǎn)及其對(duì)應(yīng)矢量目標(biāo)集的劃分方法圖2顧及目標(biāo)復(fù)雜度的矢量目標(biāo)集頂點(diǎn)總數(shù)均衡劃分方法圖3應(yīng)用頂點(diǎn)總數(shù)均衡劃分法案例的矢量目標(biāo)集
五具體實(shí)施例方式針對(duì)度量、方向關(guān)系并行計(jì)算的矢量目標(biāo)集劃分方法,以下提供案例對(duì)本發(fā)明進(jìn)行說(shuō)明。(一 )矢量目標(biāo)集頂點(diǎn)總數(shù)均衡劃分案例本案例為計(jì)算某地區(qū)宗地面積(宗地復(fù)雜度如圖3B所示),測(cè)試矢量目標(biāo)集DataSet包含691,442塊宗地(有4,417,571個(gè)點(diǎn)),如圖3A所示。本發(fā)明采用頂點(diǎn)總數(shù)均衡劃分法對(duì)矢量目標(biāo)進(jìn)行劃分并分配至不同進(jìn)程,各進(jìn)程計(jì)算矢量目標(biāo)子集的面積。I)計(jì)算空間面積的矢量目標(biāo)集為DataSet,矢量目標(biāo)集包含對(duì)象的數(shù)為691,442個(gè);2)設(shè)各矢量目標(biāo)的權(quán)值Wi = If(Vi)(其中權(quán)值函數(shù)f (Vi) =Vi),即以矢量目標(biāo)的頂點(diǎn)數(shù)為權(quán)值;3)各進(jìn)程對(duì)DataSet中矢量目標(biāo)按照其權(quán)值從大到小采用正則排序法進(jìn)行序列化;4)初始化所有進(jìn)程的權(quán)值為O ;5)每分配一個(gè)矢量目標(biāo)都要對(duì)所有進(jìn)程的權(quán)值進(jìn)行判斷,優(yōu)先分配矢量目標(biāo)到權(quán)值最小的進(jìn)程。以進(jìn)程數(shù)P = 4為例,分配至各個(gè)進(jìn)程的權(quán)值的大小為Weightl =
I,104,395、Weighta = I, 104,393、Weight3 = I, 104,391、Weight4 = I, 104,393,因?yàn)闄?quán)值就是所包含頂點(diǎn)的數(shù)目,且矢量目標(biāo)面積計(jì)算需所有點(diǎn)參與計(jì)算,所以各個(gè)進(jìn)程計(jì)算任務(wù)的負(fù)載基本均衡。表I結(jié)果就是基于頂點(diǎn)總數(shù)均衡劃分法的面積并行計(jì)算實(shí)例(實(shí)例目標(biāo)集為DataSet),其并行加速比明顯,極大提高了空間面積計(jì)算的效率,在8個(gè)進(jìn)程時(shí)的加速比能達(dá)到6.67。表I基于頂點(diǎn)總數(shù)均衡劃分法的面積并行計(jì)算結(jié)果
權(quán)利要求
1.一種針對(duì)空間度量及方向關(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法,其特征主要在于:針對(duì)度量與方向關(guān)系并行計(jì)算并顧及目矢量目標(biāo)集頂點(diǎn)總數(shù)的均衡劃分方法。
2.根據(jù)權(quán)利要求1所述對(duì)于針對(duì)度量與方向關(guān)系并行計(jì)算并顧及目矢量目標(biāo)集頂點(diǎn)總數(shù)的均衡劃分方法,其特征在于,包含以下3個(gè)特征: 1)對(duì)各進(jìn)程中的矢量目標(biāo)進(jìn)行排序,其排序規(guī)則為以矢量目標(biāo)的頂點(diǎn)數(shù)為參數(shù)的權(quán)值排序。
2)各進(jìn)程包含一個(gè)用來(lái)記錄進(jìn)程動(dòng)態(tài)優(yōu)先權(quán)的參量Si(0<i <p,p為進(jìn)程數(shù)量),其值的為分配到該進(jìn)程的所有矢量目標(biāo)的權(quán)值累加值,且隨著分配目標(biāo)的增加而動(dòng)態(tài)更新。
3)據(jù)優(yōu)先權(quán)值序列化的順序依次取出矢量目標(biāo),劃分給所有進(jìn)程中Si最小的進(jìn)程,使進(jìn)程間的矢量目標(biāo)集的幾何復(fù)雜度均衡(即任務(wù)負(fù)載均衡)。
全文摘要
本發(fā)明公開(kāi)了一種針對(duì)空間度量及方向關(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法。矢量目標(biāo)度量(矢量目標(biāo)長(zhǎng)度、面積計(jì)算)及方向關(guān)系(矢量目標(biāo)之間的方向關(guān)系)并行計(jì)算屬于計(jì)算密集型算法,即目標(biāo)度量和方向關(guān)系計(jì)算過(guò)程中矢量目標(biāo)集中幾何對(duì)象所有的點(diǎn)都參與計(jì)算。因此,各進(jìn)程任務(wù)負(fù)載均衡需顧及矢量目標(biāo)集的頂點(diǎn)數(shù)。所以針對(duì)矢量目標(biāo)度量及方向關(guān)系采用顧及矢量目標(biāo)集頂點(diǎn)總數(shù)的均衡劃分方法將矢量目標(biāo)集均衡地劃分至各進(jìn)程,使各進(jìn)程矢量目標(biāo)集的任務(wù)負(fù)載均衡。利用本發(fā)明可實(shí)現(xiàn)進(jìn)程間計(jì)算負(fù)載高度均衡,進(jìn)而提高算法效率,為單機(jī)多核、眾核和高性能集群環(huán)境的海量數(shù)據(jù)的空間度量及方向關(guān)系軟件的開(kāi)發(fā)與服務(wù)提供一種高效的數(shù)據(jù)劃分方法。
文檔編號(hào)G06F9/50GK103150214SQ20121058637
公開(kāi)日2013年6月12日 申請(qǐng)日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者吳立新, 楊宜舟, 郭甲騰 申請(qǐng)人:吳立新, 楊宜舟, 郭甲騰