一种光学遥感小卫星数传基带测试系统设计改进
2018-07-06张敬一刘志佳张锐毛双兰
张敬一 刘志佳 张锐 毛双兰
(1 航天东方红卫星有限公司,北京 100094)(2 中国空间技术研究院西安分院,西安 710100)
在电子信息技术发展推动下,光学遥感小卫星可以完成高分辨率光学遥感图像的采集并将数据传输至地面,满足人们对高分辨率遥感信息的需求,同时以其研制成本低、周期短、操作灵活等优势越来越受到广大用户的青睐,成为航天光学遥感领域重要的发展方向。高分辨率光学遥感小卫星有效载荷产生的光学遥感数据量大、数据率高,需要经过星上数传系统处理并传输到地面,由用户使用。在其生产研制过程中,数传地面测试系统作为星上数传、光学载荷数据处理功能测试验证的重要系统,对卫星入轨后有效载荷、数传系统在轨正常工作和应用起着至关重要的作用。
数传地面测试系统主要由数传通道测试系统和数传基带测试系统组成。数传通道测试系统完成数传射频信号处理、解调、帧同步等功能,包括接收天线、射频电缆、衰减器、下变频、解调器(解扰、译码功能可选用)等通用商用设备。数传基带测试系统完成基带数据处理(解扰、译码、解密解格式、解压缩),以及测试数据存储、测试功能模块间数据交互、测试软件集群管理等测试功能,并无商用设备,要根据星上数传系统设计[1-2]进行逆处理设计。近年来,由于需求量旺盛,高分辨率光学遥感小卫星生产向研制批量化发展,基于刀片服务器的数传基带测试系统已无法适应这一趋势,亟需一种小型、通用、灵活、可靠和可扩展的数传基带测试系统。
本文以机架服务器+光纤交换机作为小型、通用、可扩展的硬件架构,继承基于刀片服务器的数传基带测试系统各功能软件,对其进行并行处理和负载均衡优化设计后,移植于新硬件架构,实现一种小型实时数传基带测试系统,可满足现有多种类型高分辨率光学小卫星使用的450 Mbit/s×2通道数传基带数据处理测试功能需求,同时提高系统集成度、通用性和测试效能。
1 与传统数传基带测试系统设计对比
1.1 传统数传基带测试系统设计[3-4]
传统数传基带测试系统在设计原理与实现上保持一致。各测试功能,包括数传基带数据处理(解扰、译码、解密解格式、解压缩)、测试数据存储、测试功能模块间数据交互、测试软件集群管理等,均由对应的功能模块实现。其构成如图1所示。
在图1中,1项功能软件布置于单台硬件设备上,实现1项功能;各功能模块是独立的,通过模块间数据交互功能模块(千兆交换机)互连,进行作业消息和业务数据的交互;集群管理模块通过作业消息与各业务模块交互,完成业务模块启动、运行和停止的统一控制,并收集控制信息、模块间连接信息和业务模块数据处理结果;各业务模块将本模块处理后得到的业务数据传递给下一个业务模块继续处理;系统最终输出载荷数据,由无限带宽(IB)网络传向后端快视。该系统设计由于系统集成度不高、通用性较差和测试实效性差,无法满足光学遥感小卫星批量化生产所需的频繁转场、快速集成和实时判读等需求。
1.2 数传基带测试系统设计改进
立足于光学遥感小卫星批量化生产需求,本文提出了一种小型化、通用化、易于集成、测试系统实时性有效性高的数传基带测试系统设计改进。本文系统设计在原理上继承传统数传基带测试系统功能模块设计。在设计实现上,与传统设计相比,将独立分散的硬件改进设计为小型、通用、可扩展的硬件架构,质量、体积、功耗大大降低;引入混合并行处理机制,提高软件自身及系统软件整体的处理速度,并通过动态负载均衡算法实现一个高复杂或者多个较低复杂度并行处理软件对同一台机架服务器硬件(CPU和内存)资源的负载均衡,在宏观上提高硬件资源平均使用率,显著降低数传基带测试系统级时间延迟。如图2所示,以机架服务器+光纤交换机为系统硬件架构,根据软件功能需求并结合硬件资源,将各功能模块软件灵活均衡地分布在机架服务器上。
图2 本文数传基带测试系统构成Fig.2 Constitution of baseband test system of data transmission proposed
2 数传基带测试系统设计改进关键技术
数传基带测试系统设计改进关键技术有以下3点:①基于机架服务器+光纤交换机的系统硬件设计,将传统设计的独立硬件设计为小型、通用、可扩展的硬件架构;②基于信息传递接口(MPI)+共享存储并行编程(OpenMP)混合并行处理的软件设计,提高多台机架服务器之间和同一台机架服务器上多个同时执行软件的并行处理速度与能力;③OpenMP多线程动态负载均衡设计,实现同一台机架服务器上多个并行软件同时执行时多核CPU和内存资源的负载均衡。
2.1 基于机架服务器+光纤交换机的系统硬件设计
基于刀片服务器的传统数传基带测试系统硬件架构[5]如图3所示。该系统设计考虑刀片服务器大规模软件运算处理能力和处理后数据存储优势,与一些辅助专用设备构建整个系统,从技术角度可以满足数传基带数据处理需求,但是对小型、通用、可扩展等需求存在较大差距。其设计在以下4个方面存在缺点:①由于刀片服务器处理能力和兼容性的局限,只能支持单一刀片配备单一软件,如果需要功能模块增加,刀片服务器也需相应增加,导致系统质量、体积、功耗都随之增加;②对于解扰、译码、解密等预处理功能,由最新的总线和接口标准(PCIE)接口专用硬件板卡配备在专用服务器上实现,作为独立的预处理机,通过千兆交换机连入系统;③刀片服务器本地磁盘写入速度较低,无法完成在原始数据存储的同时传输至后端的功能,此外,单台刀片服务器本地磁盘容量有限,无法作为长期专用存储设备,所以要专门配备2台存储阵列作为原始数据记录设备; ④刀片服务器要使用380 V工业用电供电,对测试场所的供电要求较高且功耗大。
对于不同应用场景,刀片服务器和机架服务器各有利弊[6]。从空间密度上讲,刀片服务器集成度更高、更节省空间,单点存储能力强,布线也更简单,特别是对于大型数据处理系统,刀片服务器更有优势;而机架服务器存在存储数据分散难以管理、不利于资源和数据共享等缺点,但随着计算机技术的发展,机架服务器在单机成本、系统集成度、主板可扩展性、高速海量存储、多模光纤高速传输(TCP/IP协议)接口等方面有较大改进,在构建小型实时光学遥感小卫星数传基带测试系统上,较刀片服务器具有一定优势。①单台机架服务器具有多核处理器和大容量高速内存扩展,可以支持一个或多个软件对硬件资源的需求;②机架服务器支持多种类型硬件扩展接口(包括PCIE接口),实现预处理功能板卡可直接安装在机架服务器上;③机架服务器可自身配置高速海量存储,实现数传原始数据记录的同时向后端传输的功能;④机架服务器电源为普通110~220 V供电,适应各类具有常规供电测试场地,可满足频繁转场测试需求。根据当前光学遥感小卫星对数传基带测试系统测试处理能力的需求,建立如图4所示的硬件架构,4~6台2U(U为美国电子工业联盟标定的服务器外部尺寸单位)机架服务器通过光纤交换机进行互连,可以完成原来刀片服务器及附属设备组成的450 Mbit/s×2通道数传基带测试系统硬件功能。该硬件架构是通用的,可根据测试需求扩展硬件。
图3 基于刀片服务器的系统硬件架构Fig.3 System hardware architecture based on blade server
图4 基于机架服务器的系统硬件架构
2.2 基于MPI+OpenMP混合并行处理的软件设计
传统数传基带测试系统,由于系统硬件异构和整体配置水平较低,系统各功能软件整体运行为流水式串行处理,数据输入与输出时延较大,而光学遥感小卫星测试实时需求越来越迫切,对系统的集成度和处理能力要求高,因此考虑在新硬件架构上,对软件设计加入并行处理机制,解决多个软件同时运行于多台和单台机架服务器的并行实时处理问题。
MPI[7-8]是多主机联网协作进行并行计算的工具,它能协调多台主机间的并行计算,因此在并行规模上的可伸缩性很强,能在从个人电脑到世界TOP10的超级计算机上使用。它可以用于单主机上多核/多CPU的并行计算,但效率低,使用进程间通信的方式协调并行计算,导致并行效率较低、内存开销大、编程麻烦。
OpenMP[9-11]是针对单主机上多核并行计算设计的工具,更适合单台计算机共享内存结构上的并行计算。由于使用线程间共享内存的方式协调并行计算,它在多核/多CPU结构上的效率很高、内存开销小、编程语句简洁直观,因此编程容易,编译器也容易实现(现在最新版的C、C++、Fortran编译器基本上都内置OpenMP支持)。不过,OpenMP最大的缺点是只能在单主机上工作,不能用于多主机间的并行计算。
由以上分析可以看出,OpenMP和MPI可以互补,通过OpenMP和MPI混合方式[12-13],能实现系统内各功能软件在多台及单台机架服务器上的系统级和单机级并行处理。本文采用如图5所示的混合并行处理实现方案。首先,使用MPI实现系统内不同机架服务器所承载软件之间的任务级并行化,通过TCP/IP协议族提供的进程间通信接口,实现软件进程间通信,从而提高软件间数据交互实时性;然后,进程间通信到达本地的数据,处理该数据的本地OpenMP使用后软件完成子任务级线程计算,实现对单台机架服务器多核CPU和内存等计算资源的共享与并行使用。
图5 MPI+OpenMP混合并行处理实现方案Fig.5 Implementation scheme of MPI+OpenMP hybrid parallel processing
2.3 OpenMP多线程动态负载均衡设计
OpenMP特别适用于多核处理器上的并行程序设计。它使用Fork/Join式并行模式(如图6所示)。其基本思想是,一个OpenMP应用程序开始时只有一个主线程,程序中的串行部分都由主线程执行,并行的部分是通过派生其他线程来执行,如果并行部分没有结束,就不会执行串行部分。对于本文所选用的机架服务器,配置一个或多个大运算量格式解析或解压缩OpenMP程序时,机架服务器自身配备的Windows Server 2008操作系统无法很好地完成多核处理器和内存这些共享计算资源的多线程负载均衡问题。
图6 Fork/Join并行模式Fig.6 Fork/Join parallel mode
通常来说,先完成任务的划分并创建相应的多线程,然后才是操作系统对子任务线程进行执行和调度。因此,在进行任务负载划分时,无法预知操作系统可能的调度行为,从而难以知道将来系统的负载情况。在实际系统中,当任务被分解后,每个子任务都将以操作系统线程的形式存在并调度运行。每个支持多核处理器的操作系统,都有一套自己的线程调度算法,而该调度算法将直接影响每个子任务线程的执行完成时间。系统中其他任务的执行情况,又将影响调度算法的执行结果,因此需要根据整个系统的负载变化情况动态决定OpenMP的任务划分和负载均衡[14]。
本文通过对机架服务器及其所使用的Windows Server 2008操作系统、C++编译器进行OpenMP扩展编译,在编译的目标程序代码中设计支持动态创建线程的代码,然后通过程序设计实现系统中的各种线程信息参数收集,并提供反馈机制,包括核心处理器占用数量,每个处理核心所支持的超线程数量,当前系统所能处理的子线程数量,以及当前系统的空闲子线程处理能力的变化历史统计记录。在此程序设计的基础上,通过软硬件平台上大量试验,采集大量数据处理线程与资源分配信息参数数据,分析得到各种因素对任务划分和负载均衡的影响,根据这些因素影响程度的大小,设计多线程对硬件计算资源的动态划分和负载均衡算法,改进操作系统资源调度,使得单台机架服务器可支持OpenMP软件程序多线程负载均衡运行[15-16]。
3 设计改进验证
3.1 系统硬件指标对比
在相同数传测试数据处理能力下,基于刀片服务器的传统数传基带测试系统设计(如图3所示)与本文数传基带测试系统设计(如图4所示),在硬件架构的设备数量、体积、质量和功耗的对比,如表1所示,改进后系统硬件架构的集成度大幅提升,供电通用性显著增强。
表1 2种系统指标对比
3.2 系统软件指标对比
1)单个软件OpenMP使用前后处理速度对比
每个数传基带测试系统功能软件使用OpenMP后,均可实现软件的并行处理。由各软件改进前后测试结果可知,运算量及复杂度较高的软件,其使用OpenMP后处理速度有较为明显的提升。这里以运算量及复杂度最高解压缩功能软件为例,介绍单个软件使用OpenMP前后处理速度对比。表2和表3中给出了采用某卫星真实遥感图片(城市+山川+河流)作为图像数据源,测试4∶1压缩比和无损压缩2种典型压缩处理的解压缩处理性能对比。从表2中可以看到:对同一数据源,改进后4∶1压缩比解压缩的处理时间(解码时间)约是改进前的1/4,解压缩速率约是改进前的4倍;CPU使用率是改进前的4.5倍。从表3中可以看到:对同一数据源,改进后无损压缩解压缩的处理时间约是并行化后的1/5,解压缩速率约是改进前的5倍,CPU使用率是改进前的5.5倍。4∶1压缩比解压缩处理运算量及复杂度比无损压缩比解压缩处理高,改进前后的解码速率稍低。可见,使用OpenMP后可提升数传基带数据处理各功能软件自身的处理速度。
表2 4∶1压缩比解压缩处理性能对比
表3 无损压缩解压缩处理性能对比
2)多个软件OpenMP使用及负载均衡前后对单台服务器资源使用结果对比
图7为传统数传基带测试系统(OpenMP使用及负载均衡前)多个软件在单台服务器(24核CPU,内存16 Gbyte)上运行时资源使用情况。在截图时刻,CPU总平均使用率仅为25%;CPU使用记录显示,24核中只有12核在工作,且12核负载不均衡,系统内存的总使用率达到了11.00 Gbyte。图7中物理内存使用记录曲线,反映的是截图时刻之前物理内存随时间的变化。通过数据和曲线可知:多个软件同时运行时,操作系统对多核CPU和内存调度机制发挥作用。数据输入前,内存使用较高并处于平稳状态;数据输入后,内存使用量短时提升,随着多核CPU从闲置到开始业务处理,内存中缓存数据被快速处理,出现内存使用快速下降并短时维持;随着数据不断输入,多核CPU使用率趋于平稳,内存使用量迅速回到平衡点。在操作系统调度机制下,多核CPU无法实时处理不断输入的数据,内存使用随时间呈线性增长。
图7 OpenMP使用及负载均衡前服务器资源使用情况Fig.7 Server resource usage before OpenMP usage and load balancing
图8为本文数传基带测试系统(OpenMP使用及负载均衡后)多个软件在单台服务器上运行时资源使用情况。在截图时刻,CPU总平均使用率达到了78%;CPU使用记录显示,24核全部负载均衡;系统内存的总使用率在截图时刻达到了8.52 Gbyte。结合物理内存使用记录曲线可知,多个并行软件同时运行时,动态负载均衡发挥作用:在数据输入前,内存使用低于图7;数据输入后,随着多核CPU从闲置到开始业务处理,内存使用迅速下降,维持时间约为图7中的4倍;随着数据不断输入,CPU使用率趋于平稳,内存使用量迅速回到平衡点,并一直保持。
图7与图8不同,是由于OpenMP使用及负载均衡后,多核CPU和内存都工作在较为合理的共享工作范围内,单台机架服务器硬件资源被充分调度给其承载的所有并行软件使用,可满足输入数据率实时处理需求,实现多个并行软件在单台机架服务器上执行。
3)系统软件整体运行实效性对比
在系统层面,通过MPI将系统内各台机架服务器软件进行任务级并行,最终构成数传基带测试系统。与传统数传基带测试系统同时输入相同450 Mbit/s×2通道数据源,通过两者输入输出时延比较时效性。系统输入时间为数据输入起始时间与输入停止时间的差值。系统输出时延分为2个部分:①系统建立延时是指数据输入起始时间与输出起始时间差值;②系统处理时延为系统输出起始时间至系统停止输出时间,由于解压缩是基带测试系统中复杂度最高的软件,在其运行后系统处理时延以解压缩工作时间为主。以在轨卫星载荷平均输出数据率3.6 Gbit/s为例,选取其高压缩比数传原始数据作为系统输入数据源,综合压缩比约为4.5∶1(4路全色4∶1,4路多光谱6∶1),数传帧效率为0.863。试验结果如图9所示,本文系统建立时延显著缩短;系统处理时延约是传统系统的1/4,且与系统输入时间基本一致。由此可见,本文系统除去系统建立延时,可以实时完成输入数据的处理能力,从整星研制角度,可节省研制过程中大量测试处理等待时间。
图9 2种系统输出数据率对比Fig.9 Comparison of output data rate for two systems
4 结束语
本文设计的光学遥感小卫星数传基带测试系统,具有基带处理功能完备、集成度高、通用性强、时效性高等特点,可以很好解决光学遥感小卫星批量化生产需求,如基于通用硬件架构适应不同光学遥感小卫星的快速软件改造,易于运输、快速集成和常规供电等优点适用于频繁转场,可实时判读测试结果,显著缩短测试等待时间。后续将研究基于单台高性能机架服务器的数传基带测试系统,实现更高性能的通用化、智能化、小型化光学遥感小卫星数传基带测试系统。
参考文献(References)
[1] 蒙红英,郝修强.高分一号数传分系统设计及在轨验证[J].航天器工程,2014,23(z1):51-55
Meng Hongying,Hao Xiuqiang. Design and on-orbit verifi-cation of data transmission subsystem of GF-1 satellite [J]. Spacecraft Engineering, 2014, 23(z1): 51-55 (in Chinese)
[2] 张敬一,欧民,毛志毅.小卫星数传基带数据处理通用集成平台设计[J].航天器工程,2017,26(1):79-85
Zhang Jingyi, Ou Min, Mao Zhiyi. Universal integrated platform design for data transmission baseband data processing of small satellite [J]. Spacecraft Engineering, 2017, 26(1): 79-85 (in Chinese)
[3] 刘志佳,严林,宋紫溪.基于刀片服务器的数传地面测试平台设计[C]//2011年小卫星技术交流会论文集.北京:航天东方红卫星有限公司,2011:75-79
Liu Zhijia, Yan Lin, Song Zixi. Design for the test platform of satellite DTS based on blade server [C]//Proceedings of the Small Satellite Technology Conference 2011. Beijing: DFH Satellite Co., Ltd., 2011:75-79 (in Chinese)
[4] 赵利民,倪琳娜,刘勇.遥感载荷通用数据处理平台设计与实现[J].航天器工程,2014, 23(4): 77-83
Zhao Limin, Ni Linna, Liu Yong. Design and practice of general data processing platform for remote-sensing payload [J]. Spacecraft Engineering, 2014, 23(4): 77-83 (in Chinese)
[5] 宋紫溪,严林,覃正熙.高分一号卫星高码速率数据传输地面测试系统[J].航天器工程,2014,23(z1):56-59
Song Zixi,Yan Lin, Qin Zhengxi. Ground test system for high-speed data transmission of GF-1 satellite [J]. Spacecraft Engineering, 2014, 23 (z1): 56-59 (in Chinese)
[6] 张勇.刀片服务器与机架式服务器的比较分析[J].中国教育信息化,2009(9):78-79
Zhang Yong.Comparison and analysis between blade server and rack server [J]. China Education Informatization, 2009(9): 78-79 (in Chinese)
[7] 赵捷,赵荣彩,韩林.面向MPI代码生成的Open64编译器后端[J].计算机学报,2014,37(7):1620-1631
Zhao Jie, Zhao Rongcai, Han Lin. An MPI backend for Open64 compiler [J]. Chinese Journal of Computers, 2014, 37(7): 1620-1631 (in Chinese)
[8] 赵伟彪. MPI并行空间算法在云计算平台上的迁移技术研究[D].成都:电子科技大学,2014
Zhao Weibiao. Research on migration of MPI parallel Geo-information algorithm based on cloud computing [D]. Chengdu: University of Electronic Science and Technology of China, 2014 (in Chinese)
[9] 潘小敏,皮维超,盛新庆.基于共享内存的高效OpenMP并行多层快速多级子算法[J].北京理工大学学报,2012,32(2):164-169
Pan Xiaomin, Pi Weichao, Sheng Xinqing. Efficient parallelization of multilevel fast multipole algorithm based on OpenMP [J]. Transactions of Beijing Institute of Technology, 2012, 32(2): 164-169 (in Chinese)
[10] 刘京.面向Open64的OpenMP相关编译优化技术研究[D].合肥:中国科学技术大学,2015
Liu Jing. Research on optimization technology of OpenMP for Open64 [D]. Hefei: University of Science and Technology of China, 2015 (in Chinese)
[11] 胡荣.多核架构下基于OpenMP的Huffman压缩算法并行程序设计研究[D].长沙:湖南大学,2012
Hu Rong. Research on parallel program design of Huffman compression algorithm based on OpenMP in multi-core architecture [D]. Changsha: Hunan University, 2012 (in Chinese)
[12] 李雨航,李景山,赵仕美.遥感卫星图像系统几何校正多级并行算法[J].遥感信息,2016,31(3):51-55
Li Yuhang, Li Jingshan, Zhao Shimei. Multi-level para-llel algorithm of systematically geometric correction for remote sensing satellite imagery [J]. Remote Sensing Information, 2016, 31(3): 51-55 (in Chinese)
[13] 刘阳.压缩光谱成像中结构稀疏重构算法的分布式计算[D].西安:西安电子科技大学,2014
Liu Yang. Distributed computing for structural sparsity reconstruction algorithm in compressed spectral imaging [D]. Xi’an: Xidian University, 2014 (in Chinese)
[14] 范会敏,李滋田.基于OpenMP 的多线程负载均衡调度策略[J].计算机与现代化,2013,15(12):192-195
Fan Huimin, Li Zitian. Scheduling scheme of multi-thread load balance in OpenMP [J]. Computer and Modernization, 2013, 15(12): 192-195 (in Chinese)
[15] 任小西,唐玲,李仁发.OpenMP多线程负载均衡调度策略研究与实现[J].计算机科学,2010,37(11):145-151
Ren Xiaoxi, Tang Ling, Li Renfa. Study and implementation of OpenMP multi-thread load balance sche-duling scheme [J]. Computer Science, 2010, 37(11): 145-151 (in Chinese)
[16] 陈佐,杨秋伟,万新.一种多线程负载均衡分析方法研究[J].计算机应用研究,2011,28(5):1752-1755
Chen Zuo, Yang Qiuwei, Wan Xin. Research on analyzing load equilibrium of multi-threads [J]. Application Research of Computers, 2011, 28(5): 1752-1755 (in Chinese)