基于云计算的空间矢量数据并行处理

2015-02-19 02:27祝若鑫程见桥
测绘通报 2015年3期
关键词:并行计算

祝若鑫,刘 阳,程见桥,陈 科,4,薛 帅

(1. 信息工程大学地理空间信息学院,河南郑州 450052; 2. 61363部队,陕西 西安 710054;

3. 北京理工大学信息与电子学院,北京 100081; 4. 国土资源部地质信息技术重点实验室,北京 100037)

Cloud Computing Based Parallel Operations on Spatial Vector Data

ZHU Ruoxin,LIU Yang,CHENG Jianqiao,CHEN Ke,XUE Shuai



基于云计算的空间矢量数据并行处理

祝若鑫1,刘阳2,程见桥3,陈科1,4,薛帅1

(1. 信息工程大学地理空间信息学院,河南郑州 450052; 2. 61363部队,陕西 西安 710054;

3. 北京理工大学信息与电子学院,北京 100081; 4. 国土资源部地质信息技术重点实验室,北京 100037)

Cloud Computing Based Parallel Operations on Spatial Vector Data

ZHU Ruoxin,LIU Yang,CHENG Jianqiao,CHEN Ke,XUE Shuai

摘要:研究了提高空间矢量数据运算效率的分布式并行处理方法,基于微软Azure云平台设计了适用于矢量数据并行处理的3种架构方式:中心负载均衡架构、分布式静态负载均衡架构、分布式动态负载均衡架构,并分别搭建原型系统对小规模偏态分布数据和大规模数据进行叠置分析测试。试验结果表明,基于Azure云的分布式动态负载均衡架构版本原型系统可大幅度提高计算效率,对小规模偏态分布数据集可以达到超过10倍的加速比,对大规模数据集的分析计算更是达到了超过40倍的加速比,证明基于Azure云的分布式动态负载均衡架构方法是提高空间矢量数据分析效率的有效方法。

关键词:Azure云平台;并行计算;叠置分析;空间数据处理

一、前言

相对于栅格数据的规则性和高度相似性,大规模矢量数据的计算由于具有数据密集和不规则性的特点给地理信息科学的研究人员带来了巨大挑战[1]。部署大规模矢量数据进行空间分析和叠加运算是一类非常耗时的任务,如飓风路线预测及影响分析等。一次综合分析任务的执行,往往需要对来源多元化的矢量数据进行叠置分析,而对这些数据的综合分析,采用单机系统往往需要数小时甚至几天才能获得分析结果。如何快速获得分析结果,一直是地理信息科学领域研究中的一个重要问题[2]。

随着对分布式并行计算研究的深入,并行和分布式计算成为求解各种计算密集型和数据密集型负载调度问题的有效手段。能提供大规模分布式并行计算基础设施的云计算成为解决空间矢量数据分析耗时问题的新方向。目前国内外科研人员在云计算的框架和应用方面已经展开了一些研究,但与地理信息科学相关的云计算研究项目却很少[3],并且这些项目主要用于数据下载、重投影、影像压缩及智能传感器与数据融合,在空间矢量数据并行处理方面的研究几乎没有。鉴于此,本文在分析微软Azure云平台架构的基础上设计了3种基于Azure云的矢量数据分析并行架构,通过对比测试,针对空间矢量数据分析耗时巨大的问题来选择一种较好的解决方案[4]。

二、Azure云并行处理架构设计

1. Azure云架构分析

微软的云计算服务平台属于PaaS云计算模式,它提供了可以通过互联网访问的基础设施。用户和企业可以利用微软的处理器、存储设施、基础服务把自己的应用程序和数据部署在Azure云平台上运行[5]。Azure云平台有微软强大的分布式集群作支撑,因此具有强大的计算能力和存储能力,并且它具有的一系列保障机制可以确保云端的系统稳定性及数据可靠性。

角色是Azure云平台工作机制中非常重要的概念,部署到Windows Azure上的应用程序被划分为两种角色:Web 角色和Worker 角色。Web 角色主要是提供Web服务,而Worker角色则在后台运行,类似于Windows服务。Worker角色一直运行在后台进行网络资源、数据源的访问及各种功能操作[6]。应用程序在前端部署大量的Web角色服务器来处理各种Web的请求并生成各种任务条目,之后将这些任务条目放入Queue中,位于后台的Worker角色服务器从Queue获取这些作业任务,处理应用程序的业务逻辑。在这个过程中,前端的Web角色工作者服务器和后台的Worker角色服务器之间只能通过Queue来进行通信,应用程序所处理的数据则存储在Blob或Table中。后台的Worker角色对用户是不可见的,用户只需和Web角色进行各种交互。

2. 空间矢量数据并行处理架构设计

