APP下载

面向遥感影像协同处理的并行框架服务系统

2015-04-20汤晓涛

测绘科学与工程 2015年2期
关键词:作业管理任务调度状态

汤晓涛,张 丽,3,黄 艳

1.西安测绘研究所,陕西 西安,710054;2.地理信息工程国家重点实验室,陕西 西安,710054;3.信息工程大学地理空间信息学院,河南 郑州,450052



面向遥感影像协同处理的并行框架服务系统

汤晓涛1,2,张 丽1,2,3,黄 艳1,2

1.西安测绘研究所,陕西 西安,710054;2.地理信息工程国家重点实验室,陕西 西安,710054;3.信息工程大学地理空间信息学院,河南 郑州,450052

遥感影像种类的不断增加和数据量的急剧膨胀,使得建立良好可扩展性的遥感影像协同处理平台显得非常急迫和必要。本文从海量遥感影像协同处理需求出发,设计了一套与资源松耦合的并行框架服务系统,并给出了服务系统的组成和各关键服务的实现途径。实验结果表明,该框架不仅能合理分配作业任务、适应不同优先级的任务、实现负载均衡,而且其调度策略灵活,呈现出部署灵活方便、使用友好、适应性强的特点。

遥感影像;协同处理;并行框架;服务系统;松耦合

1 引 言

近年来,随着遥感平台和传感器等技术的不断发展以及国家高分辨率重大专项的全面推进,遥感影像种类不断增加,数据量急剧膨胀,数以PB级的各类遥感影像数据亟待处理成能够服务国防和国民经济建设所需要的测绘产品,这对遥感影像数据处理技术和系统提出了严峻的挑战。但是,目前能得到及时处理和应用的遥感影像数据不足10%,从而形成了一种所谓“遥感影像数据既多又少”的现状[1]。在此背景下,建立一个具有高效处理能力和良好可扩展性的遥感影像协同处理平台显得非常紧迫和必要[2]。

由于云计算和网格计算具有协同工作的特点,具备支持动态异构环境、支持跨组织机构的资源共享、支持可伸缩性等能力,可以解决异构环境下遥感数据的快速处理和应用服务问题[3-8]。因此,为适应遥感影像规模化和高效处理需求,充分利用计算资源,实现海量遥感影像的高效处理,西安测绘研究所在遥感影像协同处理技术方面进行了一些探索,融合云计算相关技术开发了一套遥感影像协同处理平台。该平台以GPU-CPU混合集群协同处理为基本架构,采用插件式体系,实现了并行框架与遥感影像专业处理插件的无缝集成。

2 并行框架服务系统组成

中国云计算网将云计算定义为:云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展[9]。分布式计算和存储、高扩展性、用户友好性、良好的管理性是云计算的本质特征,云计算系统的核心是提供服务,而且服务的实现机制对用户透明,用户无需了解云计算的具体机制,就可以获得需要的服务[10]。

为此,基于服务的设计理念构建了遥感影像协同处理并行框架,该框架由作业管理、任务调度、计算与负载监视、资源信息、Web管理等服务和集群作业API(Application Programming Interface,应用编程接口)构成,其组成及其相互关系如图1所示。该系统的运行方式主要分为作业任务提交和执行与集群或作业状态查询两类。

当进行作业任务提交和执行时,系统运行流程主要包括7个步骤:①用户在作业控制终端,通过集群作业API向系统提交作业任务;②作业管理服务收到来自用户的作业请求后,把作业信息提交任务调度服务;③任务调度服务通过资源信息服务收集每个节点的状态信息;④同时,任务调度服务根据作业任务需求和节点状态,寻找并确定合适的作业执行节点,并把调度结果反馈于作业管理服务;⑤作业管理服务收到来自任务调度服务的调度结果后,把作业数据发送到该执行节点上;⑥该节点的计算与负载监视服务把作业执行结果提交给作业管理服务,同时把该节点状态提交给资源信息服务;⑦作业管理服务把执行结果保存在相应的数据库或工程目录下。

当用户进行集群/作业状态查询时,系统运行流程主要包括4个步骤:①用户通过集群作业API提交查询请求;②节点与负载监视服务把相应节点与该节点任务状态信息上报给资源信息服务;③资源信息服务对各节点的状态信息进行分类汇总,由Web管理服务提取这些状态信息;④Web管理服务把收到的信息通过集群作业API反馈给用户。

