本课题研究针对传统地图代数实现方法应用于海量栅格数据计算时效率低下的问题,拟在一种全新的GPU 并行编程模型和软件环境CUDA上,利用地图代数算子体现出来的基于栅格点集、处理流程相对固定、数据处理具有内在的并行性等特点,将传统的串行算法映射到GPU 并行处理架构上,旨在从栅格数据存储模型、串行算法的并行化映射、计算机图形处理器资源的自适应参数调整等多角度来研究地图代数空间分析的并行机制,从而总结出一种针对栅格数据空间分析的自适应的并行算法实现方法,并在此基础之上研究一种适应于空间分析并行算法的栅格数据并行分布化存储模型,寻求与之相适应的数据索引机制及内存调度策略。课题研究将成熟的地图代数理论与现代计算机技术发展所带来的丰富高效的计算资源相结合,使得利用GPU实现栅格数据的高性能并行计算成为可能,为空间分析算法的优化研究提供一种新的解决思路。
Map Algebra;Spatial Anaysis;Compute Unified Device Archite;Parallel Computation;
课题研究针对传统地图代数实现方法应用于海量栅格数据计算时效率低下的问题,在一种全新的GPU 并行编程模型和软件环境CUDA上,利用地图代数算子体现出来的基于栅格点集、处理流程相对固定、数据处理具有内在的并行性等特点,将传统的串行算法映射到GPU并行处理架构上,旨在从栅格数据存储模型、串行算法的并行化映射、计算机图形处理器资源的自适应参数调整等多角度来研究地图代数空间分析的并行机制,从而总结出一种针对栅格数据空间分析的自适应的并行算法实现方法。 课题工作首先深入研究CPU+GPU异构环境下行程序设计的原理及相关理论的基础上,剖析可能影响并行性能的主要指标和协调方法;然后对局部算子的串行实现原理进行研究,从中筛选出可并行的算子集合;接着在CUDA编程模型上依次实现了可并行局部算子的并行映射,对相同算法在CPU和GPU两种架构下的性能指标进行了比较和分析;进而研究如何在NVIDIA三种不同级别的GPU硬件环境下最大化使用运算资源的原理和方法,设计并实现一种并行算法参数的自动调整方法;同时,采用数据分割策略将空间分析算子的计算过程分割成若干子任务进行,通过运算与数据传输的重叠,隐藏数据传输时间,从而提高空间分析算子的运算速度;并针对CUDA编程模型中两步数据传递模式所引起的数据传输效率低下的问题,采用基于锁页主机内存的数据传输方法,加速外存数据块经由锁存到显存的传输过程;最后利用NVIDIA不同级别显卡中提供的多个数据传输引擎和核函数引擎, 研究基于Stream操作对分块数据的传输和计算进行控制的方法,以最大程度地重叠数据传输时间与核函数计算时间,提高数据传输与执行的并发性。 课题研究将成熟的地图代数理论与现代计算机技术发展所带来的丰富高效的计算资源相结合,使得利用GPU实现栅格数据的高性能并行计算成为可能,为空间分析算法的优化研究提供一种新的解决思路。