基于MPI并行遥感典型地类提取应用

2020-07-15 05:01岳钦崟
计算机技术与发展 2020年7期
关键词:中间件预处理图像处理

岳钦崟,李 虎

(中国科学院国家空间科学中心,北京 100190)

0 引 言

遥感图像地物识别在实际应用中要求能够进行快速识别[1-2],开展面向耕地、林地、草地、居民地、河流坑塘等典型地类特征识别[3-6],研发对典型地类的高性能遥感图像地类识别并行模型构建技术,为自然灾害监测、气候变化研究、农林资源监测、地震环境调查、陆地植被调查、森林及水资源调查等工作的典型地物识别、产品生产以及业务系统运行提供技术支撑和方法指导,对提升卫星遥感数据应用广度与深度具有重要的指导意义和示范作用[7]。典型地物识别算法所面临的主要问题是遥感图像数据量大和耗时耗资源,不能满足业务应用的快速识别要求;另外,地物识别算法实现形式和依赖库差异性也带来了业务系统集成的困难。

1 高性能并行编程简介

并行编程是高性能计算机技术的重要手段[8-9]。目前两种最重要的并行编程模型是数据并行和消息传递。数据并行是将相同的操作同时作用于不同的数据。消息传递并行模型即各个并行执行的部分之间通过传递消息来交换信息、同步操作、控制执行。消息传递是面向分布式内存的,因此更适用于多节点集群并行机种。

2 MPI标准协议和MPICH

MPI,Message Passing Interface,“消息传递接口”协议,是一种语言无关的通讯协议,定义了一组具有可移植性的编程接口,用于实现并行计算[10-13]。MPI提供了一套消息传递并行编程环境和函数库规范,是国内外高性能计算系统中最广泛使用的并行编程环境,也已成为国际上一种并行程序的标准。它致力于提供高通信性能、较好的程序可移植性以及强大功能的并行开发运行环境。

MPI提供了一系列的消息传递接口,包括协议和语法,以期实现高性能、大规模化和可移植性,是当今高性能计算的主要模型。MPI模型处于OSI参考模型的第五层或以上,其具体实现可通过传输层的套接字或TCP类来达到大部分层的功能。MPI涉及的主要概念有:进程组、通信器、进程序号、消息、MPI对象、MPI联接器等。这些组成了MPI并行运行环境体系。

MPICH[14-16]是一种高性能和可移植的消息传递接口标准MPI的具体实现[6],由美国阿贡实验室与密西西比州立大学共同完成。在通信模块中,不同节点进程间的通信通过通信子建立,相同通信子中的不同进程使用进程号加以区分。文中的并行框架采用MPICH实现。

3 遥感图像处理并行分析与设计

任务的工作分解是并行化程序设计的关键环节。工作分解是对目标任务算法处理进行分析,将之分解为若干相对独立的部分或操作,进而选择适当编程模型将这些相对独立的部分分配到多个处理单元执行。

工作分解的手段一般可分为任务分解和数据分解。任务分解是将一个处理流程按操作的相关性或依赖性分解为若干可以同时执行的子任务,需要分析子任务间的相关性或依赖性,即子任务接口数据读写顺序,需要处理好子任务间输入输出的同步关系。数据分解是将一个较大的待处理数据集划分为若干子集,对不同的子集数据成员实施相同的运算或操作。另外还有一种常用的工作分解方法是流水线方式,它仿照流水线的操作将一个任务流程按拓扑关系分解为若干紧密相连的部件任务阶段,从而提高每个阶段工作单元的运行效率,但是该设计更为复杂,难度也更大。

根据功能和任务分解,可以得到基于数据并行和任务并行两种并行设计方式。针对遥感图像处理和地物识别应用场景,结合MPI消息并行模型,文中进行了遥感图像处理流程、任务并行、数据并行的分析以及并行化架构的设计。

3.1 遥感图像处理流程并行分析

遥感图像处理任务并行性分析就是要从遥感图像处理串行处理流程中提取出可并行部分,并根据任务间依赖关系完成子任务间同步处理。最终通过MPI消息并行环境实现计算节点的负载均衡及可扩展,该遥感图像处理并行化模型可有效提高海量遥感图像数据的处理能力。

3.2 遥感图像处理任务并行分析

遥感图像处理任务流程主要分遥感图像预处理和遥感图像信息提取两个层次。遥感图像预处理层的输入输出均是遥感图像,虽然处理的数据量大,但由于局部数据之间的相关性较小,也较少涉及人工干预,因此并行化程度较高。信息提取层输入是遥感图像,输出则是地物识别分类描述信息,目前也主要以人工目视解译为主。

遥感图像预处理又可以细分为:辐射校正、几何校正、图像融合、图像镶嵌、图像裁剪、大气校正等。任务划分可得到预处理层内部的子任务并行。

3.3 遥感图像处理数据并行分析

遥感图像处理通常涉及大量的图像文件数据块处理。通过多节点集群并行化模型处理基于本地遥感图像处理文件粒度的预处理并行和信息提取并行。预处理下数据块的独立性也为预处理子任务并行提供了依据。

3.4 遥感图像处理任务并行化架构设计

根据遥感图像处理并行化层次分析以及底层算法透明性的考虑,将并行化架构划分为预处理层和信息提取层,并行处理包括预处理层和信息提取层之间的并行和同步、预处理层的数据并行和同步。

(1)预处理层与信息提取层的并行关系;预处理层作为信息提取层的输入,两层之间的并行中的数据同步关系属于经典生产者-消费者模式,通过MPI消息传递机制处理好二者之间的同步关系,确保数据的完整性与正确性。