为了探索更适用于矢量数据分析的架构方式,结合Azure云平台特点,本文设计了3种并行架构在Azure云平台上测试,对比不同空间矢量数据并行处理架构在Azure云平台上的性能[7]。

(1) 中心负载均衡架构

如图1所示,基于中心负载均衡架构的矢量数据并行处理模式如下:

1) Web角色读取用户的文件选择指令,下载并对矢量数据文件进行解析和预处理,将适合执行下一步分析任务的处理数据存储进Blob,创建相应的任务ID到公共任务池。

图1 中心负载平衡架构

2) 在Web角色完成了任务创建后,Worker角色从任务池中获取任务,并调用函数库来处理。通过这种方法,Worker角色实例实现了任务共享。在每个任务完成后,相应的Worker角色从任务池队列中永久性删除关于这个任务的信息。此外,Worker角色会发送一个消息给指示队列,终止任务来表示这个任务的成功处理。3) Web角色通过不断检查在终止指示队列中的信息数量来更新用户接口中的操作进度状况。在任务完成时,Web角色整理处理结果提交并永久存储在Blob Storage中。结果Blob的URI将会呈现给用户用作下载或进一步处理。

(2) 分布式静态负载均衡架构

分布式静态负载平衡架构与中心负载均衡架构在步骤1)和步骤2)上有所不同(如图1和图2所示),在这种模式下,步骤1)中的Web角色只负责担任需要处理的空间矢量数据文件与系统所能提供的各项操作之间的接口;用户选择需要处理的GML文件及空间操作的类型,Web角色把这些信息当作消息放在输入队列中。而在步骤2)里Worker角色则负责数据的读取、解析、预处理、操作等一系列任务,并且这种架构中Worker角色之间并不共享任务,每个Worker角色只负责处理最初自己所分配的数据部分。

(3) 分布式动态负载均衡架构

在分布式动态负载均衡架构中,相当于静态负载平衡架构步骤2)的内容被分成的两部分(如图2和图3所示),首先是各Worker角色下载并解析分配给的空间矢量数据,然后将预处理之后的数据存入Blob容器并在任务池队列中构造任务ID,最后所有的Worker角色共同完成任务池队列中的任务并将任务完成情况对任务池序列和终止指示队列进行反馈。

三、试验设计

图2 分布式静态负载平衡架构

图3 分布式动态负载平衡架构

目前的矢量空间数据叠加分析过程主要分为过滤和精炼两个阶段。过滤主要是通过引入空间索引或空间对象的近似表示等方法,以较低的计算代价排除叠加结果为空的空间对象。经过排除运算,余下的数据集是可能产生非空叠加结果的空间对象集合。精炼阶段是对候选数据集合进行实际的分析运算。本文分别设计了关于小规模偏态分布数据及大规模规则数据叠加分析的两个模拟试验,对3种架构的处理效率进行了测试。小规模偏态分布数据叠加分析试验模拟了一次台风登陆中国的影响分析。基础数据是中国东南部几个省份的1∶1万基础数据(包括居民地、公路、铁路、水系等要素数据),而分析数据则是台风的行进及引发的强降雨数据。大规模分布数据的叠加分析试验模拟了中国近20年受灾情况综合分析。基础数据是中国范围内1∶5万的基础数据(包括居民地、公路、铁路、水系、植被、工农业设施等要素数据),而分析数据则是近20年的中国自然灾害数据(包括暴雪、地震、台风、洪水、干旱灾害等数据)。

整个试验运算的主要流程如下:

1) 读取基础数据和分析数据(GML格式)。

2) 通过判断矢量数据外接矩形是否相交的方法来对数据进行过滤,实现数据的预处理,获得数据的候选集。

3) 将预处理后的分析数据与基础数据作分析运算,实现数据的精练[8]。

4) 整合并输出运算结果。

四、试验结果及分析

针对3种不同的架构形式,笔者分别开发了原型系统并部署到Windows Azure云平台上进行测试,使用最大100个Azure内核的配额来部署试验。对于中心负载均衡架构系统,一个核分配给用户接口操作,9个核被Web角色用作任务生产者,剩余90个核被Worker角色用作处理者。为了保持试验环境的一致性,在两种分布式负载均衡架构原型系统测试中也继续使用最大90个核作为Worker角色实例。

1. 3种架构下对小规模数据处理测试

图4展示了3种不同架构原型系统面对偏态分布小规模数据集的加速比。从测试结果可以看出,分布式动态负载均衡的整体端对端加速比(从输入数据GML文件到输出分析结果GML文件)超过10倍,运行效率最高[9]。

分布式负载均衡的两种架构方式运行效果比中心负载均衡版本要好,究其原因,当中心架构系统中的Worker角色实例持续增加时,却始终只有一台虚拟机作为Web角色在工作,Web角色的处理速度制约了运行效率的提高。