图1 协同处理并行框架服务系统组成及相互关系图

3 关键服务设计

3.1 作业管理服务

图2 作业管理服务结构图

作业管理服务是整个并行框架的中心服务,并且在一个集群中有且只有一个。从用户的角度看,作业管理服务是整个并行处理系统的入口,作业命令和管理命令都由它解释并执行;从集群内部来看,作业管理服务像一个专门的作业队列管理器,其中包含了作业的静态信息和动态信息。作业管理服务的结构如图2所示,其主要职责包括:①作业请求接收:验证用户的身份,接收用户提交的作业请求;②作业管理:维护作业的执行状态,响应作业相关管理命令;③作业队列管理:维护作业队列的状态,响应作业队列相关管理命令;④计算节点管理:维护有效的节点列表,控制节点的状态;⑤安全管理:实现用户/组的管理,相关权限的定义;⑥计算扩展管理:实现计算扩展功能包的查询和在计算节点上的分发;⑦配置管理:实现并行处理系统全局配置的管理。

3.1.1 计算任务生成

作业管理服务为每个执行的作业启动了一个新的进程,即作业计划进程,并同该进程之间建立管道连接。新作业计划进程加载作业算法的计划插件,将生成的任务描述通过管道传递给作业管理服务去调度和分发;作业管理服务又把任务执行后的结果信息发送给作业计划进程,并由后者再传递给作业计划对象,以实现任务处理流程的控制和状态更新,具体流程如图3所示,包含以下8个步骤。

图3 作业管理服务流程图

①作业管理服务通过通讯与解析模块向作业计划进程请求新的计算任务;

②作业计划进程调用作业计划对象的接口以获得新任务的XML(Extensible Markup Language,可扩展标记语言)描述;

③作业计划对象将生成的任务描述返回给作业计划进程;

④作业计划进程将任务描述通过通讯与解析模块返回给作业管理服务;

⑤通过调度,作业管理服务将计算任务分发给计算节点去执行;

⑥计算节点将计算的结果信息返回给作业管理服务;

⑦作业管理服务将结果信息通过通讯与解析模块发送给作业计划进程;

⑧作业计划进程将计算结果信息传递给对应的作业计划对象。

3.1.2 作业数据库设计

作业管理服务为了支持整个系统的有效运行,需要保存和更新系统的当前状态、作业队列信息和状态、作业属性信息、运行参数和状态、作业已生成的任务描述信息及状态、作业的任务调度记录、计算扩展的注册信息、系统安全信息和配置信息等信息内容。

鉴于上述信息具有较明显的关系型数据特点,并且考虑到系统运行中会频繁更新其中的数据,因此,为了管理上的便捷性,系统采用嵌入式的文件型数据库SQLite作为实际的存储形式。该数据库的访问代码直接编译到作业管理服务中,由服务完全控制和管理,解除了人员手动管理大型商业数据库的负担。

3.2 任务调度服务

任务调度服务主要实现计算任务和计算资源之间的配对,决定计算任务的实际执行位置。其内置的基本调度策略是尽可能让更多的计算任务在可用集群节点上并行执行,以充分利用集群节点的计算能力;同时尽量让整体处于平衡状态,即避免某些节点过载的同时其它一些节点却处于空闲状态。任务调度服务的结构如图4所示,一个调度周期包括6个步骤。

图4 任务调度服务结构

①作业管理服务通知任务调度服务开始一次调度。

②任务调度服务向资源信息服务请求当前集群中各个节点的负载状态。

③资源信息服务返回节点列表及负载状态。

④任务调度服务向作业管理服务请求需要调度的计算任务列表及其资源需求。

⑤作业管理服务返回目前可以调度的计算任务列表。

⑥任务调度服务根据调度策略决定可运行的任务及其位置,以“任务调度表”的形式返回作业管理服务,完成一次调度。

