遥感影像在线处理流程编排与算法调度技术研究

2022-09-28 14:50廖芳芳雷雨桐苏永恒刘富乾管占磊吴聆益
电子设计工程 2022年18期
关键词:引擎数据处理集群

廖芳芳,雷雨桐,苏永恒,刘富乾,管占磊,吴聆益

(1.航天宏图信息技术股份有限公司,北京 100195;2.上海宏图空间网络科技有限公司,上海 201702)

面对爆炸式增长的遥感影像以及不同行业应用的复杂算法和业务流程,遥感数据的单机处理变得困难[1-2]。为解决这一问题,云计算技术被越来越多地应用于遥感领域,旨在提升海量遥感数据的处理效率[3-10]。国外产品有谷歌地球引擎(Google Earth Engine,GEE)、ArcGIS online、ENVI Services Engine等[11-14],国内产品有EarthDataMiner、PIE-Engine、OpenRS-Cloud 等[15]。

该文基于云原生技术框架,探索遥感算法模型快速集成以及全流程任务编排技术,并通过资源的动态调度实现遥感计算任务的高速并行处理,提供高效的海量遥感数据批处理和专题产品自动化生产解决方案。

1 云原生流程编排与算法调度

1.1 核心技术架构

为满足海量遥感影像在线处理过程中算法扩展、流程编排、并行调度和任务监控的需求,该文构建了遥感数据处理并行调度管理平台,图1 展示了平台的基本架构,其核心内容包括生产消息、消息调度引擎、并行计算集群三部分,分别对应遥感数据处理流程编排过程中生产消息、收发消息和消费消息三个过程。其中生产消息主要指引接外部专题数据、各种流程任务触发指令输入、用户干预指令等信息快速推入消息调度集群;消息调度引擎是消息调度集群的核心,主要负责数据的接收、存储和快速分发;并行计算集群是消息的消费者,负责从消息调度引擎订阅消息并进行消息的处理。

图1 并行调度管理平台技术架构

并行调度管理技术流程如图2 所示。并行调度管理技术采用云原生开发框架,以Kubernetes 作为底层运行平台,容器作为算法模型封装载体,构建流程驱动和资源调度双层架构,采用标准OpenAPI/RESTful API 业务集成,实现对整个系统可使用资源的管理与调度,以及遥感数据处理流程任务的调度、分发、执行与监控功能。在并行调度管理平台中,用户自定义的遥感数据处理流程被转换成JSON 格式的模型描述信息,模型描述信息传递给后台形成流程任务,工作流服务对全部的流程任务状态进行管理和监控,并根据流程任务状态将其分配给工作流引擎。工作流引擎通过Batch 算法将流程任务按批次分布到各节点;基于DAG 流程调度算法,解析每个流程任务的模型描述信息,识别调用算法信息及算法执行顺序结构信息;Pipeline 分发执行节点上的算法任务。算法模型插件服务提供了算法模型标准化接口,实现行业专题算法包的快速集成和弹性扩展。算法模型通过镜像服务进行部署,通过Kubernetes API Server 进行以Pod 为基本单位的算法集群调度。

图2 并行调度管理技术流程

1.1.1 消息调度引擎

消息调度引擎是遥感数据处理并行调度管理平台的中枢神经系统,负责遥感数据处理任务流程的消息接收、存储和分发。将消息按不同的专题进行存储,并持久存储到文件系统。当外部系统需要进行并行计算时,外部系统作为消息的生产者,通过消息调度引擎,把遥感数据计算任务加入到消息队列中。然后消息调度引擎通过对消息队列的排队、去重后,进入消息缓存中。并行计算集群作为消息的消费者,通过对消息的并行消费和计算管理,执行遥感数据处理任务流程,达到并行计算的目的。消息调度引擎主要管理的消息有用户消息、订阅关系、队列调度、缓存管理、日志监控消息等。

1.1.2 并行计算集群

遥感数据处理并行调度管理平台的并行计算集群以多计算节点构建计算资源池,并采取分组的方式订阅消费专题数据。每一个消费者组可以认为是一种遥感处理流程的多任务集群,能够并行地消费指定专题数据并完成计算工作。由于计算平台主要接收和处理大规模的遥感数据并行计算任务,当接收到这些任务时,集群通过并行调用任务算法,完成大规模遥感数据处理任务。并行计算管理主要提供任务管理、任务编排、任务部署、任务监控、资源管理等服务,实现对任务的监控管理和对资源的合理利用。

