栅格地理数据并行格式转换引擎*
2015-06-21张帅,李满春,陈振杰等
栅格地理数据并行格式转换引擎*
张帅1,2,3,4,李满春1,2,陈振杰1,2,黄涛1,2,姜晓慧5
(1.南京大学地理与海洋科学学院,江苏南京210023;2.南京大学地理信息技术江苏省重点实验室,江苏南京210023;3.伊利诺伊大学香槟分校地理系,伊利诺伊61801;4.伊利诺伊大学香槟分校国家超级计算机应用中心,伊利诺伊61801;5.国电南瑞科技股份有限公司,江苏南京211106)
如今大规模地理数据正在社会各个部门和组织中迅速积累,但是由于部门利益和历史沿袭等原因,大规模地理数据共享仍然极具挑战,相应共享技术需求仍然极其旺盛。作为地理数据共享的基础方式之一,传统单机地理数据格式转换技术,一方面受限于磁盘读写及带宽瓶颈,另一方面面对日趋庞大的数据规模,已很难满足实际应用需求。因此提出一种针对栅格地理数据的并行格式转换引擎,采用高性能计算集群环境支持大规模栅格地理数据转换共享,大幅降低了大规模栅格地理数据转换过程的时间成本。栅格地理数据并行格式转换引擎采用基于公共接口的设计理念,框架灵活、具有良好的扩展性,支持地理数据格式的读写自定义以及新数据格式添加,能够实现接入数据格式间的任意两两转换。为验证引擎框架及其处理效率,在Lustre并行集群环境下以格网数据交换格式(国家地理空间数据交换格式)向常见栅格地理格式的转换为示例进行了测试实验。结果表明,栅格地理数据并行格式转换引擎能够在8个节点Lustre集群中达到7.54的良好并行加速比。
栅格数据格式转换;并行计算;高性能计算;地理计算;Lustre并行文件系统
地理信息共享技术经过几十年的发展和讨论,形成了许许多多的方案方法[1],其中具有代表性的方法可分为三类:地理数据格式转换技术、基于中间件技术的地理数据共享技术以及基于网络服务的地理数据互操作技术[2-3]。地理数据格式转换是最为基础的地理信息共享方式,其目的是将存储在一个系统中的地理数据通过数据转换的方式导入到目标系统中,实现数据共享[4]。基于中间件技术的地理数据共享为前端用户提供了统一的数据视图,很好地处理了数据自治与统一的关系,在更广的范围上和更多样化的平台下,支持了地理数据的共享和互操作[1,5-9]。基于网络服务的数据互操作构建在Web服务标准基础之上,如开放地理空间信息联盟(Open Geospatial Consortium,OGC)制订的网络地图服务(Web Map Service,WMS)和网络要素服务(Web Feature Service,WFS)等服务组件,可以在超文本传送协议(HyperText Transfer Protocol,HTTP)之上通过基于可扩展标记语言(Extensible Markup Language,XML)的消息传递机制实现与其他软件程序之间的交互[2-3]。
然而,由于地理数据本身的异构性、语义的模糊、描述文档的缺失或者存储结构的差异等问题,大规模地理数据共享至今仍然极具挑战性[5,10-12]。中间件技术与网络服务技术虽能够在网络端大范围实现数据共享与互操作,但数据访问与处理速度往往较慢,应用层对数据的控制能力较弱,且现实中许多组织部门并不愿意开放数据库接口而仅仅是将数据以通用格式的形式发布提供下载共享[13-15];随着地理信息采集技术的长足发展,地理数据规模开始急剧膨胀[16],存储在美国国家航空航天局地球观测系统的数据和信息系统(NASA EOSDIS)中的遥感影像数据已经超过3PB,而且还在以每天5TB的速度增加[17];云计算、大数据、流计算等新兴技术持续涌现,多核并行计算和多节点集群处理正在变得越来越常见,促使传统地理计算模式向数据密集型高性能计算模式演变[18-19],传统串行地理数据格式转换技术在处理大规模地理数据时已是力不从心,更无法有效利用现今多核、多节点并行处理的巨大优势。
地理数据格式转换过程属于典型的数据密集型处理任务,单机并行处理,如采用多线程OpenMP、GPU等技术,虽能够带来一定的效率提升,但是数据I/O瓶颈明显且难以实现大规模处理水平扩展。基于Hadoop技术的集群架构,采用Hadoop分布式文件系统及MapReduce并行编程模型,适合处理超大规模集群计算,而在中小规模集群环境下优势不明显[19-20],且Hadoop对地理信息系统(Geographic Information System,GIS)组件支持仍处于探索阶段,并不适合进行大范围GIS业务处理[20-21]。高性能计算集群由于发展时间早,技术较为成熟,在业务部门拥有较为广泛的技术基础,是研究实现地理数据并行格式转换技术的理想平台。
本文在Lustre高性能集群技术基础上,提出一种面向栅格地理数据的并行格式转换引擎(Parallel Geo-Raster data Conversion Engine,PGRCE),使得栅格地理数据格式转换能够在高性能计算集群的支持下进行,以达到快速高效共享地理数据的目的。Lustre文件系统是由OpenSFS (Open Scalable File Systems incorporation)开发的一个开源、高性能的分布式并行全局文件系统[22]。在高性能计算中,Lustre并行文件系统具有极其广泛的应用,全球排名前100的高性能计算机系统中,超过60%的高性能计算机使用了Lustre文件系统[22]。Lustre针对大文件的读/写做了优化,可以为集群系统提供高性能的I/O吞吐率、全局数据共享环境、节点的失效冗余处理,较好地满足了高性能计算集群系统的需要[23-24]。
PGRCE采用基于公共接口的设计方法,框架灵活且具有很好的扩展性,能够支持地理数据格式的自定义以及添加新的数据格式,实现接入地理数据格式间的任意两两转换。PGRCE框架中包括三个主要部分:栅格数据公共接口、格式转换与扩展机制以及引擎并行调度策略。PGRCE统一使用栅格数据抽象数据模型作为公共接口解读不同格式栅格数据;引擎格式转换与扩展机制规定地理数据格式转换实际发生的方式,并提供开放接口以备新格式加入;并行调度策略采用静态与动态相结合的负载均衡方法平衡各进程间的数据处理,保障格式转换引擎高效健壮运行。
1 栅格地理数据抽象数据模型
栅格地理数据抽象数据模型居于PGRCE的中间层,连接着数据源格式与目标格式,是PGRCE所有支持格式的公共接口,用于描述解析不同格式的栅格地理数据。栅格地理数据格式多种多样,地理数据格式转换库(Geospatial Data Abstraction Library,GDAL)官网罗列了100余种栅格数据格式[25],但是栅格数据大都基于像元,具有格网结构,只是在像元组织结构或者附加信息描述上各有不同,这种特性构成了抽象数据模型设计的基础。
PGRCE抽象数据模型主要由栅格数据集(Dataset)、栅格波段(RasterBand)、空间参考(SpatialReference)、元数据(Metadata)、栅格数据属性表(RasterAttributeTable)等部分构成,参见图1。Dataset对象中定义了栅格数据的通用信息,表征着栅格地理数据文件或数据库,但是每种格式必须实例化各自的数据集对象,以个性化定义数据格式的读写与操作。Dataset对象同时关联着SpatialReference对象以及Metadata对象,其中空间参考信息采用OpenGISWell Known Text字符串定义,由SpatialReference对象维护,Metadata则包含一系列由键值对组成的描述项。
图1 栅格地理数据抽象数据模型Fig.1 Abstract datamodel of PGRCE
Dataset对象通常由多个RasterBand对象共同组成,RasterBand负责具体存储栅格数据,因此与数据直接相关的RasterAttributeTable以及RasterOverviews对象都直接与RasterBand对象相关联,用于描述相应栅格波段特征。由于栅格数据的像元点坐标涉及两个坐标体系(像素坐标和地理坐标),因此抽象数据模型采用变换方程式(1)描述两者的关系。
其中,(X,Y)为像元点地理坐标,(xp,yp)为像元点像素坐标,a1~a6为坐标转换参数。像素坐标系以图像的左上角点为原点,当图像格网为正南正北走向时,a3=a5=0,(a1,a4)为像素坐标原点在地理坐标系中的坐标,a2表示X方向像元分辨率,a6则为Y方向像元分辨率。
2 数据格式转换与扩展机制
由于现实中栅格地理数据格式数量并不确定,PGRCE采用一种动态管理机制提供数据格式的动态扩展,允许新格式以自定义的方式装入,框架如图2所示。新格式只需要实现由Dataset对象和RasterBand对象定义的数据组织框架,继承Dataset与RasterBand类并定义其独特的数据读取方式、元数据获取方式、仿射变换系数以及数据文件创建方式等,完成由Provider定义的读写接口,并在系统中注册,就能够参与PGRCE支持的格式转换过程。另外,PGRCE在设计时以GDAL Raster为参考栅格数据标准,在实现时兼容GDAL数据源。
图2 栅格地理数据并行格式转换引擎架构Fig.2 The architecture of PGRCE
PGRCE同时采用一种专门的机制——Provider Manager(PM),管理注册的格式。PM在PGRCE中扮演一种信息字典的角色,将有前端传入的转换命令翻译成PGRCE可以处理的指令,指导PGRCE进行数据装载与输出。当PGRCE试图打开一个数据集时,其也需要在PM中查找相应的注册格式,获取对应格式的Provider,调用Provider的自定义接口完成数据集的读取过程。因此,新的数据格式必须在PM中注册,只有这样其才有可能参与到数据格式转换的过程。
PGRCE首先使用抽象数据模型解析源数据,建立源数据信息与目标数据参数的映射关系,根据输入参数的具体指令完成转换操作,其处理流程如图3所示。某些地理数据格式的数据集可能含有嵌套关系,PGRCE采用递归调用的方式逐层处理,而如果前端命令要求对目标数据集进行某种处理,PGRCE则先将处理后的结果保存在虚拟数据集中,完成裁制后写入目标数据格式文件。
图3 栅格地理数据并行格式转换引擎处理流程Fig.3 Workflow of PGRCE
3 引擎任务并行调度策略
PGRCE采用主从并行模式设计,包含两种角色进程:管理进程和计算进程。管理进程主要负责公共事务,如创建目标数据格式文件、数据任务划分、任务分配与调度、计算结果收集统计等,而计算进程则接收指令并负责完成具体数据块格式转换操作,周期性地获取任务、处理格式转换任务以及反馈处理结果,如图4所示。管理进程对源数据文件的划分是在其元数据基础上的逻辑划分,每个划分数据块由式(2)定义:
式中:xn为数据块在xp方向的宽度,通常取数据集栅格宽度;yn为数据块在yp方向上的最大跨度;ε表示栅格数据集中包含的波段数;τ为数据集中每个像元所占的字节数;v0表示数据块的最大容量。对于所有划分结果,管理进程使用一个列表和一个块栈来进行维护。
图4 栅格地理数据并行格式转换引擎主从任务调度模式Fig.4 Master-slave task scheduler in PGRCE
当块栈非空时,管理进程从块栈中取出待处理数据块,然后与从空闲计算进程队列中取出的计算进程组合构成操作指令,发送给相应计算进程,同时在数据块处理统计表中记录进程运行开始时间戳。计算进程接收到管理进程发送的指令后,首先根据数据块的描述信息从源数据中读取相应的数据块,交由转换内核函数进行数据格式转换,并写进目标数据格式块文件,同时将进程处理统计信息发送给管理进程。管理进程接收到进程成功执行的反馈信息之后,将进程入栈作为空闲进程准备再次使用,同时记录进程结束处理时间;如果管理进程收到计算进程反馈的是失败消息或计算进程超过一定时间仍没有反馈,管理进程将强制计算进程终止操作,收回计算资源,并为该数据块重新分配计算资源加以处理。
格式转换操作属于数据密集型计算任务,大规模数据读写效率直接左右转换效率。因此,PGRCE采用并行文件系统Lustre管理栅格地理数据,并使用MPI-IO处理多节点多进程并发访问,加快数据的读写效率。然而,需要指出的是,管理进程并不与地理数据直接交互,其数据划分策略基于地理数据的元数据,计算进程负责数据的具体读写与处理,只有这样才能最大程度上减少进程间的通信,节约计算资源,提高并行处理效率。
4 应用实例
为了检验PGRCE架构和性能,将大规模格网数据交换格式文件(CNSDTF-DEM)转换为常见栅格数据格式GeoTIFF作为测试用例。格网数据交换格式是中国地球空间数据交换格式国家标准(GB/T 17798—2007)中定义的栅格数据格式,其数据文件由文件头以及数据体两部分共同组成。文件头中定义了数据的一般性信息,包括数据起始点、栅格分辨率、栅格大小、投影参考信息、压缩方法以及栅格值数据类型等,数据体则为数值矩阵,文件头中定义的压缩方法不同,数据组织略有不同,如图5所示。
图5 格网数据交换格式数据文件组成Fig.5 Data structure in CNSDTF-DEM
使用PGRCE进行CNSDTF-DEM数据格式转换,首先需要按照公共接口实现CNSDTF-DEM数据格式的Provider,并在PM中注册,接入PGRCE框架。CNSDTF-DEM数据格式较为简单,PGRCE中一个CNSDTF-DEM数据文件表示一个Dataset对象,仅含有一个RasterBand对象。而空间参考信息可以从文件头文件[CoordinateSystemType]中读取,实例化为SpatialReference对象。PGRCE以一行栅格数据为数据划分的基本单位,每个数据块大小上限取v0=320MB,并由式(2)计算得到分块划分行数。
测试程序运行在一个由9台高性能计算节点构成的Lustre并行计算机集群(1个元数据服务器(MetaData Sever,MDS),9个元数据存储目标(Object Storage Targer,OST),每个节点由8核Intel(R)Xeon(R)CPU E5-2603、16GB内存构成,共享8TB Lustre外存)上,测试数据由程序产生,数据量大小共32GB。分别测试了该数据在串行算法、单机并行处理以及集群并行处理情况下的转换效率,结果如图6所示。由图中可以看出,使用串行算法需要近32min才能将测试数据处理完成,在单机并行环境下使用3个计算进程最快可以在约14min内完成处理任务,达到2.24的加速比,在集群并行环境下使用8个计算进程可以在约4min内完成,获得7.54的加速比。
图6 栅格地理数据并行格式转换引擎测试结果Fig.6 PGRCE testing results
数据格式转换操作是典型的数据密集型计算任务,I/O效率从根本上决定了任务处理效率。PGRCE在并行策略设计上采用主从并行模式,进程间仅有少量指令通信,通信代价微乎其微,而各从进程又单独处理计算任务,在没有读写瓶颈制约的条件下,理论上并行转换引擎可以达到与从进程数量正相关的加速比。
单机共享磁盘并行处理环境下,1个管理进程,3个计算进程,并行加速比最好,但由于受制于单个硬盘读写速度限制,进程间易发生硬盘读写竞争,并行处理加速比只能够达到2.24。集群并行处理环境下,由于Lustre并行文件系统使用条带化数据划分存储技术,9个OST理想情况下数据读写效率能够达到9倍线性效果,因此测试程序在8个计算进程条件下能够达到7.54的加速比。
5 结论
地理数据格式转换技术作为实现数据共享的基础工具,仍然在地理数据共享问题上扮演着重要角色。但是,随着数据处理规模日趋庞大以及多核计算和大规模集群计算日益普遍,传统串行数据格式转换技术已经难以胜任,因其很难有效充分利用多核并行处理的优势。因此,本文面向并行计算软硬件环境,提出了PGRCE,实现了大规模栅格地理数据格式转换操作的并行处理,大大提高了栅格地理数据格式转换效率。测试结果表明,PGRCE具有良好可扩展性,能够在大规模数据处理中表现出良好的并行加速效果,适合在集群环境下支持大规模数据格式转换并行处理操作。
References)
[1]Sheth A P.Changing focus on interoperability in information systems:from system,syntax,structure to semantics,in interoperating geographic information systems[M]// Goodchild M,Egenhofer M,Fegeas R,et al.Interoperating Geographic Information Systems,Springer US,1999,495: 5-29.
[2]龚健雅,高文秀.地理信息共享与互操作技术及标准[J].地理信息世界,2006,4(3):18-27.GONG Jianya,GAOWenxiu.Sharing and interoperability of geospatial information[J].Geomatics World,2006,4(3): 18-27.(in Chinese)
[3]Gong J Y,Shi L T,Du D S,et al.Technologies and standards on spatial data sharing[C]//Proceedings of 20th ISPRS:Geo-imagery Bridging Continents,2004,34:118-128.
[4]Bishr Y.Overcoming the semantic and other barriers to GIS interoperability[J].International Journal of Geographical Information Science,1998,12(4):299-314.
[5]Devogele T,Parent C,Spaccapietra S.On spatial database integration[J].International Journal of Geographical Information Science,1998,12(4):335-352.
[6]Kavouras M,Kokla M.A method for the formalization and integration of geographical categorizations[J].International Journal of Geographical Information Science,2002,16(5): 439-453.
[7]Stoimenov L,Djordjevic-Kajan S.An architecture for interoperable GISuse in a local community environment[J].Computers&Geosciences,2005,31(2):211-220.
[8]Butenuth M,v.Gösselnb G,Tiedgec M,et al.Integration of heterogeneous geospatial data in a federated database[J].ISPRS Journal of Photogrammetry and Remote Sensing,2007,62(5):328-346.
[9]Paul M,Ghosh S K.A framework for semantic interoperability for distributed geospatial repositories[J].Computing and Informatics,2008,27(1):73-92.
[10]Gupta A,Marciano R,Zaslavsky I,et al.Integrating GIS and imagery through XML-based informationmediation[C]// Proceeding of ISD'99 Selected Papers from the International Workshop on Integrated Spatial Databases,Digital Inages and GIS,1999:211-234.
[11]Paudyal D R,Mcdougall K,Apan A.The impact of varying statutory arrangements on spatial data sharing and access in regional NRM bodies[J].Isprs Annals of Photogrammetry Remote Sensing&Spatial Information Sciences,2014,Ⅱ-8:193-197.
[12]Chao H,Chou T Y.Empirical research on organizational infrastructuremodel impact to spatial data sharing[J].Annals of GIS,2013,19(4):263-271.
[13]Safra E,Kanza Y,Sagiv Y,et al.Ad hoc matching of vectorial road networks[J].International Journal of Geographical Information Science,2013,27(1):114-153.
[14]Wang Y D,Gong JY,Huang JT,et al.The data transfer method based on geo-spatial data transfer format[J].Acta Geodaetica et Cartogaphica Sinica,2000,29(2):142-148.
[15]Wong SH,Swartz SL,Sarkar D.A middleware architecture for open and interoperable GISs[J].IEEE Multimedia,2002,9(2):62-76.
[16]Wang S,Cao G,Zhang Z,et al.A cyber GIS environment for analysis of location-based social media data,in locationbased computing and services[M].Hassan A K,Amin H.2nd ed.USA:CRC Press,2013:187-205.
[17]VatsavaiR R,Ganguly A,Chandola V,etal.Spatiotemporal data mining in the era of big spatial data:algorithms and applications[C]//Proceedings of the 1st ACM SIGSPATIAL InternationalWorkshop on Analytics for Big Geospatial Data 2012,ACM:Redondo Beach,California,2012:1-10.
[18]Hey T,Tansley S,Tolle K.The fourth paradigm:dataintensive scientific discovery[M].USA:Microsoft Research,2009.
[19]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013,50(1):146-169.MENG Xiaofeng,CIXiang.Big datamanagement:concepts,techniques and challenges[J].Journal of Computer Research and Development,2013,50(1):146-169.(in Chinese)
[20]李建江,崔健,王聃,等.MapReduce并行编程模型研究综述[J].电子学报,2011,39(11):2635-2642.LI Jianjiang,CUI Jian,WANG Dan,et al.Survey of MapReduce parallel programmingmodel[J].Acta Electronica Sinica,2011,39(11):2635-2642.(in Chinese)
[21]王尔琪,黄骞,滕寿威.地理空间信息并行处理架构与系统研究[J].测绘与空间地理信息,2013,36(S1):1-7.WANG Erqi,HUANG Qian,TENG Shouwei.Parallel GIS architecture and system[J].Geomatics&Spatial Information Technology,2013,36(S1):1-7.(in Chinese)
[22]OpenSFS.About Lustre File System[EB/OL].[2015-06-20].http://opensfs.org/lustre/
[23]张钰森,吴庆波,谭郁松.基于Lustre的大规模文件系统拥塞控制算法的研究[J].计算机研究与发展,2011,48(S1):189-193.ZHANG Yusen,WU Qingbo,TAN Yusong.An investigation of a congestion control algorithm for large scale file system based on Lustre[J].Journal of Computer Research and Development,2011,48(S1):189-193.(in Chinese)
[24]张媛,卢泽新,刘亚萍.NFS over Lustre性能评测与分析[J].计算机工程,2007,33(10):274-276.ZHANG Yuan,LU Zexin,LIU Yaping.Performance evaluation and analysis of NFS over Lustre[J].Computer Engineering,2007,33(10):274-276.(in Chinese)
[25]GDAL/OGR.GDALRaster Formats[EB/OL].[2014-03-07].http://www.gdal.org/formats_list.html.
Parallel geo-raster data conversion engine
ZHANGShuai1,2,3,4,LIManchun1,2,CHEN Zhenjie1,2,HUANG Tao1,2,JIANGXiaohui5
(1.School of Geographic and Oceanographic Sciences,Nanjing University,Nanjing 210023,China;2.Jiangsu Key Lab of Geographical Information Technology,Nanjing University,Nanjing 210023,China;3.Department of Geography,University of Illinois at Urbana-Champaign,Illinois 61801,United States;4.National Center for Supercomputing Applications,University of Illinois at Urbana-Champaign,Illinois61801,United States;5.Nari Technology Development Limited Company,Nanjing 211106,China)
Large scale geo-raster data have been accumulated all over the world in different departments and organizations during the past decades,but quite often in a variety of data formats,resulting in geospatial data sharing as an everlasting headache.Despite of various methodologies created,geospatial data conversion hasalwaysbeen a fundamental and efficientway for geospatial data sharing.However,as the size of data tends to be larger and larger,themethodologywhich wasbounded by limited disk data transfer rateand bandwidth,needsa re-write and upgrade.A parallel geo-raster data conversion engine(PGRCE)was proposed to dealwithmassive geo-raster data sharing efficiently by utilizing high performance computing technologies.PGRCE was designed in an extendable and flexible framework,and was capable of customizing the way of reading and writing of particular spatial data formats.An experiment,in which geo-raster data in the CNSDTF-DEM format(Raster spatial data defined in Chinese Geospatial Data Transfer Format Standard)were transferred using PGRCE in a parallel file system(Lustre),were conducted to validate the engine framework and its performance.Results show that PGRCE can achieve a 7.54 speedup on a Luster cluster of 8 nodes..
geo-raster data format conversion;parallel computing;high performance computing;geocomputation;Lustre cluster
P208
A
1001-2486(2015)05-009-06
10.11887/j.cn.201505002
http://journal.nudt.edu.cn
2015-03-02
国家863计划资助项目(2011AA120301);南京大学研究生科研创新基金资助项目(2013CL09)
张帅(1988—),男,安徽亳州人,博士研究生,E-mail:zhangshuai.nju@gmail.com;陈振杰(通信作者),男,副教授,博士,硕士生导师,E-mail:chenzj@nju.edu.cn