祝若鑫,劉 陽(yáng),程見橋,陳 科,4,薛 帥
(1. 信息工程大學(xué)地理空間信息學(xué)院,河南鄭州 450052; 2. 61363部隊(duì),陜西 西安 710054;
3. 北京理工大學(xué)信息與電子學(xué)院,北京 100081; 4. 國(guó)土資源部地質(zhì)信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100037)
Cloud Computing Based Parallel Operations on Spatial Vector Data
ZHU Ruoxin,LIU Yang,CHENG Jianqiao,CHEN Ke,XUE Shuai
?
基于云計(jì)算的空間矢量數(shù)據(jù)并行處理
祝若鑫1,劉陽(yáng)2,程見橋3,陳科1,4,薛帥1
(1. 信息工程大學(xué)地理空間信息學(xué)院,河南鄭州 450052; 2. 61363部隊(duì),陜西 西安 710054;
3. 北京理工大學(xué)信息與電子學(xué)院,北京 100081; 4. 國(guó)土資源部地質(zhì)信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100037)
Cloud Computing Based Parallel Operations on Spatial Vector Data
ZHU Ruoxin,LIU Yang,CHENG Jianqiao,CHEN Ke,XUE Shuai
摘要:研究了提高空間矢量數(shù)據(jù)運(yùn)算效率的分布式并行處理方法,基于微軟Azure云平臺(tái)設(shè)計(jì)了適用于矢量數(shù)據(jù)并行處理的3種架構(gòu)方式:中心負(fù)載均衡架構(gòu)、分布式靜態(tài)負(fù)載均衡架構(gòu)、分布式動(dòng)態(tài)負(fù)載均衡架構(gòu),并分別搭建原型系統(tǒng)對(duì)小規(guī)模偏態(tài)分布數(shù)據(jù)和大規(guī)模數(shù)據(jù)進(jìn)行疊置分析測(cè)試。試驗(yàn)結(jié)果表明,基于Azure云的分布式動(dòng)態(tài)負(fù)載均衡架構(gòu)版本原型系統(tǒng)可大幅度提高計(jì)算效率,對(duì)小規(guī)模偏態(tài)分布數(shù)據(jù)集可以達(dá)到超過(guò)10倍的加速比,對(duì)大規(guī)模數(shù)據(jù)集的分析計(jì)算更是達(dá)到了超過(guò)40倍的加速比,證明基于Azure云的分布式動(dòng)態(tài)負(fù)載均衡架構(gòu)方法是提高空間矢量數(shù)據(jù)分析效率的有效方法。
關(guān)鍵詞:Azure云平臺(tái);并行計(jì)算;疊置分析;空間數(shù)據(jù)處理
一、前言
相對(duì)于柵格數(shù)據(jù)的規(guī)則性和高度相似性,大規(guī)模矢量數(shù)據(jù)的計(jì)算由于具有數(shù)據(jù)密集和不規(guī)則性的特點(diǎn)給地理信息科學(xué)的研究人員帶來(lái)了巨大挑戰(zhàn)[1]。部署大規(guī)模矢量數(shù)據(jù)進(jìn)行空間分析和疊加運(yùn)算是一類非常耗時(shí)的任務(wù),如颶風(fēng)路線預(yù)測(cè)及影響分析等。一次綜合分析任務(wù)的執(zhí)行,往往需要對(duì)來(lái)源多元化的矢量數(shù)據(jù)進(jìn)行疊置分析,而對(duì)這些數(shù)據(jù)的綜合分析,采用單機(jī)系統(tǒng)往往需要數(shù)小時(shí)甚至幾天才能獲得分析結(jié)果。如何快速獲得分析結(jié)果,一直是地理信息科學(xué)領(lǐng)域研究中的一個(gè)重要問(wèn)題[2]。
隨著對(duì)分布式并行計(jì)算研究的深入,并行和分布式計(jì)算成為求解各種計(jì)算密集型和數(shù)據(jù)密集型負(fù)載調(diào)度問(wèn)題的有效手段。能提供大規(guī)模分布式并行計(jì)算基礎(chǔ)設(shè)施的云計(jì)算成為解決空間矢量數(shù)據(jù)分析耗時(shí)問(wèn)題的新方向。目前國(guó)內(nèi)外科研人員在云計(jì)算的框架和應(yīng)用方面已經(jīng)展開了一些研究,但與地理信息科學(xué)相關(guān)的云計(jì)算研究項(xiàng)目卻很少[3],并且這些項(xiàng)目主要用于數(shù)據(jù)下載、重投影、影像壓縮及智能傳感器與數(shù)據(jù)融合,在空間矢量數(shù)據(jù)并行處理方面的研究幾乎沒有。鑒于此,本文在分析微軟Azure云平臺(tái)架構(gòu)的基礎(chǔ)上設(shè)計(jì)了3種基于Azure云的矢量數(shù)據(jù)分析并行架構(gòu),通過(guò)對(duì)比測(cè)試,針對(duì)空間矢量數(shù)據(jù)分析耗時(shí)巨大的問(wèn)題來(lái)選擇一種較好的解決方案[4]。
二、Azure云并行處理架構(gòu)設(shè)計(jì)
微軟的云計(jì)算服務(wù)平臺(tái)屬于PaaS云計(jì)算模式,它提供了可以通過(guò)互聯(lián)網(wǎng)訪問(wèn)的基礎(chǔ)設(shè)施。用戶和企業(yè)可以利用微軟的處理器、存儲(chǔ)設(shè)施、基礎(chǔ)服務(wù)把自己的應(yīng)用程序和數(shù)據(jù)部署在Azure云平臺(tái)上運(yùn)行[5]。Azure云平臺(tái)有微軟強(qiáng)大的分布式集群作支撐,因此具有強(qiáng)大的計(jì)算能力和存儲(chǔ)能力,并且它具有的一系列保障機(jī)制可以確保云端的系統(tǒng)穩(wěn)定性及數(shù)據(jù)可靠性。
角色是Azure云平臺(tái)工作機(jī)制中非常重要的概念,部署到Windows Azure上的應(yīng)用程序被劃分為兩種角色:Web 角色和Worker 角色。Web 角色主要是提供Web服務(wù),而Worker角色則在后臺(tái)運(yùn)行,類似于Windows服務(wù)。Worker角色一直運(yùn)行在后臺(tái)進(jìn)行網(wǎng)絡(luò)資源、數(shù)據(jù)源的訪問(wèn)及各種功能操作[6]。應(yīng)用程序在前端部署大量的Web角色服務(wù)器來(lái)處理各種Web的請(qǐng)求并生成各種任務(wù)條目,之后將這些任務(wù)條目放入Queue中,位于后臺(tái)的Worker角色服務(wù)器從Queue獲取這些作業(yè)任務(wù),處理應(yīng)用程序的業(yè)務(wù)邏輯。在這個(gè)過(guò)程中,前端的Web角色工作者服務(wù)器和后臺(tái)的Worker角色服務(wù)器之間只能通過(guò)Queue來(lái)進(jìn)行通信,應(yīng)用程序所處理的數(shù)據(jù)則存儲(chǔ)在Blob或Table中。后臺(tái)的Worker角色對(duì)用戶是不可見的,用戶只需和Web角色進(jìn)行各種交互。
為了探索更適用于矢量數(shù)據(jù)分析的架構(gòu)方式,結(jié)合Azure云平臺(tái)特點(diǎn),本文設(shè)計(jì)了3種并行架構(gòu)在Azure云平臺(tái)上測(cè)試,對(duì)比不同空間矢量數(shù)據(jù)并行處理架構(gòu)在Azure云平臺(tái)上的性能[7]。
如圖1所示,基于中心負(fù)載均衡架構(gòu)的矢量數(shù)據(jù)并行處理模式如下:
1) Web角色讀取用戶的文件選擇指令,下載并對(duì)矢量數(shù)據(jù)文件進(jìn)行解析和預(yù)處理,將適合執(zhí)行下一步分析任務(wù)的處理數(shù)據(jù)存儲(chǔ)進(jìn)Blob,創(chuàng)建相應(yīng)的任務(wù)ID到公共任務(wù)池。
圖1 中心負(fù)載平衡架構(gòu)
2) 在Web角色完成了任務(wù)創(chuàng)建后,Worker角色從任務(wù)池中獲取任務(wù),并調(diào)用函數(shù)庫(kù)來(lái)處理。通過(guò)這種方法,Worker角色實(shí)例實(shí)現(xiàn)了任務(wù)共享。在每個(gè)任務(wù)完成后,相應(yīng)的Worker角色從任務(wù)池隊(duì)列中永久性刪除關(guān)于這個(gè)任務(wù)的信息。此外,Worker角色會(huì)發(fā)送一個(gè)消息給指示隊(duì)列,終止任務(wù)來(lái)表示這個(gè)任務(wù)的成功處理。3) Web角色通過(guò)不斷檢查在終止指示隊(duì)列中的信息數(shù)量來(lái)更新用戶接口中的操作進(jìn)度狀況。在任務(wù)完成時(shí),Web角色整理處理結(jié)果提交并永久存儲(chǔ)在Blob Storage中。結(jié)果Blob的URI將會(huì)呈現(xiàn)給用戶用作下載或進(jìn)一步處理。
分布式靜態(tài)負(fù)載平衡架構(gòu)與中心負(fù)載均衡架構(gòu)在步驟1)和步驟2)上有所不同(如圖1和圖2所示),在這種模式下,步驟1)中的Web角色只負(fù)責(zé)擔(dān)任需要處理的空間矢量數(shù)據(jù)文件與系統(tǒng)所能提供的各項(xiàng)操作之間的接口;用戶選擇需要處理的GML文件及空間操作的類型,Web角色把這些信息當(dāng)作消息放在輸入隊(duì)列中。而在步驟2)里Worker角色則負(fù)責(zé)數(shù)據(jù)的讀取、解析、預(yù)處理、操作等一系列任務(wù),并且這種架構(gòu)中Worker角色之間并不共享任務(wù),每個(gè)Worker角色只負(fù)責(zé)處理最初自己所分配的數(shù)據(jù)部分。
在分布式動(dòng)態(tài)負(fù)載均衡架構(gòu)中,相當(dāng)于靜態(tài)負(fù)載平衡架構(gòu)步驟2)的內(nèi)容被分成的兩部分(如圖2和圖3所示),首先是各Worker角色下載并解析分配給的空間矢量數(shù)據(jù),然后將預(yù)處理之后的數(shù)據(jù)存入Blob容器并在任務(wù)池隊(duì)列中構(gòu)造任務(wù)ID,最后所有的Worker角色共同完成任務(wù)池隊(duì)列中的任務(wù)并將任務(wù)完成情況對(duì)任務(wù)池序列和終止指示隊(duì)列進(jìn)行反饋。
三、試驗(yàn)設(shè)計(jì)
圖2 分布式靜態(tài)負(fù)載平衡架構(gòu)
圖3 分布式動(dòng)態(tài)負(fù)載平衡架構(gòu)
目前的矢量空間數(shù)據(jù)疊加分析過(guò)程主要分為過(guò)濾和精煉兩個(gè)階段。過(guò)濾主要是通過(guò)引入空間索引或空間對(duì)象的近似表示等方法,以較低的計(jì)算代價(jià)排除疊加結(jié)果為空的空間對(duì)象。經(jīng)過(guò)排除運(yùn)算,余下的數(shù)據(jù)集是可能產(chǎn)生非空疊加結(jié)果的空間對(duì)象集合。精煉階段是對(duì)候選數(shù)據(jù)集合進(jìn)行實(shí)際的分析運(yùn)算。本文分別設(shè)計(jì)了關(guān)于小規(guī)模偏態(tài)分布數(shù)據(jù)及大規(guī)模規(guī)則數(shù)據(jù)疊加分析的兩個(gè)模擬試驗(yàn),對(duì)3種架構(gòu)的處理效率進(jìn)行了測(cè)試。小規(guī)模偏態(tài)分布數(shù)據(jù)疊加分析試驗(yàn)?zāi)M了一次臺(tái)風(fēng)登陸中國(guó)的影響分析。基礎(chǔ)數(shù)據(jù)是中國(guó)東南部幾個(gè)省份的1∶1萬(wàn)基礎(chǔ)數(shù)據(jù)(包括居民地、公路、鐵路、水系等要素?cái)?shù)據(jù)),而分析數(shù)據(jù)則是臺(tái)風(fēng)的行進(jìn)及引發(fā)的強(qiáng)降雨數(shù)據(jù)。大規(guī)模分布數(shù)據(jù)的疊加分析試驗(yàn)?zāi)M了中國(guó)近20年受災(zāi)情況綜合分析?;A(chǔ)數(shù)據(jù)是中國(guó)范圍內(nèi)1∶5萬(wàn)的基礎(chǔ)數(shù)據(jù)(包括居民地、公路、鐵路、水系、植被、工農(nóng)業(yè)設(shè)施等要素?cái)?shù)據(jù)),而分析數(shù)據(jù)則是近20年的中國(guó)自然災(zāi)害數(shù)據(jù)(包括暴雪、地震、臺(tái)風(fēng)、洪水、干旱災(zāi)害等數(shù)據(jù))。
整個(gè)試驗(yàn)運(yùn)算的主要流程如下:
1) 讀取基礎(chǔ)數(shù)據(jù)和分析數(shù)據(jù)(GML格式)。
2) 通過(guò)判斷矢量數(shù)據(jù)外接矩形是否相交的方法來(lái)對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,實(shí)現(xiàn)數(shù)據(jù)的預(yù)處理,獲得數(shù)據(jù)的候選集。
3) 將預(yù)處理后的分析數(shù)據(jù)與基礎(chǔ)數(shù)據(jù)作分析運(yùn)算,實(shí)現(xiàn)數(shù)據(jù)的精練[8]。
4) 整合并輸出運(yùn)算結(jié)果。
四、試驗(yàn)結(jié)果及分析
針對(duì)3種不同的架構(gòu)形式,筆者分別開發(fā)了原型系統(tǒng)并部署到Windows Azure云平臺(tái)上進(jìn)行測(cè)試,使用最大100個(gè)Azure內(nèi)核的配額來(lái)部署試驗(yàn)。對(duì)于中心負(fù)載均衡架構(gòu)系統(tǒng),一個(gè)核分配給用戶接口操作,9個(gè)核被Web角色用作任務(wù)生產(chǎn)者,剩余90個(gè)核被Worker角色用作處理者。為了保持試驗(yàn)環(huán)境的一致性,在兩種分布式負(fù)載均衡架構(gòu)原型系統(tǒng)測(cè)試中也繼續(xù)使用最大90個(gè)核作為Worker角色實(shí)例。
圖4展示了3種不同架構(gòu)原型系統(tǒng)面對(duì)偏態(tài)分布小規(guī)模數(shù)據(jù)集的加速比。從測(cè)試結(jié)果可以看出,分布式動(dòng)態(tài)負(fù)載均衡的整體端對(duì)端加速比(從輸入數(shù)據(jù)GML文件到輸出分析結(jié)果GML文件)超過(guò)10倍,運(yùn)行效率最高[9]。
分布式負(fù)載均衡的兩種架構(gòu)方式運(yùn)行效果比中心負(fù)載均衡版本要好,究其原因,當(dāng)中心架構(gòu)系統(tǒng)中的Worker角色實(shí)例持續(xù)增加時(shí),卻始終只有一臺(tái)虛擬機(jī)作為Web角色在工作,Web角色的處理速度制約了運(yùn)行效率的提高。
圖4 不同架構(gòu)下偏態(tài)分布小規(guī)模數(shù)據(jù)的測(cè)試結(jié)果
而在采用2~5個(gè)Worker實(shí)例試驗(yàn)時(shí),分布式靜態(tài)負(fù)載均衡架構(gòu)系統(tǒng)的加速比高于動(dòng)態(tài)負(fù)載均衡架構(gòu),這是因?yàn)榉植际届o態(tài)版本中Worker角色之間不共享任務(wù),此版本不需要存儲(chǔ)及讀取任務(wù)池消息隊(duì)列,從而避免了任務(wù)讀寫的開銷。與此同時(shí),動(dòng)態(tài)負(fù)載的優(yōu)勢(shì)由于Worker實(shí)例數(shù)量較少還沒有完全發(fā)揮出其優(yōu)勢(shì)[10]。
分布式負(fù)載均衡版本加速比無(wú)法持續(xù)大幅提高的原因是由Azure平臺(tái)中固有的瓶頸引起的,這其中包括同步文件下載、任務(wù)序列的爭(zhēng)用及并行訪問(wèn)Blob存儲(chǔ)等問(wèn)題。由于這些固有的瓶頸,這種架構(gòu)系統(tǒng)在Azure平臺(tái)上不能通過(guò)無(wú)限擴(kuò)展處理器的方式來(lái)提高運(yùn)行效率[11]。
圖5展示了分布式動(dòng)態(tài)負(fù)載均衡框架模式中子進(jìn)程在小規(guī)模偏態(tài)數(shù)據(jù)和大規(guī)模數(shù)據(jù)集中花費(fèi)的最大時(shí)間。子進(jìn)程花銷時(shí)間是指從該進(jìn)程某處理器最先啟動(dòng)實(shí)例的時(shí)間到某處理器最后完成實(shí)例所花費(fèi)的時(shí)間。
圖5 數(shù)據(jù)集子進(jìn)程執(zhí)行時(shí)間測(cè)試
較小的數(shù)據(jù)集因?yàn)閿?shù)據(jù)分布不均勻因此整體加速比有所限制。與此相反,大規(guī)模的數(shù)據(jù)由于負(fù)載相對(duì)均衡,分布式負(fù)載均衡框架模式在這類數(shù)據(jù)集上能獲得更好的性能,端對(duì)端的加速比超過(guò)40倍。用于任務(wù)執(zhí)行模塊的加速比超過(guò)45倍,而任務(wù)創(chuàng)建模塊的加速比超過(guò)55倍。
五、結(jié)束語(yǔ)
云計(jì)算是提供虛擬化和高可用性的開放性計(jì)算服務(wù)平臺(tái),微軟的Azure云計(jì)算平臺(tái)有著遍布全球的大型數(shù)據(jù)中心可以提供強(qiáng)大的存儲(chǔ)、計(jì)算能力。毫無(wú)疑問(wèn)它的興起給矢量數(shù)據(jù)的并行處理提供了新的思路和方法。本文設(shè)計(jì)了3種基于Azure云的空間矢量數(shù)據(jù)并行處理架構(gòu),分別部署相應(yīng)原型系統(tǒng)對(duì)小規(guī)模偏態(tài)分布數(shù)據(jù)和大規(guī)模數(shù)據(jù)進(jìn)行了性能測(cè)試。試驗(yàn)結(jié)果表明,分布式動(dòng)態(tài)負(fù)載均衡框架能大幅提高矢量數(shù)據(jù)的疊置分析效率,這為矢量數(shù)據(jù)的高效并行分布式處理提供了一種有效的解決方案。然而,云計(jì)算在空間信息處理領(lǐng)域應(yīng)用的研究才剛剛興起,本文的研究也僅僅驗(yàn)證了云計(jì)算模式能給空間矢量數(shù)據(jù)的處理帶來(lái)便利,至于如何才能更好地把地理信息科學(xué)應(yīng)用和云計(jì)算結(jié)合到一起,讓云計(jì)算強(qiáng)大的計(jì)算能力更好地支持GIS的分析應(yīng)用,還需作進(jìn)一步的研究。
參考文獻(xiàn):
[1]程果,陳犖,吳秋云,等.一種面向復(fù)雜地理空間柵格數(shù)據(jù)處理算法并行化的任務(wù)調(diào)度方法[J].國(guó)防科技大學(xué)學(xué)報(bào),2012,34(6):61-65.
[2]王家耀. 地理信息系統(tǒng)的發(fā)展與發(fā)展中的地理信息系統(tǒng)[J]. 中國(guó)工程科學(xué), 2009,11(2): 10-16.
[3]朱劍.基于虛擬云計(jì)算架構(gòu)的GIS服務(wù)資源彈性調(diào)度應(yīng)用研究[J].測(cè)繪通報(bào),2013(5):92-95.
[4]李德毅. 云計(jì)算中的軟件和軟件開發(fā)[EB/OL]. [2013-11-20].http:∥tech.sina.com.cn/it/2010-06-02/17354262863.shtml.
[5]劉鵬. 云計(jì)算[M]. 北京:電子工業(yè)出版社, 2011:114-130.
[6]肖蘇勇,吳例民,劉文軍.基于云計(jì)算的地理信息公共服務(wù)平臺(tái)應(yīng)用與研究[J].測(cè)繪通報(bào),2012(9):78-80.
[7]MILNER M. A Developer’s Guide to the Microsoft .NET Workflow Service[EB/OL]. [2013-11-15].http:∥www.microsoft.com/azure/Whi tepaper.mspx.
[8]蔡蕾. 地理計(jì)算并行處理技術(shù)及性能評(píng)價(jià)模型研究[D]. 長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué), 2011.
[9]陳占龍, 吳信才, 吳亮. 基于單調(diào)鏈和STR樹的簡(jiǎn)單要素模型多邊形疊置分析算法[J].測(cè)繪學(xué)報(bào), 2010,39(1):102-108.
[10]DOWERS S,GITTINGS B M, MINETER M J. Towards a Framework for High-performance Geocomputation: Handling Vector-topology within a Distributed Service Environment[J]. Computers, Environment and Urban Systems, 2000,24(5):471-486.
[11]徐傳福,車永剛,王正華.基于并行模擬的多核集群系統(tǒng)性能預(yù)測(cè)和分析[J].國(guó)防科技大學(xué)學(xué)報(bào),2010,32(5):62-68.
引文格式: 祝若鑫,劉陽(yáng),程見橋,等. 基于云計(jì)算的空間矢量數(shù)據(jù)并行處理[J].測(cè)繪通報(bào),2015(3):44-48.DOI:10.13474/j.cnki.11-2246.2015.0072
作者簡(jiǎn)介:祝若鑫(1991—),男,碩士生,主要研究方向?yàn)樵艷IS、網(wǎng)格GIS。E-mail: zhuruoxin@gmail.com
基金項(xiàng)目:國(guó)家自然科學(xué)基金(41271392;41401462);數(shù)字制圖與國(guó)土信息應(yīng)用工程國(guó)家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室開放研究基金(GCWD201105)
收稿日期:2014-03-14
中圖分類號(hào):P208
文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):0494-0911(2015)03-0044-05