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