论文部分内容阅读
随着社会、经济和科技的进步,卫星遥感对地观测技术飞速发展,已步入数据获取手段多样化和信息海量化的新时代。另一方面,在某些特殊的高时效遥感应用领域(如移动目标检测、灾害监测救援等),对卫星数据处理的现势性有严格要求,整个数据处理流程必须分钟级完成,否则将无法满足后续应用的需求;此外,在许多军事和灾害应急领域,现场处理环境和资源通常受限,需要构建在形态和结构上更加小型化和便携化、将软硬件加速深度耦合的便携式高性能数据处理系统。目前常规的卫星数据地面处理系统和算法主要考虑数据处理的质量和精度,并未顾及计算效率和体积功耗,已无法满足上述需求。如何有效利用各类新的高性能处理手段,实现海量光学卫星遥感数据的分钟级处理已成为一个亟需解决的重大科学问题。近年来,以图形处理单元(GPU)为代表的通用计算硬件逐渐成为国际上解决大数据计算和实时处理问题的主流方案。GPU计算性能高、体积小、功耗低、软硬件架构通用,可在受限环境下提供高性能计算能力,已广泛应用于测绘、遥感、地学等领域的高性能数据处理和应用中。本文基于CPU/GPU异构处理环境,深入探讨光学卫星遥感数据高性能处理理论和方法,涉及到光学卫星数据处理算法GPU高效映射、CPU/GPU高性能动态协同处理、高性能数据处理架构设计及资源最优调度等一系列内容的分析和讨论,最终为海量光学卫星遥感数据的分钟级处理问题提供一种可行的解决方案,具有重要的意义和价值。论文主要研究内容和创新点如下:1)光学卫星数据处理算法GPU高效映射方法对光学卫星数据处理算法的计算量和并行度进行分析,将计算量大且并行程度高的瓶颈算法,如影像复原(以MTF补偿为例)、传感器校正(包括波段配准和CCD拼接)、系统几何校正等映射至GPU并行执行。映射时采用渐近求精的思想,首先进行核函数任务映射和基本设置,使算法可在GPU上执行,然后结合算法的计算和数据访存模式特点,设计相应的GPU性能优化方法,从访存优化(包括线程多元素重访、线程块大小和形状最优选取、存储层次性访问)、指令优化、传输计算堆叠等三个方面对算法进行优化,进一步提高了瓶颈算法在GPU上的执行效率,最终实现了光学卫星数据处理算法的GPU高效映射。2)光学卫星数据CPU/GPU高性能动态协同处理模型为充分利用CPU/GPU异构处理环境中CPU处理核心的计算能力,分析和归纳了CPU处理核心和GPU的三种协作方式,将CPU处理核心进一步细分为控制核、协同计算核和独立计算核。提出了计算负载分配的CPU/GPU协同处理模型,令CPU协同计算核和GPU共同对负载进行处理,并从理论上推导了负载因子的计算公式,使协同处理模型的效率达到最优;设计了算法功能并行的CPU/GPU协同分配方法,利用光学卫星数据处理流程的内在并行性,令CPU独立计算核将有理多项式模型生成和MTF补偿、波段配准并行堆叠执行,以隐藏相应算法的执行时间。在此基础上进一步提出了计算负载分配和算法功能并行的动态重调整策略,使单景光学卫星数据处理流程的性能达到最优。3)高性能光学卫星数据处理架构及资源最优调度策略为充分利用多CPU/GPU异构处理系统中的各类处理资源,提出原子计算资源的概念,并针对多景光学卫星数据处理任务提出了两种数据处理模式:协同处理模式和独立处理模式,对两种处理模式进行了比较分析。在此基础上,提出了适用于多原子计算资源环境下的MOC(Multi-computing resource/OpenMP/CUDA)高性能数据处理架构。在该架构中,原子计算资源内部的GPU高效映射和CPU/GPU动态协同处理分别由CUDA和OpenMP实现,多计算资源之间的调度则依靠便携式批处理系统(PBS)实现,通过设计PBS原子计算资源调度方法并分析比较各类PBS调度策略,实现了处理资源的最优调度。在此基础上,针对光学卫星数据处理过程中各类数据的存取(I/O)特点,提出基于内存盘/固态硬盘/大容量磁盘阵列的三层数据I/O架构,实现了整个处理流程的高性能数据I/O,最终使多景光学卫星数据的整体处理效率达到最优。最终实验结果表明,使用本文提出的方法数十倍地提高了光学卫星数据处理算法和流程的效率,可以满足对海量光学卫星遥感数据的分钟级处理需求。基于上述研究内容,针对目前光学卫星数据处理的实际应用需求,设计和实现了一套完整的光学卫星数据处理实验系统,阐述了实验系统的设计原则、软硬件架构及其实现方法,并介绍了该系统在资源三号卫星地面应急处理与发布系统中的实际应用。后续的研究方向主要包括:(1)研究星上受限环境下高性能处理架构和平台的设计方法,实现星上在轨处理算法分钟级甚至秒级的快速处理;开展星上数据处理流程对层次性高性能处理架构、原子计算资源分配和调度策略的适应性验证;(2)调研新一代Kepler架构GPU的各类新特性(如动态并行、hyper-Q等),以充分利用新一代GPU的计算性能,实现各类卫星数据处理算法的最优映射;(3)使用新的高性能计算硬件(如众核CPU、加速处理器等),并和多核CPU、GPU等一起协同完成海量卫星遥感数据的实时快速处理。