论文部分内容阅读
地形可视性分析研究是 GIS的重要组成部分,其广泛服务于国民经济发展和国防建设等领域。随着对地观测等技术的快速发展,串行可视性算法面对不断增长的数据量变得力不从心,越来越难满足广大用户特别是普通用户对地形可视性服务的需求。多核计算机的出现,特别是桌面级多核计算机的出现,普通用户对并行地形可视性算法的实现成为可能。地形可视性主要可以分为可视域计算和累积可视性计算两部分,本文将分别分析这两部分算法的计算特征,依据算法的计算特征和顾及普通多核计算机的硬件环境,对这两部分算法的并行化设计开展研究,主要内容包括以下三个方面: (1)可视域并行算法的并行化设计 依据前人研究,将可视域串行算法划分为:逐点无复用视域算法和逐点有复用视域算法,深入研究两类算法的计算特征,并对数据进行划分和分配。逐点无复用视域算法,使用 Zigzag数组遍历方式;对逐点有复用视域算法,结合算法结果有复用的特性,使用一维存储结构代替传统的二维存储结构。 (2)累积可视性并行算法的并行化设计 针对累积可视性并行算法的计算特点,设计并行算法的数据物理拆分和分发策略,并利用和嵌套可视域并行算法完成实现。数据拆分策略包括行划分和块划分方式,行划分方式对数据逐行划分,块划分方式将DEM格网数据划分成子块;数据分发策略包括静态数据分配方式和动态数据分配方式,静态分配方式使处理单元循环计算划分数据,动态分配方式由处理器按照“先结束先分配”方式计算划分数据。 (3)桌面级多核计算机平台上并行算法的实现 设计在普通多核计算机的处理器资源上,包括 CPU和 GPU计算资源,使用OpenMP、OpenCL实现可视域并行算法,使用MPI实现累积可视性并行算法,并且设计相应的实验,实验表明,并行算法较好的利用了普通多核PC的硬件优势,获得了较好的加速效果,最终结果令人满意。