论文部分内容阅读
地理空间分析是地理信息科学及遥感应用领域的研究热点。随着对地观测技术的快速发展,地理空间分析面临着数据量庞大、计算过程复杂密集和计算类型多样的难题。CPU(Central Processing Unit,简称CPU)集群、GPU(Graphics Processing Unit,简称GPU)集群等新一代高性能计算硬件架构的发展,为受制于计算性能而难以开展的大区域、多尺度、异构地理空间分析提供了契机;采用高性能并行计算技术以提高地理空间数据的计算效率十分迫切和必需。如何实现并行计算过程中的负载均衡是高性能地理空间分析中的关键问题与难点。因此,发展高效、适用性强的地理空间分析负载均衡并行技术,具有重要的研究意义和巨大的应用前景。现有的地理空间分析负载均衡并行技术多集中于调用开源并行算法库中的并行化语句实现对传统地理空间分析串行算法的简单并行化封装;此外,采用的空间数据划分、并行任务调度等负载均衡策略较为单一、粗略,未能顾及不同空间数据类型的结构特征、不同地理空间分析类型的算法特征、不同并行计算过程的粒度特征及并行计算环境的架构特征,极易引起并行计算过程中的任务负载失衡,造成并行加速效率低下。为解决上述问题,本研究面向CPU/GPU混合异构的并行硬件架构,围绕地理空间分析中具有代表性的典型算法与实际应用,即矢量多边形数据空间分析与地理栅格数据空间分析,设计并实现与其数据特征、计算特征和并行粒度相适应的负载均衡并行技术。具体来说,研究通过构建计算复杂度模型,以有效指导矢量多边形空间分析算法并行化过程中的数据划分,从而缓解并行计算中的数据倾斜;通过顾及栅格数据有效计算量和数据粒度分解特征,实现栅格数据空间分析算法并行化过程中的数据均衡分配及动态调度;研发自适应负载均衡并行模型,设计适应CPU/GPU混合异构的并行方法及自适应负载均衡方法,实现对不同并行计算环境、不同算法类型及不同数据量的良好适应性。研究的主要内容和贡献包括:(1)基于计算复杂度的矢量多边形空间分析负载均衡并行方法。围绕矢量数据空间分析中的典型应用类型——矢量多边形数据空间分析,针对传统数据划分方法的划分结果不能反映多边形的实际计算量,且极易引起数据倾斜的问题,研究分别针对数据密集型和计算密集型多边形空间分析类型构建多边形复杂度计算模型,用以指导矢量数据的均衡划分。通过分析不同算法类型的原理与特征,筛选可能影响算法计算效率的影响指数;构建多边形模拟数据集,通过模拟实验确定对算法效率实际有影响的指数及对应的影响程度顺序,并以此构建多边形复杂度计算模型。此外,考虑到多边形形态各异、复杂多样的数据结构特征,根据具体算法原理设计复杂多边形的分解方法,从而进一步缓解并行计算过程中的多边形数据倾斜。在并行CPU集群上进行算法并行效率及负载均衡性能的测试。该集群包含9个并行计算节点,每个计算节点包含2颗Intel(R)Xeon(R)E5-2620 CPU;各CPU的规格为2.00 GHz主频、六核十二线程、16GB内存。实验结果表明,基于多边形计算复杂度的并行方法较传统并行方法可大大缩短算法的运行时间,并取得良好的加速比和稳定的负载均衡性能。采用上述方法实现的多边形栅格化并行算法在计算5.5 GB的多边形数据集时,可将运行时间从1668.45秒减少至86.95秒,并取得19.19的最高加速比;实现的多边形相交计算并行算法在求解1,207,826个相交多边形组时,可将运行时间从1497.24秒减少至85.97秒,取得的加速比峰值为17.42。此外,实现的并行算法对不同多边形数据类型和不同算法类型均具有良好的适用性。(2)顾及有效计算量的多粒度栅格空间分析负载均衡并行方法。常用的栅格数据划分方法未能顾及栅格有效计算量,且调度方法极易引起计算节点间的并行阻塞,并造成空闲节点处于无效等待状态。为了解决上述问题,研究根据不同栅格空间分析的算法特征将其分为局部型和全局型计算类型,并以非空值栅格单元个数作为栅格有效计算量的度量标准。针对局部型栅格空间分析类型,研究提出考虑栅格有效计算量的不规则数据划分方法和多粒度动态并行调度方法;针对全局型栅格数据空间分析类型,研究设计两阶段数据划分方法、抓取式并行调度方法以及基于二叉树的计算结果融合策略。实验结果表明,研究提出的数据划分方法和并行调度方法较传统方法均能大大缩短算法的并行时间、取得更好的并行加速比和稳定的负载均衡性能。采用上述方法实现的k-means遥感影像分类并行算法,在9节点并行CPU集群上计算6.9 GB遥感影像时,可将运行时间从2400.28秒减少至118.42秒,最优加速比为20.27;实现的栅格多边形矢量化并行算法在计算3.8 GB的土地利用分类栅格数据时,可将运行时间从1362.36秒减少至146.65秒,并能取得9.29的最高加速比。(3)面向CPU/GPU混合架构的自适应负载均衡并行计算模型。研究将地理空间分析负载均衡并行技术涉及的不同层面归纳为数据、算子、并行化方法、粒度和并行计算环境五个要素,并在此基础上构建了自适应的负载均衡并行计算模型。为使模型能良好地适应于CPU/GPU的混合架构,研究提出适应CPU/GPU混合异构计算环境的并行方法,可充分利用CPU和GPU的并行计算性能。研究设计串行算法快速并行化方法和自适应负载均衡方法,可根据待处理数据类型、算法类型和并行计算环境自适应地选择并行化方法和计算粒度,实现不同串行算法和自定义计算规则的快速并行化,并实现并行计算过程中的有效动态负载均衡。最后,采用面向对象、插件式开发的设计思想,研发了面向CPU/GPU混合架构的自适应负载均衡并行计算平台,实现了模型从抽象的逻辑描述到实际应用的转化。实验结果表明,研究提出的自适应负载均衡并行模型对CPU/GPU混合异构计算环境中不同的算法类型和不同的数据量均具有良好的适应性。本研究的主要贡献包括:设计了系统的矢量多边形复杂度模型构建方法及复杂多边形粒度分解方法,提出了融合多计算粒度的栅格有效计算量负载均衡并行技术及研建了适应性强的CPU/GPU混合异构负载均衡并行方法。