任务调度服务总是在收到管理服务的“开始调度”指令后才启动调度过程,并且在完成一次调度周期后,如果有节点尚未满载,并且还有任务等待执行,那么任务调度服务则会进入下一个调度周期,直到上述条件不满足或任务均无法被调度为止。为了保证资源的有效利用,作业管理服务在以下5种情况下均会发出“开始调度”指令:①资源信息服务通知有新的节点加入到集群中;②资源信息服务通知有节点进入轻载状态;③资源信息服务通知有节点失效,作业管理服务回收该节点未完成作业后;④用户提交了新的作业请求;⑤用户调整了已提交作业的计算资源需求。

任务调度服务同作业管理服务和资源信息服务的通讯是通过相关的信息访问API完成的,这些API仅在并行框架内部供任务调度服务使用,通过获得作业信息和节点状态信息,再结合自身内部特定的调度策略,就可以产生不同的调度表。

为了适应不同任务的需要,任务调度服务内部同时存在FCFS(即First Come, First Severed,先到先服务策略)、Priority(优先级服务策略)、Fair share(平等划分策略)等三个不同策略的调度服务。作业管理服务在启动时可以根据系统的配置和任务特点选择使用的调度服务,或在运行过程中动态改变所用的调度服务。

3.3 计算与负载监视服务

计算与负载监视服务部署在每个物理计算节点,其主要负责作业任务的具体执行和节点负载状况的获取与上报,由分节点核心模块、通讯器模块、作业任务控制器模块、GPU管理器模块、工作线程管理器模块、数据缓存模块等6个模块组成。其中,分节点核心模块主要负责分节点的流程性工作,是其它对象的调用者,如通过通讯器接收和传递各种命令和任务信息,调用作业任务控制器管理任务信息,进行线程分配、数据预读、算法库加载管理等;通讯器模块负责统一管理与外部的网络通讯工作,建立针对各种外部通讯的专用接口,封装通讯协议和信息传输打包和解包过程;作业任务控制器模块负责管理被指派的任务,建立任务队列,维护的信息包括任务处理类型、当前状态、执行线程、数据准备状况等;GPU管理器模块负责维护和管理节点上可用的GPU信息,记录状态和绑定的处理线程ID;工作线程管理器模块负责管理和维护一个工作线程池;数据缓存模块负责分块管理数据缓存,依据作业任务的排序预先将任务目标数据读入缓存,便于任务执行时直接将缓存数据用于计算。

计算与负载监视服务逻辑关系如图5所示,主要包括8个步骤:①~②作业管理服务把作业指派信息和作业数据通过通讯器模块传送给分节点核心模块;③分节点核心模块调用作业任务控制器,把作业任务加入当前任务队列进行管理;④作业任务管理器根据作业任务的需求对作业队列进行排序,并把任务队列中排在最前面的作业任务及数据信息通知分节点核心模块;⑤分节点核心模块对载入的任务视情况调用相应的数据缓存模块、工作线程管理器模块和GPU管理器模块完成作业;⑥~⑦分节点核心模块把当前节点的资源信息和任务状态信息通过通讯器模块上报给该节点资源信息服务;⑧当作业任务执行完毕,分节点核心模块把处理结果通过通讯器模块返回作业管理服务。

图5 计算与负载监视服务逻辑关系图

3.4 资源信息服务

资源信息服务主要承担监听、收集、分发、存储并行计算网络中各节点计算机系统资源、 作业

队列和作业任务状态的功能,为作业管理服务、任务调度服务以及Web管理服务提供各种资源的实时查询及状态通知功能。资源信息服务与其它服务的逻辑关系如图6所示,主要功能为:①接收各节点计算机(包括控制终端)的资源信息、作业任务状态,包括:CPU频率、核心数、使用率,物理内存、可用物理内存,网络传输情况(连接速度、中断分析等),作业任务情况等;②存储实时数据至数据库,保存相关处理日志;③主动向作业管理服务通知作业完成、节点状态和网络状态等事件;④提供接口,实现查询功能(实时状态查询和历史数据查询)。

图6 资源信息服务逻辑关联图

资源信息服务的数据存储有集群实时状态数据存储和作业/任务日志库等两个部分。集群实时状态数据为集群系统内各个计算节点的近期和当前状态,主要包含计算节点的负载数据,这些数据无需持久化,保留一段时间后(如最近3个小时)即可删除;作业/任务日志库中记录了系统内作业的状态数据和计算任务的状态数据以及调度记录,这些信息通过Web服务以XML格式发布,以实现与作业管理和任务调度的集成。

