專利名稱:一種針對(duì)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法
技術(shù)領(lǐng)域:
本發(fā)明屬于并行計(jì)算領(lǐng)域,特別是涉及到一種針對(duì)矢量目標(biāo)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法。
背景技術(shù):
拓?fù)潢P(guān)系是空間目標(biāo)在延展、移動(dòng)、旋轉(zhuǎn)等變換下保持不變的一種定性關(guān)系,它在空間數(shù)據(jù)的組織、分析、查詢等方面有著十分重要的作用。拓?fù)潢P(guān)系在空間推理和空間查詢上也扮演著非常重要的角色,是地理信息系統(tǒng)的重要內(nèi)容。隨著空間數(shù)據(jù)量爆炸式的增長,傳統(tǒng)的空間關(guān)系串行算法已不能滿足大規(guī)??臻g數(shù)據(jù)分析與需求,亟待利用計(jì)算機(jī)并行體系架構(gòu)發(fā)展一種并行算法,才能滿足大規(guī)模矢量目標(biāo)(空間數(shù)據(jù))空間關(guān)系快速計(jì)算與分析的應(yīng)用需求。矢量目標(biāo)拓?fù)潢P(guān)系并行算法由3部分組成1)多邊形目標(biāo)集的預(yù)處理;2)多邊形目標(biāo)集劃分;3)多邊形目標(biāo)拓?fù)潢P(guān)系計(jì)算與判斷。多邊形目標(biāo)集預(yù)處理并行算法的預(yù)處理是指對(duì)多邊形數(shù)據(jù)進(jìn)行并行排序,排序的原則是以多邊形目標(biāo)的頂點(diǎn)數(shù)為參數(shù)進(jìn)行排序。多邊形目標(biāo)集劃分多邊形目標(biāo)集的劃分是拓?fù)潢P(guān)系并行算法的重點(diǎn)和難點(diǎn)問題。影響并行算法的效率的一個(gè)重要方面是并行計(jì)算過程中的負(fù)載均衡。拓?fù)潢P(guān)系并行算法設(shè)計(jì)需考慮兩方面問題一是矢量目標(biāo)的空間特性,二是矢量目標(biāo)集的劃分。拓?fù)潢P(guān)系并行算法為非計(jì)算密集型算法,根據(jù)其并行算法的特征,對(duì)其數(shù)據(jù)劃分可采取相應(yīng)方法。目前并行算法的矢量目標(biāo)集劃分方法主要有輪轉(zhuǎn)劃分法[1]、范圍劃分法[1_3]、散列劃分法[1’4]、混合劃分法[1’5]、空間曲線劃分法[6’7]等,但這些已有劃分方法都不能針對(duì)拓?fù)潢P(guān)系算法的特點(diǎn)來保障拓?fù)潢P(guān)系并行算法中各進(jìn)程的任務(wù)負(fù)載均衡,影響了計(jì)算效率。因此,本發(fā)明針對(duì)拓?fù)潢P(guān)系算法的特點(diǎn),設(shè)計(jì)了新的劃分方法,實(shí)現(xiàn)了對(duì)大規(guī)模矢量目標(biāo)集的拓?fù)潢P(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. oracle, com/cd/B28359_01/server. 11l/b32024/partition.htm[4] Chengwen Liu, Hao Chen, A Hash Partition Strategy for Distributed QueryProcessing[C],the 5th International Conference on ExtendingDatabaseTechnology(EDBT),Avignon, France,1996,1057 :371-387.[5]Shahram Ghandeharizadeh, David J. DeWitt, 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].中國地質(zhì)大學(xué),2011.
發(fā)明內(nèi)容
(一)算法步驟本發(fā)明提供了一種針對(duì)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集均衡劃分方法。據(jù)其拓?fù)潢P(guān)系并行計(jì)算特點(diǎn),本發(fā)明采用·了顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法將目標(biāo)集劃分至不同進(jìn)程,使拓?fù)潢P(guān)系并行計(jì)算各進(jìn)程任務(wù)均衡(如圖1所示)。1.顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法(以下簡稱均衡劃分法)矢量目標(biāo)拓?fù)潢P(guān)系(點(diǎn)目標(biāo)拓?fù)潢P(guān)系、線目標(biāo)拓?fù)潢P(guān)系和面目標(biāo)拓?fù)潢P(guān)系)并行計(jì)算屬于非計(jì)算密集型算法,其在并行計(jì)算中主要的計(jì)算資源消耗是判斷矢量目標(biāo)的最小包圍矩形是否相交,拓?fù)溆?jì)算只消耗小部分計(jì)算資源。因此,矢量目標(biāo)集劃分的重點(diǎn)不是要關(guān)注矢量目標(biāo)的幾何復(fù)雜性,而是要重點(diǎn)關(guān)注各進(jìn)程中矢量目標(biāo)數(shù)量的均衡。均衡劃分法根據(jù)進(jìn)程數(shù)P將矢量目標(biāo)集(數(shù)量η)均衡地劃分為P份,各個(gè)進(jìn)程得到η/ρ個(gè)矢量目標(biāo)集。具體過程如圖2所示I)矢量目標(biāo)集中對(duì)象數(shù)量為η,根據(jù)矢量目標(biāo)集中對(duì)象的頂點(diǎn)數(shù)(圖2Α中的數(shù)字為對(duì)象頂點(diǎn)數(shù)Vi)按照(式I)計(jì)算各矢量目標(biāo)的權(quán)值Wi,各進(jìn)程依據(jù)對(duì)象的權(quán)值采用排序算法對(duì)矢量目標(biāo)集進(jìn)行序列化(如圖2Β);Wi = f (Vi) (I ^ i ^ η)式 I2)每次分配的矢量目標(biāo)子集數(shù)量為I (O < I彡|n/(kXp) | ,2彡k < n/p,且k為偶數(shù)),已分配對(duì)象集的次數(shù)為m(0彡m彡k);3)按照矢量目標(biāo)集序列化的順序,每次將P個(gè)數(shù)量為I且序列號(hào)相鄰的子矢量目
標(biāo)集Sm{sml, sm2, sm3, ......,sm(pX1)}(即pX I個(gè)對(duì)象)分配到不同進(jìn)程,若m為奇數(shù),則分配
的順序是S1 — Spxl,若為偶數(shù)則分配的順序?yàn)镾pxl — Sl。此分配方式重點(diǎn)是顧及各進(jìn)程中對(duì)象數(shù)目均衡,也顧及到了矢量目標(biāo)的幾何復(fù)雜度(頂點(diǎn)數(shù))均衡(因?yàn)槭噶磕繕?biāo)集是依據(jù)權(quán)值Vi排序,奇數(shù)次與偶數(shù)次分配時(shí)順序相反,如式2中所示進(jìn)程P1第m次分配為Smi,第m+1次分配的為S(m+1) (ρΧΗ),進(jìn)程p2第m次分配為S+m),第m+1次分配的為S(m+1)i,則各進(jìn)程分配的矢量目標(biāo)集幾何復(fù)雜度基本均衡),如圖2C ;Smi+S(m+1) (ρχι- ) Sm(pX1_i)+S(^1)i 式 24)將最后不足P個(gè)數(shù)量為I的矢量目標(biāo)集(數(shù)量為n-mXpXl),將其按照2)步驟均衡劃分給各進(jìn)程,直至所有的矢量目標(biāo)都劃分至各進(jìn)程(二)有益效果1、利用本發(fā)明,針對(duì)拓?fù)潢P(guān)系算法特點(diǎn)采用顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法,將矢量目標(biāo)集均衡劃分至不同的進(jìn)程,使進(jìn)程間的任務(wù)實(shí)現(xiàn)負(fù)載均衡,提高了并行計(jì)算效率,其并行效率大于60% ;2、利用本發(fā)明,采用單機(jī)多核、眾核級(jí)高性能集群硬件環(huán)境,可開發(fā)高性能并行計(jì)算軟件,實(shí)現(xiàn)對(duì)海量空間數(shù)據(jù)進(jìn)行高效空間關(guān)系分析。
四
圖1拓?fù)潢P(guān)系并行算法特點(diǎn)及其對(duì)應(yīng)矢量目標(biāo)集的劃分方法圖2顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法圖3應(yīng)用均衡劃分方法案例的矢量目標(biāo)集
五具體實(shí)施例方式針對(duì)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集劃分方法,以下提供案例對(duì)本發(fā)明進(jìn)行說明。(一 )顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法案例本發(fā)明利用均衡劃分法把數(shù)據(jù)分配到不同進(jìn)程,計(jì)算矢量目標(biāo)之間是否有重疊(拓?fù)潢P(guān)系中的一種),并輸出查詢得到的空間目標(biāo)ID。本案例的矢量目標(biāo)集為某地區(qū)691,442塊宗地(有4,417,571個(gè)點(diǎn)),如圖3所示(其中圖3A為案例中所用宗地塊集,而圖3B顯示宗地塊的復(fù)雜度)。I)計(jì)算空間拓?fù)潢P(guān)系的矢量目標(biāo)集為DataSet,矢量目標(biāo)集包含對(duì)象的數(shù)目為N=691,442 個(gè);2)設(shè)各矢量目標(biāo)的權(quán)值Wi = f (Vi)(其中權(quán)值函數(shù)f (Vi) = Vi),即以矢量目標(biāo)的頂點(diǎn)數(shù)為權(quán)值;3)將DataSet中對(duì)象采用正則排序算法按照權(quán)值從大到小進(jìn)行序列化,;4)根據(jù)進(jìn)程數(shù)P,采用均衡劃分法將DataSet矢量目標(biāo)集劃分到不同進(jìn)程,每個(gè)進(jìn)程分配數(shù)據(jù)的量為subDataSet,且各子矢量目標(biāo)集包含對(duì)象數(shù)為691,442/P,WP = 4、每次分配691,442/ (2 XP)、分配兩次為例第一次分配,進(jìn)程O中分配的subDataSet矢量目標(biāo)數(shù)為86,430個(gè)(I≤ID≤86,430,ID為對(duì)象的序列號(hào)),進(jìn)程I中分配的subDataSet矢量目標(biāo)數(shù)為86,430(86,431 ^ ID ^ 172,860),進(jìn)程2中分配的subDataSet矢量目標(biāo)數(shù)為86,430 個(gè)(172,861 ^ ID ^ 259,290),進(jìn)程 3 中分配的 subDataSet 矢量目標(biāo)數(shù)為 86,430個(gè)(259,291 ^ ID ^ 345, 720);第二次分配,進(jìn)程O中分配的subDataSet矢量目標(biāo)數(shù)仍為86,430個(gè)¢05,011 ^ ID ^ 691,440),進(jìn)程I中分配的subDataSet矢量目標(biāo)數(shù)仍為86,430(518, 581 ^ ID ^ 605,010),進(jìn)程 2 中分配的 subDataSet 矢量目標(biāo)數(shù)仍為 86,430個(gè)(432,151 ^ ID ^ 518,580),進(jìn)程3中分配的subDataSet矢量目標(biāo)數(shù)仍為86,430個(gè)(345,721 ^ ID ^ 432,150);最后,劃分剩余的2個(gè)矢量目標(biāo)至進(jìn)程O、進(jìn)程I。最終,進(jìn)程O的矢量目標(biāo)數(shù)量為172,861,進(jìn)程I的矢量目標(biāo)數(shù)量為170,861,進(jìn)程2的矢量目標(biāo)數(shù)量為170,860,進(jìn)程3的矢量目標(biāo)數(shù)量為170,860 ;5)每個(gè)進(jìn)程DataSet中的矢量目標(biāo)與subDataSet矢量目標(biāo)計(jì)算空間拓?fù)潢P(guān)系,回收所有進(jìn)程得到的 結(jié)果,其宗地重疊有53處,表I中的結(jié)果就是基于均衡劃分法的矢量拓?fù)潢P(guān)系并行計(jì)算,其加速效果明顯,運(yùn)算消耗時(shí)間隨著進(jìn)程的增多而減少,極大提高了拓?fù)潢P(guān)系計(jì)算效率,加速比在8個(gè)進(jìn)程時(shí)能達(dá)到5. 33。
表I基于均衡劃分法的矢量拓?fù)潢P(guān)系并行計(jì)算結(jié)果
權(quán)利要求
1.一種針對(duì)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集劃分方法,其特征主要在于 針對(duì)拓?fù)潢P(guān)系并行計(jì)算并顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法;根據(jù)權(quán)利要求1所述對(duì)于針對(duì)拓?fù)潢P(guān)系并行計(jì)算并顧及目標(biāo)數(shù)量的矢量目標(biāo)集均衡劃分方法,其特征在于,包含以下2個(gè)特征 .1)以各矢量目標(biāo)頂點(diǎn)數(shù)(Vi)為權(quán)值(Wi)的參數(shù)(Wi= f (Vi) (1≤i≤n) ,n為矢量目標(biāo)數(shù)目),根據(jù)各矢量目標(biāo)的Wi大小對(duì)矢量目標(biāo)集進(jìn)行序列化,劃分?jǐn)?shù)量相同的矢量目標(biāo)子集至各進(jìn)程,使進(jìn)程間的任務(wù)負(fù)載均衡。
.2)在分配的過程中,根據(jù)分配次數(shù)m的奇偶性,將矢量目標(biāo)集SmIs1,s2, S3,……,sp}分配到不同進(jìn)程;若m為奇數(shù),則分配的順序是Sl —sp (即權(quán)值從大到小(或從小到大));若m為偶數(shù),則分配的順序?yàn)镾p — S1 (即權(quán)值從小到大(或從大到小))。
全文摘要
本發(fā)明公開了一種針對(duì)拓?fù)潢P(guān)系并行計(jì)算的矢量目標(biāo)集劃分方法。矢量目標(biāo)拓?fù)潢P(guān)系并行計(jì)算屬于非計(jì)算密集型算法,其并行計(jì)算中主要的計(jì)算資源消耗是判斷矢量目標(biāo)間最小包圍矩形是否相交,而拓?fù)溆?jì)算只占小部分計(jì)算資源。因此,矢量目標(biāo)劃分的重點(diǎn)不是顧及矢量目標(biāo)的幾何復(fù)雜性,而是考慮各進(jìn)程中矢量目標(biāo)數(shù)量的均衡。針對(duì)矢量目標(biāo)拓?fù)潢P(guān)系并行計(jì)算采用高效的均衡劃分法分配數(shù)據(jù)至各進(jìn)程,使進(jìn)程間矢量目標(biāo)數(shù)量均衡即任務(wù)負(fù)載均衡。利用本發(fā)明可實(shí)現(xiàn)進(jìn)程間計(jì)算負(fù)載高度均衡,進(jìn)而提高算法效率,為單機(jī)多核、眾核和高性能集群環(huán)境的海量數(shù)據(jù)的拓?fù)潢P(guān)系軟件的開發(fā)與服務(wù)提供一種高效的矢量數(shù)據(jù)劃分方法。
文檔編號(hào)G06F9/48GK103049322SQ20121058637
公開日2013年4月17日 申請(qǐng)日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者吳立新, 楊宜舟, 郭甲騰 申請(qǐng)人:吳立新, 楊宜舟, 郭甲騰