论文部分内容阅读
随着空间应用场景的日益复杂和空间数据量的爆发式增长,传统GIS在以系统为中心的集中计算中所暴露出的空间信息共享、海量数据存储、处理平台异构、计算能力薄弱等瓶颈性问题成为制约GIS发展的重要因素。为解决上述问题,GIS研发人员将分布式计算技术引入空间信息处理中,为GIS向开放式多机并行处理的方向发展奠定了基础。作为分布式计算的一种形式,网格计算技术在计算资源和数据资源共享方面提出了一系列规范和方案,更符合大规模空间协同计算的应用需求。因此,作为新一代GIS的代表,网格GIS应运而生,引起了学界和业界的广泛关注。 空间计算兼具数据密集和计算密集的特点,空间计算任务的调度与执行需要考虑数据资源的分布情况和计算资源的性能特点,不合理的数据迁移方案和任务调度策略不仅不会提升空间计算性能,反而会造成负面影响。因此,空间计算任务的执行管理是网格GIS的核心议题之一。目前,既有工作主要从全局视角关注空间计算任务的执行流程和分布式协同处理模型,并未考虑本地资源的有效利用问题。然而,随着用户需求的逐步提高和数据处理量的快速增长,分配到各网格节点处理的本地任务也可能需要耗费较长的执行时间。因此,如何改进现有协同处理模型,有效利用本地资源,提升网格GIS系统的整体计算性能,是网格GIS研究中亟待解决的新问题。为有效提升单机计算性能,包括CPU多核技术和GPU通用技术在内的多处理器并行计算技术近年来得到了快速发展,使上述问题的解决成为可能。与CPU相比,GPU能够提供更多的并行处理单元,在并行加速方面具有更大的潜力。因此,本文将GPU通用计算技术引入网格GIS的任务执行管理中,依托国家高技术研究发展计划863重点项目《网格地理信息系统软件及其重大应用》(2007AA120501-2007AA120504),以“全局协同、本地加速”为实现目标,系统地提出了顾及本地加速的网格空间计算任务执行管理机制MEGGTLA(Execution Mechanism of Grid-based Geospatial Tasks with Local Acceleration),对其所包含的四项关键技术——空间网格节点组织、网格空间计算任务描述形式、全局空间计算任务解析与执行管理模型、顾及本地加速的空间网格资源管理框架进行了定义与分析,并进一步将上述关键技术集成于网格GIS项目Nebula2中。实验证明,MEGGTLA具有较好的可行性和适用性。 首先,MEGGTLA采用基于Python的空间计算任务描述形式GCTDP对全局与本地空间计算任务采用统一的表达形式,对网格应用层透明,有效屏蔽了底层实现细节。空间计算任务脚本以字符串形式通过Socket进行网络传输,为本地任务的分发和迁移提供了便利。 其次,MEGGTLA具有功能良好的全局空间计算任务解析与执行管理模型。本文设计了一种API层次的全局解析机制GPMA,为由GCTDP描述的全局空间计算任务提供了完整有效的解析方案,并将解析结果抽象为逻辑次序清晰、易于监控管理的本地执行序列。针对本地执行序列的调度问题,本文设计了基于AHP和DAG的空间计算任务调度模型GTSAD,该模型充分考虑空间数据资源的分布情况和计算资源的性能指标(尤其是GPU并行加速性能),采用AHP方法对本地任务执行时间进行预估,结合任务调度DAG图的组织逻辑,计算本地任务的动态等级,并将其作为任务调度的依据,最终生成合理的本地任务调度方案。与相关工作相比,GTSAD模型在尽量均衡本地节点负载的同时,有效缩短了全局任务的执行时间。另外,本文还对本地执行序列的处理流程和执行状态管理,以及全局任务执行管理中涉及的消息通信和数据传输问题进行了讨论。 最后,MEGGTLA集成顾及本地加速的空间网格资源管理框架。为了有效整合本地空间数据资源,本文设计了基于WSRF的本地资源信息缓存服务LRIBS,有效降低了全局资源目录的访问和维护代价,减少了本地数据文件的读取次数,进而提高了空间信息服务的访问效率。另一方面,为了高效利用本地空间计算资源,本文设计了整合GPGPU加速机制的本地执行管理模型LEMAG,采用CUDA开发框架对含有大量独立且功能相同的处理流程的本地空间计算任务进行并行加速,极大提高了本地任务的执行效率,进而提升了网格GIS系统的整体处理性能。