资源信息服务的主要功能实现方式包括:

①各工作节点计算机(包括控制终端)通过UDP协议向资源信息服务发送实时的工作状态数据、心跳包(监控网状状态)、计算机资源数据;通信方式为单向,节点计算机->资源信息服务,即工作节点计算机只向资源信息服务发送数据,资源信息服务不向节点反馈数据。

②资源信息服务对实时数据进行数据库存储。

③作为TCP/IP服务端,节点计算机状态变更时,资源信息服务将主动发送消息通知作业管理服务及任务调度服务。

本文在无线传感器网络与未知目标之间有相对移动的情况下研究了联合TDOA/FDOA定位方法,在文献[12]提出的半正定松弛方法的基础上提出了一种增强型的半正定松弛方法,利用增强型的优化方法有效改善了定位的精度。本文通过深度挖掘优化变量之间的内在联系,并将这些联系构造成合理的约束条件,进而将这些非凸约束松弛成凸约束对半正定规划问题进行收紧,求得了全局最优解。文章理论证明了这些约束条件是有效的,起到了收紧半正定松弛规划问题的作用。增强半正定规划问题是一个凸优化问题,它能找到近似WLS问题的全局最优解,进而避免了收敛于局部极小点的情况。

④作为TCP/IP服务端,提供接口,以供Web管理服务进行实时数据和历史数据查询。

3.5 Web管理服务

Web管理服务主要给用户提供舒适的Web界面,对分布式并行处理系统中各节点的资源、工作状态等进行展示。用户从Web界面可以清楚地了解网络中每个计算节点的各种信息,包括:各节点计算机资源信息、作业队列情况、作业任务工作状态、网络联通情况等。Web管理服务与其它服务的逻辑关联如图7所示;Web客户机通过HTTP发出请求,应用服务器将静态页面送交Web服务器处理;将数据库请求和其它非关系数据服务器的请求经过处理后,送至相应的服务器进行处理;获得结果后再加工成为Web客户机可以识别的HTML页面并发送给Web客户机。

图7 Web管理服务逻辑关联图

由于Python提供了丰富的开发Web服务应用的框架,因此它可迅速定制出符合应用要求的、易于部署的服务系统。为了保证系统的跨平台性,降低系统部署和后期管理的工作难度,Web管理服务使用Python实现。

3.6 集群作业API

客户端API是协同处理系统提供给外部程序调用的一套函数库,封装了包括作业任务下达、作业结果接收、执行状态查看、运行管理等功能。

①数据结构定义

处理作业定义:包括作业类型、作业名称、ID、生成时间、处理目标、优先级、参数列表、资源需求、时间要求、GPU版本等。

处理数据定义:数据名称、ID、数据类型、数据范围、存储信息等。

参数格式:参数类型、参数值、队列长度等。

②作业执行接口组

作业提交:向协同处理系统提交一个需要执行的作业任务,参数包括提交人、XML形式的作业描述。

作业执行暂停:暂停执行一个已提交的处理作业,参数包括作业ID等。

作业取消:暂停执行一个已提交的处理作业,参数包括作业ID等。

③状态接口组:查询并行系统运行情况、作业执行进度。

④运行管理接口组:并行系统访问端口配置、加密方式、初始化、启动/停止等。

4 环境部署与实验

为了验证系统的特点和能力,本文部署了轻量级使用场景,参试设备主要包括一台GPU-CPU混合集群刀片式服务器,一台GPU-CPU处理工作站、一台常规DELL工作站,两台DELL便携机(一台安装Windows 7操作系统,另一台安装国产中标麒麟操作系统)。其中,GPU-CPU混合集群刀片式服务器由3个GPU计算节点和1个管理/存储节点组成。

