孙宝三,章宇兵,岳兆娟,史 劼,李 斌
(中国电子科学研究院,北京 100041)
天基计算[1]是指对于在天基平台上实现信号处理和数据处理的统称。计算机技术在天基平台上的应用极大的增强了我们利用太空资源和解决问题的能力。随着对空间观测、通信等功能的性能要求不断提高,通过卫星载荷等设备获取数据的复杂程度不断提高,数据量也呈现大规模的增长。这些将导致空间科学相关学科越来越依赖于计算机科学在空间中的应用,对在天基平台上直接处理信号和数据的依赖性逐步升高。计算技术在天基平台上的应用可以增强有价值情报和数据生成的实时性,提高航天器在空间的自主程度,可以极大的减少星地控制频次,减轻星地传输带宽压力。
天基计算与在地面上的计算有着环境上的诸多不同。由于计算载荷所处卫星平台供电、散热、体积以及空间辐射环境等多方面的约束,使得天基计算平台设计必须着重考虑计算的高效性、低功耗特性,尽可能以较低的功率消耗和散热获得所需的计算性能。针对特定计算场景,需要设计相应的计算架构以实现最大计算效能。同时,为了使整个天基计算平台达到所要求的计算性能,可以通过多卫星平台并行计算实现,也可以通过硬件混合异构的方式实现单一计算平台对多类计算场景的适应能力和计算能力要求。
为此本文在借鉴地面卫星数据处理的平台设计基础上,针对未来天基信息服务体系和天地一体化信息网络[2]的星上计算服务需求,提出了面向多用户多服务的天基计算平台架构,对天基计算多节点并行和硬件混合异构平台技术进行了研究,通过中间件技术实现对硬件平台的资源封装与解耦,并通过服务框架技术实现了对多用户、多应用服务的管理和应用。
在计算领域,不管在天基还是地面处理,使用专用芯片处理器实现信号或者数据的处理和计算是各类应用所必须面临的问题。在处理器的类型选择上,通常会根据具体应用场景来选择计算速度更快、功耗更低的处理器。各类型处理器也正是针对所要解决的问题来设计的。通常来说,主要有CPU、DSP、FPGA、GPU、ASIC等类型处理芯片。其中,CPU主要面向通用基础运算,基于低时延要求设计了大缓存Cache、算术运算单元ALU和复杂逻辑控制单元,侧重处理不同类型数据的计算能力和逻辑判断能力;DSP主要面向信号处理,根据信号处理领域的基本算法设计,具备一定的逻辑判断能力和强大的数据信号流专业处理能力;GPU主要面向图形加速,基于大吞吐量的设计压缩了缓存空间、简化的逻辑控制单元从而换来了大量且高效的算术运算单元,面对的是类型高度统一、相互无依赖的大规模数据和较少逻辑判断的纯净计算环境;FPGA为灵活可编程的逻辑处理单元,广泛应用于信号处理、接口转换和数据流并行处理等;ASIC为专用逻辑处理单元,功耗极低,主要针对特定算法下的逻辑实现,一经定型不可改变。同时,还在这些专用芯片的基础上,根据实际要解决问题,设计了多类计算架构以适应计算的广泛需求。例如,应用于大规模计算的CPU并行集群计算架构、FPGA集群计算、CPU与FPGA异构处理、CPU与DSP异构处理等。
一般来说,对于指定应用和场景,衡量一种芯片的指标,往往有三种:即峰值性能、平均性能和功耗能效比。针对天基平台,所处理数据的规则性、卫星平台功率和散热的限制极大的约束了芯片的选型,在天基平台上以CPU+FPGA架构的异构设计拥有更高的单位功耗性能、更低时延和更快加速性能,在多种计算架构中具有优势。
DDS中间件[3]位于应用程序和操作系统之间,是OMG组织制定的一套 API 与互操作性协议规范,定义了一种以数据为中心的发布/订阅架构。该架构提供了一个与平台无关的数据模型,向用户提供逻辑上的基于主题的订阅/发布通信接口,向下利用操作系统提供的API传输数据,建立主题与地址之间映射关系,实现对底层操作系统以及网络通信的屏蔽,从而广泛适用于构建高性能的分布式异构计算环境。基于DDS基本协议,本文采用了一种先进的国产ZRDDS中间件,其在DDS协议规范规定的基本结构上进行了扩展,不仅实现了对底层硬件、操作系统以及网络的封装,也开发了基于中间件上的负载均衡等资源管理服务,该产品成熟稳定可靠。其基本结构如图1所示:
图1 ZRDDS中间件基本结构
图1中虚线框内部分为ZRDDS基本内容,主要包括了操作系统/通信协议屏蔽层、RTPS互联互通层、发布订阅逻辑层和用户接口层,并分别通过对上和对下接口实现与应用程序和底层操作系统及硬件通信。
操作系统/通信协议屏蔽层主要完成对硬件平台/操作系统资源的封装,实现资源虚拟化并统一提供给上层使用,使得上层不需要关心操作系统资源异构情况而可专注于发布订阅数据模型的逻辑设计和应用开发;RTPS互联互通层通过实现RTPS协议以保证能与不同厂商DDS进行报文层面的互联互通;发布订阅逻辑层利用底层RTPS设计报文以及报文行为来实现发布订阅数据模型,定义并实现发布订阅数据模型中的实体和功能;用户接口层实现DDS规范中定义的接口,应用程序通过这些开发接口创建DDS实体、发布或订阅数据以及通过这些接口来配置发布订阅的通信要求。
在ZRDDS中间件基本功能基础上,可实现对异构资源感知及整合服务,包括了资源状态获取、资源感知、资源整合等功能;也可实现系统重构管理及监控等服务,包括了资源部署、任务调度、异常检测、状态备份、系统监控、异常调度和任务负载均衡调度等功能。这些服务功能有利于天基计算资源的高效利用,是进行天基计算架构技术设计的关键技术之一。
服务框架技术[4]是对具体应用进行服务化的一种平台技术,通过提供服务平台+插件的形式,对多类应用进行集中式的服务化治理,向外提供服务订阅与发布,可以大大减少应用开发成本和提高运行维护效率。
服务平台是支撑各类资源的服务化开发与应用集成共享的支撑平台,提供满足各类服务开发、注册、运行、部署、调度的功能,是支撑服务功能按需共享的关键基础平台。其依托底层的基础资源和通信中间件作为服务运行和通信的支撑,总体分为服务开发平台、服务运行支撑、基础服务组件、业务共性服务组件和服务调用层,为用户提供一体化的服务开发、运行、管理、监控环境。其基本结构如图2所示:
图2中虚线框内部分为服务框架基本结构,并显示与上层业务和下层中间件和基础资源的调用关系。其中,服务开发平台以可视化工具方式提供天基业务功能的服务化封装、开发和部署能力以及客户端应用开发、调试能力,为天基业务功能面向服务架构改造和开发提供便捷的工具;服务运行支撑层为用户提供天基服务部署、运行所需环境,通过实现完善的服务框架,基于通信中间件屏蔽硬件异构环境的差异,集中关注业务功能及流程,通过可视化的服务运行维护与监控,全面掌握各类天基共性及业务服务的运行情况;基础服务组件层基于服务运行支撑层,通过各类服务平台自身的基础服务,让各类天基应用开发变得便捷,开发者可以更关注开发业务功能,是服务平台中的应用基础设施服务,是应用运行环境的基础;天基共性服务层提供公共业务服务用来支撑天基业务系统的开发,主要包括宽带接入服务、数据融合服务、骨干传输服务等,并可根据需要自行扩展共性服务组件;服务调用层提供服务同步异步调用、服务订阅推送调用功能,对于较为复杂的业务系统,可以按照一定逻辑顺序编排组合多个微服务,从而实现增值服务来满足用户业务的复杂需求。
基于以上基础技术,为在高效的异构硬件平台上同时实现为多类用户提供多类服务,提出一种面向服务的天基计算技术架构,如图3所示:
图3 面向服务的天基计算技术架构图
计算平台从架构上分为三个层次,即:资源层,服务层和用层。
(1)资源层包括了硬件资源、操作系统、中间件和基础服务。其中硬件资源支持CPU、DSP、FPGA、GPU等计算芯片及其上运行Linux、Windows等通用操作系统以及实时操作系统如VxWorks等,以及用于数据存储的存储资源和用于数据交互的通信资源。中间件运行于操作系统之上,对下层完成对系统平台的资源虚拟化并实现对硬件资源之间的互联互通,对上提供任务调度、动态部署、负载均衡等基础服务,基础服务通过服务请求订阅和发布机制以接口的形式实现与服务层的通信。
(2)服务层基于中间件及其基础服务部署服务运行支撑平台和开发环境,并在此平台上提供服务插件开发环境,由各专业领域人员进行开发服务插件,以平台+插件的基本形式提供多领域服务,并在此基础上进行服务的编排和组合等基本调用,直接服务于各个应用领域。
(3)应用层描述该计算平台可以提供服务的领域,基于服务层实现,针对天基应用特点,可以为海事应用、航空管制、海外通信保障、抢险救灾、航天管理等多类领域提供用户服务。
为适应天基计算的多类应用场景,在满足天基计算受到功率以及散热方面等多方面约束的情况下,硬件架构应最大程度的追求性能最大化。采用分布式与硬件混合异构的思想,可以充分发挥不同类型芯片的优势,建立可分布式高性能并行和单节点高效能计算的硬件环境。针对天基计算中通常面临的A/D信号处理、图像处理与生成、数据融合以及流程控制等应用场景,设计了分布式混合异构的计算基础平台,其架构如图4所示:
图4 分布式混合异构硬件架构图
该架构具备良好的开放性、通用性、可扩展性,支持CPU、GPU、DSP、FPGA等多种异构计算资源,支持通用和嵌入式操作系统,具备空间高效能计算、软件容错和分布式高可靠存储等能力。
中间件实现异构资源的动态整合、任务动态部署调度、系统监控以及均衡系统负载等功能。ZRDDS提供松耦合跨平台的通信能力,具备不同平台的硬件资源的整合能力,获取系统的全局资源视图和任务视图,提供系统实时监控,并在此基础上进行任务的可执行文件分发、任务启动、任务关闭以及迁移等调度操作;中间件周期性统计系统负载,依据负载统计调度任务,使得全局资源尽量得到最大化利用,系统负载状态较优。
实现异构资源及任务管理的中间件采用C/S架构,服务端为系统监控和重构管理中心,客户端则为各个节点的后台驻留程序。服务端和客户端采用松耦合的通信方式。有别于传统的C/S架构,中间件的服务端不绑定物理地址,可以运行于系统中任意节点上。中间件提供两个基本模块:一为资源感知及整合服务,一为系统重构管理及监控服务。服务端基本组成如图5所示:
图5 中间件实现资源及任务管理服务端
服务端自下而上分为数据分发服务、资源感知及整合服务以及重构管理及监控服务。数据分发服务为服务端提供通信接口;资源感知及整合服务通过数据分发服务接收系统中客户端节点的心跳包数据和状态数据,动态感知整合系统资源,提供给上层服务全局的资源视图和任务视图;系统重构管理及监控服务通过资源感知及整合服务获取系统状态,并依据状态数据实现监控服务和重构管理服务,监控服务为用户提供可视化系统监控界面,重构管理服务完成任务动态部署调度、系统容错以及负载均衡等功能。
实现服务框架与中间件的适配尤为重要。服务框架采用C/S模式,用户在服务描述文件中声明自己的服务,这些服务由代码生成工具在不同语言环境下生成服务端和客户端代码,然后用户实现服务业务逻辑,即可实现服务运行和远程调用。基于中间件的服务框架逻辑层次如图6所示:
图6 基于中间件的服务框架逻辑层次图
其中,RTPProtocol定义了基于实时传输协议的服务数据传输格式,采用优化的编解码算法将传输的数据转换成二进制数据流,有效压缩了服务请求和响应的报文大小,节约了网络带宽,提高了传输效率;RTPTransport基于中间件技术实现了对底层硬件通信资源的屏蔽,实现服务框架平台部署,完成天基业务软件的无缝集成运行。
基于以上设计的天基平台相较传统卫星具有更强大的计算和存储能力,可以应用在以天基为平台的多类领域,例如信息处理、中继传输等多种领域。以信息处理为例,选择遥感图像检测为一个具体的应用例子,通过其良好可并行计算性来验证计算平台的运行架构、并行计算能力和实际数据处理能力。该应用为在海面背景条件下对舰船目标的检测[5],其检测流程如图7所示:
图7 遥感图像舰船目标检测方法流程图
对比在单个和分布式多个节点计算运行效果,可以验证当前设计在并行计算上的加速优势;同时,也可以利用CPU+FPGA架构将算法中主要的傅里叶变换计算部分使用FPGA进行运算。通过以上两种情形对比,将现分布式混合异构硬件架构的高效能、高性能特点,并可作为一个基础应用为天基业务用户提供服务。
(1)专用处理实现计算平台高效能
基于所搭建的概念演示验证平台,通过遥感图像检测应用程序,可以来验证计算平台中专用处理器的计算性能。试验检测图像大小:13312像素×13312像素,RGB彩色。使用FPGA(Xilinx V7)与CPU(Core i5)处理512×512像素单元的计算时间结果对比如表 1所示:
表1 专用处理条件下计算结果对比表
其中FPGA芯片逻辑部分消耗功耗约为4W;逻辑资源占比约为4%;CPU运行功耗恒定,为标准功耗,使用率约为15%。
(2)分布式计算实现计算平台高性能
同样,在使用相同处理器情况下,使用单块CPU和多块CPU在遥感图像检测应用中可以表现出较好的并行性,其运行时间结果如表 2所示:
表2 并行条件下计算时间结果对比表
本文从在天基平台上面向多用户提供多类计算服务的需求出发,针对天基计算平台的基本约束和特点,利用分布式混合异构硬件、DDS中间件和服务框架技术,提出了一种先进的面向服务的天基计算平台架构,并通过验证平台和具体应用进行了实际检验。结果表明这种架构实现了软硬件解耦和分布式并行异构计算,在应用层实现了对多用户和多服务的集中管理,能够为未来天基信息服务体系提供基本途径和实施方案。
最后,感谢华中科技大学自动化学院、南京臻融软件科技有限公司、解放军信息工程大学和中国电子科技集团公司第28所、32所等单位和相关人员在本课题研究中的帮助和支持。