论文部分内容阅读
随着新一代网络技术的不断发展,高性能计算平台得到了广泛的应用,并逐渐深入到生产、科研和商业等领域。而高性能计算平台的不断完善使得大规模空间数据处理成为可能。GIS作为一门计算机技术与地学方法的交叉学科,也不断引入分布式计算平台解决海量数据处理的难题。然而,基于高性能计算平台的GIS研究还局限于空间数据管理、查询等基本的操作。作为GIS领域的核心部分,空间分析方法的高效并行处理一直以来都存在较大的研究空缺。空间分析,因其特殊的数据多样性和功能复杂性,成为在分布式并行计算平台上实现GIS核心功能的难点。本文针对当前海量化、模型复杂化的高效并行空间分析需求,在分布式空间数据库技术与并行计算相关理论基础上,提出了缓冲区分析、K-means聚类分析和单源最短路径分析的在分布式环境下的并行算法,探讨了以上三种空间分析操作在混合并行编程环境下的性能优化方法,并在分布式空间数据库基础上进行了高效并行空间分析原型系统实验。本文主要内容包括:J)研究了并行计算、并行编程环境及分布式空间数据库相关理论。从并行计算的基本模式、并行计算的分类、并行算法的设计方法及评测方法几个方面,介绍了并行计算的基本理论,分析了当前主要的两种并行程序开发模式(消息传递与共享存储)的基本特点,并阐述了MPI+OpenMP混合并行编程环境及其特点。从分布式空间索引技术、空间数据分片和数据库集群技术,论述了分布式空间数据库的关键技术。针对当前分布式系统设计中分布式数据存储集群与分布式处理集群相互独立的问题,提出一种将空间数据存储集群与空间数据处理集群集成的分布式计算模型DSDB/DSDP集成模型)。2)针对MPI+OpenMP的混合并行编程环境与DSDB/DSDP集成分布式模型的特点,按照最小化通信、最大化本地处理原则及并行计算的设计方法,提出了K-means聚类分析、缓冲区分析、单源最短路径分析的并行算法。针对K-means聚类分析和缓冲区分析两种可以进行数据分解处理的空间分析操作,设计了基于消息传递的并行算法。针对现有的求解单源最短路径的并行Dijkstra算法效率不高问题,用队列式存储改进了Dijkstra算法依赖堆栈存储的单路搜索方式,实现了MPI环境下并行多路搜索的任务调度,并用OpenMP多线程处理每条路径的求取过程。通过实验对比了并行算法与串行算法处理用时,验证了三种并行空间分析算法的加速效率。3)针对空间数据访问效率、分布式负载均衡、多线程内存管理三个方面问题,研究了分布式环境下并行空间分析算法的优化方法。针对空间数据存储与组织对数据访问过程的效率影响,提出一种VoMR-tree索引方法,优化空间数据访问的重复性,从而提高了缓冲区分析算法和K-means算法的执行效率。针对混合并行编程环境的特点,分析了三种空间分析算法的负载均衡方法,通过实验验证了静态负载均衡策略优化K-means算法,通过动态负载均衡策略优化了缓冲区分析算法。针对多线程处理过程中的内存分配管理方法,研究了等尺度内存分配与竞争式内存分配方法对三种空间分析算法执行过程的局部加速效果。4)针对分布式空间数据库环境,整合并行算法设计和并行处理的优化方法,设计和实现了分布式并行空间分析的原型系统。通过增加分布式并行计算的节点数目,分析了原型系统在不同规模集群环境下的执行效率及变化趋势,验证了本文设计的并行算法和混合环境下优化方法的高效可行性。实验结果表明,通过分布式进程与多线程处理两级并行处理,有效的解决了空间分析中不同粒度任务的并行计算问题,充分利用MPI和OpenMP两种并行环境的优点,其加速比、可靠性和可扩展性都得到了提升。