图4 不同架构下偏态分布小规模数据的测试结果

而在采用2~5个Worker实例试验时,分布式静态负载均衡架构系统的加速比高于动态负载均衡架构,这是因为分布式静态版本中Worker角色之间不共享任务,此版本不需要存储及读取任务池消息队列,从而避免了任务读写的开销。与此同时,动态负载的优势由于Worker实例数量较少还没有完全发挥出其优势[10]。

分布式负载均衡版本加速比无法持续大幅提高的原因是由Azure平台中固有的瓶颈引起的,这其中包括同步文件下载、任务序列的争用及并行访问Blob存储等问题。由于这些固有的瓶颈,这种架构系统在Azure平台上不能通过无限扩展处理器的方式来提高运行效率[11]。

2. 分布式动态复杂均衡架构下的各自进程加速比测试

图5展示了分布式动态负载均衡框架模式中子进程在小规模偏态数据和大规模数据集中花费的最大时间。子进程花销时间是指从该进程某处理器最先启动实例的时间到某处理器最后完成实例所花费的时间。

图5 数据集子进程执行时间测试

较小的数据集因为数据分布不均匀因此整体加速比有所限制。与此相反,大规模的数据由于负载相对均衡,分布式负载均衡框架模式在这类数据集上能获得更好的性能,端对端的加速比超过40倍。用于任务执行模块的加速比超过45倍,而任务创建模块的加速比超过55倍。

五、结束语

云计算是提供虚拟化和高可用性的开放性计算服务平台,微软的Azure云计算平台有着遍布全球的大型数据中心可以提供强大的存储、计算能力。毫无疑问它的兴起给矢量数据的并行处理提供了新的思路和方法。本文设计了3种基于Azure云的空间矢量数据并行处理架构,分别部署相应原型系统对小规模偏态分布数据和大规模数据进行了性能测试。试验结果表明,分布式动态负载均衡框架能大幅提高矢量数据的叠置分析效率,这为矢量数据的高效并行分布式处理提供了一种有效的解决方案。然而,云计算在空间信息处理领域应用的研究才刚刚兴起,本文的研究也仅仅验证了云计算模式能给空间矢量数据的处理带来便利,至于如何才能更好地把地理信息科学应用和云计算结合到一起,让云计算强大的计算能力更好地支持GIS的分析应用,还需作进一步的研究。

参考文献:

[1]程果,陈荦,吴秋云,等.一种面向复杂地理空间栅格数据处理算法并行化的任务调度方法[J].国防科技大学学报,2012,34(6):61-65.

[2]王家耀. 地理信息系统的发展与发展中的地理信息系统[J]. 中国工程科学, 2009,11(2): 10-16.

[3]朱剑.基于虚拟云计算架构的GIS服务资源弹性调度应用研究[J].测绘通报,2013(5):92-95.

[4]李德毅. 云计算中的软件和软件开发[EB/OL]. [2013-11-20].http:∥tech.sina.com.cn/it/2010-06-02/17354262863.shtml.

[5]刘鹏. 云计算[M]. 北京:电子工业出版社, 2011:114-130.

[6]肖苏勇,吴例民,刘文军.基于云计算的地理信息公共服务平台应用与研究[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]蔡蕾. 地理计算并行处理技术及性能评价模型研究[D]. 长沙:国防科学技术大学, 2011.

[9]陈占龙, 吴信才, 吴亮. 基于单调链和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]徐传福,车永刚,王正华.基于并行模拟的多核集群系统性能预测和分析[J].国防科技大学学报,2010,32(5):62-68.

引文格式: 祝若鑫,刘阳,程见桥,等. 基于云计算的空间矢量数据并行处理[J].测绘通报,2015(3):44-48.DOI:10.13474/j.cnki.11-2246.2015.0072

作者简介:祝若鑫(1991—),男,硕士生,主要研究方向为云GIS、网格GIS。E-mail: zhuruoxin@gmail.com

基金项目:国家自然科学基金(41271392;41401462);数字制图与国土信息应用工程国家测绘地理信息局重点实验室开放研究基金(GCWD201105)

收稿日期:2014-03-14

中图分类号:P208

文献标识码:B

文章编号:0494-0911(2015)03-0044-05

猜你喜欢
并行计算
基于Hadoop的民航日志分析系统及应用
基于自适应线程束的GPU并行粒子群优化算法
云计算中MapReduce分布式并行处理框架的研究与搭建
矩阵向量相乘的并行算法分析
并行硬件简介
不可压NS方程的高效并行直接求解
基于GPU的超声场仿真成像平台
基于Matlab的遥感图像IHS小波融合算法的并行化设计
基于枚举的并行排序与选择算法设计
最大匹配问题Tile自组装模型