遥感数据处理并行调度管理平台通过构建消息调度引擎和并行计算集群,具备高并发遥感数据处理任务快速实现功能、支持CPU/GPU/流计算等并行模式、支持多种任务触发机制、支持资源的弹性伸缩、支持大规模批量数据的快速吞吐、具有超高的稳定性,实现遥感数据处理任务自动化编排、自动化调动、多模式调度、任务监控和任务缓存功能。

1.2 基于云原生的算法流程编排调度引擎

工作流引擎负责流程任务解析和资源调度,对于工作流执行至关重要[16]。该文采用的工作流引擎是一种基于云原生的算法流程编排调度引擎,可分为三层架构:

1)存储层:状态机服务使用分布式队列来管理预定的遥感算法任务,并且使用动态队列来管理分布式延迟队列。

2)服务层:工作流服务提供遥感数据处理任务相关的注册、管理、监控等服务;任务服务提供对遥感数据处理任务的注册、管理等服务;状态机服务用来选择遥感数据处理流程下一步应该执行的算法,更新工作流执行状态;队列服务提供动态可扩展的虚拟队列服务。

3)API 层:工作流相关API 负责启动、控制流程;元数据相关API 负责定义任务和工作流蓝图;任务相关API 负责获取流程中的任务详情,轮询、更新任务状态。

基于云原生的算法流程编排调度引擎的核心是状态机服务,也称为决策者服务。当工作流事件发生时(例如遥感算法完成、失败等),决策器将根据工作流定义和工作流的当前状态选择下一算法,并发送到相应的算法/任务队列中或更新工作流的状态,来进一步驱动流程执行。基于云原生的遥感大数据处理算法流程编排调度引擎体系架构如图3 所示。

图3 基于云原生的遥感大数据处理算法流程编排调度引擎体系架构

1.3 算法任务执行模型

基于云原生的算法任务执行模型是基于RPC 通信模型的,工作节点与引擎服务分布在不同的机器上。工作节点通过HTTP 协议与引擎服务器通信,并使用轮询模型来获取任务队列中的待执行任务。

工作节点实现了对任务轮询的幂等性,并且工作节点和引擎服务都是无状态的,因此非常易于扩展,可以根据虚拟队列中任务的排队情况实现工作节点的自动伸缩,可以轻松支持数以万计的流程并行执行。算法任务执行完成后同样通过基于HTTP协议的Restful API 告知管理/执行服务,管理/执行服务接到通知后通过算法流程编排调度引擎来调度流程下一步的执行。算法任务执行模型如图4 所示。

图4 基于云原生的算法任务执行模型

工作节点和引擎服务完全通过无状态的HTTP协议进行通信,整个流程驱动的过程完全解耦,解决了基于消息中间件单个消息处理时间过长的问题,易于扩展,尤其适用于遥感大数据处理算法的流程编排和调度。

2 功能实现

该文基于遥感数据处理并行调度管理技术,构建了基于云原生的遥感数据处理云服务平台,实现面向遥感大数据的在线可视化流程定制、自动化生产服务,同时提供了算法扩展、流程编排、并行调度和任务监控功能。

2.1 可视化流程设计管理功能

针对遥感影像类型颇多,处理流程差异较大的特点,建立可视化流程设计管理系统,方便用户直观地定制遥感数据处理流程,并对流程进行管理、调度和监控。平台通过调度组件化的算法模块,对遥感数据处理和专题产品生产进行流程化编排,结合业务流程配置,建立或调整业务流程,快速实现遥感数据批量处理及生产。主要实现的功能有流程设计功能、流程调度功能、流程监控功能、流程查询功能。

平台实现了灵活的可视化流程构建方式,提供可视化流程编排工具,支持用户自定义遥感数据处理生产线。流程编排过程操作便捷,算法用拖拽方式组合,参数通过流程线传递,所见即所用;支持串行、并行、分支及判断多种复杂处理流程的构建;支持自动化执行算法与人机交互(精细作业)算法串联,实现WEB 与客户端无缝衔接;提供用户在流程编排过程中,根据业务需要定义生产参数(例如不同卫星的分辨率),简化任务创建参数设置过程。生产任务执行时,系统自动化调度生产线进行生产,用户不需要关心数据流向。