(2)预处理层的数据块并行和子处理之间的并行同步;预处理层的输入输出均为图像数据,并且预处理操作下遥感图像文件内部数据块之间和文件块之间都具有相互独立性,可充分通过并行提高处理效率。子任务间的处理并行通过MPI消息传递机制处理好流程同步关系,确保数据的完整性与正确性。

(3)信息提取层的文件块并行和子处理之间的并行同步。

图1为基于遥感图像处理流程并行框架,预处理层和信息提取层通过MPI消息传递实现子任务之间并行以及预处理层和信息提取层之间的并行执行和同步。该框架模式对预处理算法及信息提取算法具有透明性,整个并行处理框架适用于异构编程。

图1 遥感图像处理任务并行化架构示意图

4 基于MPI的遥感图像处理并行设计

高性能遥感图像地类识别并行处理系统的核心是

MPI消息并行框架和典型地类识别模型插件式架构模型。MPI消息并行框架为高性能遥感图像地类识别并行处理系统的多节点多进程的并行性以及节点负载均衡调度;插件式编程架构为高性能遥感图像地类识别并行处理系统的灵活性,通过配置文件动态指定待进行处理的算法模型。

MPI消息并行框架的高性能并行处理的系统层次结构,MPI消息传递的消息中间件模型可提供松耦合的面向遥感图像分类识别算法服务,通过分布式并行技术和可扩展性实现处理节点的负载均衡及高效的海量遥感图像数据处理能力。

4.1 高性能遥感图像地类识别并行处理系统

高性能遥感图像地类识别并行处理系统主要包含并行中间件配置模块、并行中间件控制调度模块、典型地类识别算法结果展示模块。

并行中间件配置模块涵盖了中间件路径配置、中间件参数列表配置、图像数据输入配置、结果数据输出配置四个部分。

并行中间件控制调度模块包括负载均衡、任务调度和任务控制三个部分。

高性能遥感图像地类识别并行处理系统的组成结构如图2所示。

图2 高性能遥感图像地类识别并行处理系统组成结构

中间件路径配置用来指定待执行的典型地类识别算法可执行插件的路径,中间件参数列表配置用来指定待执行的典型地类识别算法可执行插件的参数列表,图像数据输入配置用来指定典型地类识别算法可执行插件的输入文件路径,结果数据输出配置用来指定典型地类识别算法可执行插件的处理结果输出文件路径。

并行中间件控制模块中负载均衡、任务调度和任务控制通过MPI编程模型指定待执行任务的节点资源和进程资源,通过消息收发实现节点和进程的任务调度和控制。

4.2 并行系统任务调度及消息协同模块

并行中间件控制调度模块是高性能遥感图像地类识别并行处理系统的并行核心。该模块的工作内容包括工作节点负载均衡、进程任务调度和任务控制。该模块在主节点根据并行处理平台调用信息,分配主节点进程集和各从节点进程集;读取平台待执行任务信息;主节点根据待执行任务参数信息分析待处理图像处理数据信息,参考从节点进程信息,向不同节点分配任务以非阻塞方式发送待执行任务消息;从节点阻塞方式接收待执行任务消息并调用图像处理算法插件,执行完成后向主节点进程反馈执行结果并退出;主节点根据反馈结果统计任务处理结果。详细流程如图3所示。

图3 并行系统任务调度及消息协同模块

4.3 节点与任务协同关系流程

各节点及任务进程间的协同关系如图4所示。首先由客户端发起并行中间件服务请求,高性能并行处理系统根据客户端任务请求安排节点及进程资源。主进程通过配置文件分发读取后与各从进程进行握手协商,并开始执行任务。主进程根据配置文件读取输入路径下的文件数及可调用的资源数量进行任务安排与调度,根据调度算法得到任务调度配置后向各从进程资源发送配置读取结果,从节点收到主进程的配置读取成功信息后向主进程反馈确认信息完成握手,双方确认后主进程向各从进程发送安排好的任务数目和任务信息,从进程收到消息后根据调度内容合配置内容调用本地图像识别算法插件处理分配的图像任务,在完成任务后向主进程反馈任务执行情况,主进程收到任务执行处理情况后向客户端反馈执行情况。

5 结束语

从遥感图像典型地类特征识别的业务化要求出发,分别分析了典型地物识别业务系统的可并行性和MPI消息并行协议标准及其实现MPICH的结构,在此基础上将地物识别业务过程按照粒度差别和处理环境差异划分为预处理层和信息提取层,进一步细分为独立的子任务集合并明确它们之间的同步关系。根据分析得到的处理流程并行性、数据并行性、任务并行性和并行处理框架,参照MPI消息并行模型实现了基于MPICH的高性能遥感图像地类识别并行处理系统。该系统分为并行中间件配置模块、并行中间件控制调度模块和典型地类识别算法结果展示模块,通过中间件配置方式和插件式实现了任务动态可配置、节点进程资源的负载均衡和异构编程的支持。文中详细介绍了并行系统任务调度及消息协同模块以及节点与任务协同关系流程。

猜你喜欢
中间件预处理图像处理
KR预处理工艺参数对脱硫剂分散行为的影响
预处理对医用外科口罩用熔喷布颗粒过滤性能的影响
基于线性源法与图像处理的土壤饱和导水率快速测量方法
手术器械预处理在手术室的应用
“课程思政”视域下职业学校《图像处理》课程教学改革实践
构建《Photoshop图像处理》课程思政实践教学路径的探索
基于图像处理与卷积神经网络的零件识别
污泥预处理及其在硅酸盐制品中的运用
我国自主可控中间件发展研究
以实力证明 用事实说话