论文部分内容阅读
近年来,随着智能手机、车载定位设备等一系列基于位置终端设备的迅速普及,每年全球都会产生大规模的空间位置信息,基于位置服务的应用与人们的生活出行密切相关。空间数据具有数据体量大、表示形式多样、处理过程复杂的特点,因此,如何有效地处理大规模空间数据,以满足基于位置服务的应用需求,显得尤为重要。目前,大部分针对空间数据处理技术的研究,主要分为两类,一是在CPU平台下改进空间数据处理算法;二是利用分布式系统来提高空间数据处理能力。然而,传统串行CPU方式的空间数据处理技术面对日益增长的空间数据,逐渐显现出性能短板。与传统CPU相比,图形处理器GPU具有强大的多核并行计算能力。快速发展的通用计算GPU技术以及CUDA编程框架,为空间索引技术和空间查询技术的性能提升提供了新的途径。本文结合GPU技术,对空间数据的索引构建技术和空间查询技术进行了深入研究,主要研究内容如下:首先,提出了一种基于CUDA的静态R树索引构建方法。该方法采用自建的基于数组结构体方式的线性化索引结构,并进行了对传统基于静态R树的构建方法的并行化分析。针对GPU共享内存资源的特性,该构建方法中采用了一种两阶段的索引构建方式,可以有效利用共享内存资源高速读写能力。其次,在自建静态R树索引的基础上,提出了基于CUDA的空间范围查询方法,主要是对范围查询中精过滤阶段进行GPU并行设计。为了解决范围查询中粗过滤阶段效率低下的问题,利用Geohash网格对地理空间的划分,进一步提出了GPU平台的基于Geohash网格的范围查询方法。再次,结合本文提出的两种范围查询方法,采用将k最近邻查询转化为多次范围查询的方式,分别给出了GPU平台下基于CUDA的k最近邻查询方法和基于Geohash网格的k最近邻查询方法。为了提高查询效率,给出了k最近邻查询方法中扩展框的动态扩展策略。最后,考虑到k最近邻查询效率受范围查询方法的限制,利用Geohash编码的空间邻接性,提出了基于CUDA的近似k最近邻查询方法G-AkNN,并给出了基于相邻Geohash编码的扩展搜索策略,以降低查询结果的误差。结合本文的实验结果可知,相比于传统CPU方式,本文给出的基于CUDA的静态R树索引构建方法以及相应的空间查询方法在数据量较大时有明显的效率提升,能有效地满足大规模地理空间数据场景下的应用需求。