进行遥感影像处理实验过程中,一是通过增加和减少接入协同处理平台设备数量的同时,查看资源利用情况、节点负载和任务执行情况等;二是对系统下达不同优先级的遥感影像处理任务,查看任务调度执行情况;三是在处理过程中,强制终止一些实验任务,查看任务在节点间的迁移情况;四是人为使个别节点失效,查看任务迁移情况。实验中并行框架呈现出以下特点和能力:①具备以负载均衡的方式完成任务调度的能力;②具备良好扩展性,系统在设备或节点增减的情况下均能正常处理,说明系统能够适应不同规模的资源环境,可通过增减计算节点动态调整装备规模;③具备良好适应性,对资源的配置以及操作系统没有统一的要求,允许异构;④具备独立性,与资源松耦合,遥感影像作业任务启动时,才与专业处理插件和资源即时耦合。

5 结束语

本文根据多源遥感影像高效处理需求,基于服务的设计理念,设计实现了一套并行框架,该框架不仅能合理分配作业任务,实现负载均衡,而且其调度策略灵活,能够适应不同优先级的任务,同时呈现出部署灵活方便、使用友好、适应性强的特点。目前,已经实现了该框架与航空线/面阵、航天线阵可见光影像的典型处理算法的集成,包括影像匹配,DSM粗差探测与滤波、DEM生成、正射纠正等,下一步将继续通过更多算法的并行化改造与集成,对并行框架不断进行测试和优化完善。

[1]李德仁,沈欣.论智能化对地观测系统[J].测绘科学,2005,30(4):9-11.

[2]李德仁.摄影测量与遥感学的发展展望[J].武汉大学学报·信息科学版,2008,33(12):1211-1215.

[3]Foster I, Kesselman C, Tuecke S. The Anatomy of the Grid: EnablingScalable Virtual Organizations [J]. International Journal of HighPerformance Computing Applications, 2001, 15(3): 200-222.

[4]Nikolaos Giannadakis, Anthony Rowe, Moustafa Ghanem. InfoGrid:providing information integration for knowledge discovery [J].Information Sciences-Informatics and Computer Science, 2003,155(3-4): 199-226.

[5]徐志伟, 冯百明, 李伟等. 网格计算技术[M]. 北京: 电子工业出版社, 2004.

[6]都志辉, 陈渝, 刘鹏. 网格计算[M]. 北京: 科学出版社, 2005.

[7] 张卫, 查亚兵. 基于网格的先进分布式仿真综述[J]. 系统仿真学报, 2008, 20(5): 1089-1092.

[8]朱红春,刘海英,张继贤等. 遥感数据处理的网格系统仿真实现及应用研究[J]. 系统仿真学报, 2010, 22(9): 2095-2099.

[9]刘鹏.云计算的定义和特点[EB/OL].[2009-02-15].Http://www.chinacloud.cn/show.aspx?id=741&cid=17.

[10]邓倩妮,陈全.云计算及其关键技术[J].高性能计算发展与应用,2009, 26(1): 2-6.

The Parallel Framework Service System for Cooperative Processing of Remote Sensing Image

Tang Xiaotao1,2, Zhang Li1,2,3, Huang Yan1,2

1. Xi’an Research Institute of Surveying and Mapping, Xi’an 710054, China 2. State Key Laboratory of Geo-information Engineering, Xi’an 710054, China 3. Institute of Geospatial Information, Information Engineering University, Zhengzhou 450052, China

It is necessary and urgent to build up a remote sensing image cooperative processing system which has good extensibility due to the increase of remote sensing image types and inflation of the data size. In this paper, a parallel framework service system for cooperative processing of remote sensing image is designed, which is loose coupled with the computing resources, the system composition and realization approach of the key service are also presented. The tested and verified result shows that this parallel framework can not only allocate computing tasks reasonably, adapt to different priority level task and realize load balancing, but also has the characteristics of flexibility for scheduling strategy and deployment as well as the good adaptability.

remote sensing image;cooperative processing;parallel framework;service system;loose coupling

2015-01-08。

汤晓涛(1963—),男,研究员,主要从事摄影测量处理方面的研究。

P231

A

猜你喜欢

作业管理任务调度状态
“双减”背景下初中生作业管理的实践探究
“减负增质”理念下作业管理的创新策略
落实各方责任 加强特种作业管理
状态联想
基于改进NSGA-Ⅱ算法的协同制造任务调度研究
客车调车作业管理的探讨
生命的另一种状态
基于小生境遗传算法的相控阵雷达任务调度
坚持是成功前的状态
云计算环境中任务调度策略