2.2 标准化的算法扩展功能

平台实现遥感算法的集成、更新、维护、共享等管理服务功能。提供算法模型标准化接口,实现行业专题算法的快速集成。支持对Python、C++、IDL、Matlab 等多种语言编写的算法插件进行封装,支持将多源异构数据处理、专题产品制作等算法封装成容器,在平台中调度管理,方便用户自主上传注册算法插件,很好地解决了多源遥感数据在线处理能力扩展问题。

算法插件要求包括算法的可执行程序、依赖库以及JSON 格式的配置文件,以zip 包的形式上传注册,平台解析算法插件后算法即被加入算法库中,可实现在流程中调用。算法插件的配置文件定义了算法的标识、版本、环境、资源、参数等内容。

2.3 集群计算运行管理功能

集群计算运行管理功能模块主要负责依据遥感数据批量处理的业务量推算支撑硬件环境资源(包括计算资源、存储资源、网络资源等)的需求,基于软硬件环境构建集群运行环境,科学开展任务管理和作业调度,为遥感数据产品并行化生产提供技术支持。主要实现的功能有运行支撑资源估算功能、任务管理功能、系统资源监控功能。

运行支撑资源估算能够实现计算资源、网络资源、存储资源和作业资源估算的功能,为遥感产品生产调查管理和资源优化配置提供数据支撑。任务管理功能主要负责接收遥感产品生产任务要求,通过自动解析、分析生成具体作业调度单,并下达作业并行调度,同时针对任务流程执行的全过程进行监控,显示算法执行状态。系统资源监控功能主要实现对集群的静态和动态信息进行实时监控,主要包括内存、CPU、存储空间使用情况,数据上传下载速率,以及节点负载状态等内容,为新任务的资源配置提供基本的参考条件。

3 性能测试

该文构建了遥感数据处理云服务平台并进行了平台性能测试,测试环境如表1 所示。测试数据选用GF1-PMS 影像(全色+多光谱)、GF1-WFV 影像(多光谱)和GF2 影像(全色+多光谱),测试流程为数据解压缩、影像匹配、正射校正、影像融合到元数据生产全流程,逐景批量全自动生产。

表1 测试环境

分别通过单机节点和该文系统的多节点并行计算,执行上述遥感影像全自动批量生产流程,测试结果如图5 所示。由图5 可知,当数据量较小时,该文系统与单机节点计算效率差别不大,这是由于服务启动时间的存在降低了平均处理速率;当数据量大于100 GB 时,该文系统计算耗时明显低于单机节点耗时。随着数据量增加,单机节点计算耗时急剧增加,该文系统计算耗时的加速平缓且远低于单机节点,证明了该文技术框架的可行性。

图5 单机节点与该文系统多节点并行计算测试结果对比

4 结束语

针对遥感影像处理过程中数据量大、数据处理流程复杂、行业专题算法差异性大等问题,提出基于云基础设施的数据处理并行调度管理技术,实现了遥感数据处理全流程编排和算法扩展。基于云原生的算法流程编排调度引擎被证明适用于遥感大数据处理算法的流程编排和调度,高效灵活的任务调度管理机制实现了对大规模服务器和计算资源的部署、调度及监控管理,保障了遥感数据生产流程的快速并行计算能力,且具有低耦合、易于扩展的优点。以容器为算法模型封装载体,有效解决了不同算法模型因运行环境和编译语言差异造成的集成部署问题。测试结果表明,该文提出的技术方案可行,能够满足海量遥感数据高效批处理的需求。

猜你喜欢
引擎数据处理集群
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
无人机测绘数据处理关键技术及运用
新海珠,新引擎,新活力!
车坛往事4:引擎进化之屡次失败的蒸汽机车
海上小型无人机集群的反制装备需求与应对之策研究
培育世界级汽车产业集群
一种无人机集群发射回收装置的控制系统设计
蓝谷: “涉蓝”新引擎
基于MATLAB语言的物理实验数据处理探讨