APP下载

一种基于OpenMP多核并行机制的基带数据处理方法

2022-06-02范志芳

空间电子技术 2022年2期
关键词:线程数据处理传输

党 妮,范志芳

(1.中国空间技术研究院西安分院,西安 710000; 2.航天东方红卫星有限公司,北京 100094)

0 引言

遥感卫星[1-6]在实际的应用中越来越广泛,尤其是在军事侦察、资源探测等方面。遥感卫星是低轨道卫星[7-12],其在国防和民用等方面均发挥着巨大作用,数据处理与传输系统的主要功能就是完成数据的传输以及处理,遥感数传从最初的低码速率逐渐发展到如今的高码速率的传输与处理,经历了从单一的传输到处理传输、从单一遥感器的传输到多遥感器的传输、从分离结构到集中结构等过程,目前,遥感卫星的数据处理与传输已经发展为一个较复杂的系统。数据处理与传输的主要任务就是将遥感数据准确地传到地面,而随着数据传输速率的越来越高和图像的复杂度越来越大,对数传基带处理系统的要求也越来越高。如何更加高效、高速率地完成地面数据基带处理成为了难点。

为满足当前卫星数传基带处理系统的要求,本文提出一种基于OpenMP[13]多核并行机制的基带数据处理方法[14],该基带数据处理方法具有如下优点:1)该方法能够实现实时数据处理;2)充分利用CPU多核并行调度的设备数据处理能力,大大提高了设备的资源利用率;3)运用了多核调度、多核指定、并行处理机制来完成数据处理,大幅度提高了数据处理速度,为整个数据处理过程节约了时间;4)采用了双缓存机制,保证数据的有效性、稳定性以及可靠性;5)采用乒乓缓存控制处理机制,解决数据的突发性和集中性给软件系统带来的阻塞,并有效地控制数据在处理和传输过程中的流畅性。

1 基于OpenMP算法的设计

1.1 方案设计概述

OpenMP是串行编程语言上的一种扩展,是为在多核处理器上能够编写并行程序而设计的一种API,其目标是为具有统一地址空间的并行系统提供可移植、可扩展的开发接口。OpenMP比较适合单机多核上的并行计算,而且程序并行化简单,可以把更多的精力投入到并行算法本身,而非具体实现细节。在共享存储平台上工作,采用OpenMP具有简单易行、移植性好等特点,是共享存储系统并行编程的工业标准,提供对并行区域、工作区间共享、同步等处理的支持。随着计算机技术的发展和多核处理器的普及,OpenMP作为多核结构编程模型的有力竞争者,在众多领域得到了越来越多的应用。

为了最大限度地提高数据处理的实时性,解压缩软件在系统中的平台上建立了多个线程进行数据后处理,将数据后处理过程分解到多个线程中并行处理;同时充分利用CPU多核并行调度的设备数据处理能力,提高数据处理速度,降低数据处理时间。在解压缩软件设计过程中成功运用了多核调度、多核指定、并行处理机制来完成数据后处理过程,大幅度提高了数据处理速度,为整个数据处理过程节约了时间。

同样,为保证多核多线程处理机制的稳定性以及数据的可靠性,多级多缓存机制在各处理模块中起着重要的数据转换和枢纽作用。采用了双缓存机制,保证数据的有效性以及可靠性。采用乒乓缓存控制处理机制,解决数据的突发性以及集中性给软件系统带来的阻塞,并有效的控制数据在处理和传输过程中的流畅性。配套多线程处理机制,进一步有效的提高数据后处理稳定性、可靠性、非阻塞性,缩短了后处理时延,保证数据处理的实时性。

1.2 方案设计流程

本文提出一种基于OpenMP多核并行机制的算法实现,并对该算法进行了验证,通过在系统平台上建立多个线程,并将数据处理分解到多个线程中进行并行处理,解决了卫星处理的实时性差、低效率、高耗时、低可靠性、稳定性差等问题,符合当前卫星的快响发展理念,有效提升了卫星处理的实时性。

如图1所示,基于OpenMP多核并行机制的数据处理方法具体流程说明如下:

1)并行化解压缩算法软件首先读取配置文件,根据配置文件里面的内容对软件进行初始化设置同时启动该软件;

2)该软件一旦启动,即开始连接集群软件,等待集群软件下发命令(包括启动某一项处理任务、是否连接前端发送软件、是否连接后端接收软件、终止任务等);

3)若并行化解压缩算法软件收到的是任务终止命令,那么,该软件立即终止本次任务,等待集群下发下一次任务;

4)若并行化解压缩算法软件收到的是启动任务命令,该软件立即开始执行本次任务,具体的处理过程为:

a)首先,并行化解压缩算法软件接收前端发送软件传输过来的原始压缩码流数据;

b)根据读取配置参数进行数据解析,包括本次任务是当前任务数据的卫星标识、下传的数据时间点、下传数据的轨道号、下传数据的通道号等,因为对于不同的卫星、轨道、通道等参数,并行化解压缩算法软件的算法会有所不同;

c)对接收到的原始压缩码流数据进行判读,包括数据格式正确与否的判读、有效标识符的判读、压缩码流长度的判读、计数器连续性的判读等。把不符合的数据(比如数据格式不正确、标识符错误、压缩码流长度过短或者过长、计数器不连续)进行丢弃或者告警处理,丢弃无效的帧数据可以使得并行化解压缩算法软件的解压缩效率更高,不必再对无效的数据进行处理,告警处理可以方便用户知悉本次任务的数据本身就有异常的帧数据;

d)对数据进行并行化的解压缩处理,对不同的卫星不同虚拟信道的数据使用的解压缩算法不一样,我们都对算法进行了并行化的处理,通过并行化的解压缩,就可以把原始的压缩码流数据解压出图像数据,针对不同的卫星型号,可能还需要在解压缩算法里面增加相应的辅助处理,比如首先对原始压缩码流进行图像分块,然后对小图像块进行并行化的解压缩,最后再对并行化解压缩后的图像数据进行图像拼接等处理;

e)将并行化解压缩处理后的图像数据发送给后端的接收软件,以便后端软件设备继续对图像数据进行后级的优化处理或者图像显示。发送机制也采用并行化的方法,对于不同的卫星,具有的虚拟信道个数不一样,多则几十个,少则几个,要将这么多路数据都要近乎无延迟地发送给后端设备,就需要采用并行化的方法,把这么多路数据分配到不同的发送线程中,这样能够保证各自都互不影响,而且能够近乎无延迟地、实时地、同步地发送给后端接收设备;

f)该次任务处理完成,结束本次任务,继续等待下次任务下发。

图2所示为OpenMP共享内存模型,在系统平台的地址空间满足条件的情况下,OpenMP多核并行机制是通过在系统平台上建立多个线程,并将数据处理分解到多个线程中进行并行处理的一种方法,这些多个线程自身是独立进行处理各自的任务,但是它们共享着同一个地址空间,多个线程内部的地址空间分布是系统根据需要自动分配的,比如,当某个线程需要的资源空间比较多的话,就会给分配较大的空间,需要的资源空间比较少的话,就会给分配较小的空间。多线程运算能够保证数据处理过程的高效、稳定,很大程度提升了软件对数据的处理能力和运行稳定性,共享内存避免了对硬盘存储设备的频繁读写,软件开启即申请了一定的大小内存,同时定义线程的个数和大小,且总线程大小不能超过申请的内存大小,在后续数据处理中,对线程进行实时运算,让数据处理过程有条不紊地进行,避免了处理混乱现象发生同时提高了数据处理的准确性,这种多线程并行算法可以同时对多种数据进行同时处理和分析,每个环节之间有其适合的缓存机制缓冲,节省了运算时间提高软件的效率,每个环节处理模块分别使用不同的线程,保证每个处理环节几乎能同时进行,大大减小了处理延迟。

图2 OpenMP共享内存模型Fig.2 Model of OpenMP shared memory

2 基于OpenMP算法验证及测试

为了测试在真实的卫星数据处理情况下,采用并行调度机制下的算法性能的提升效果,采用某卫星的真实的遥感图片(包括城市+山川+河流)作为数据源,分别测试在4∶1模式和无损模式下算法并行化设计前后的性能并进行对比,具体步骤如下:

1)选择一台机架式服务器系统平台,系统性能较优,能够满足任务需求。

2)为了测试使得过程是在真实的卫星数据处理情况下,采用并行调度机制下的算法性能的提升效果,选择采用某卫星的真实的遥感在轨图片(包括城市+山川+河流)作为数据源。

3)由于解压缩在不同压缩比下对解压缩算法效率有影响,选择两种典型的压缩比模式—4∶1压缩模式和无损压缩模式。

4)对4∶1模式下解压缩算法进行并行化设计,把该压缩比模式下的真实遥感数据分别进行并行化解压缩处理,并计算出该数据在并行化解压缩处理后的指标,包括解压缩使用的时间、解压缩速率、所占用的CPU百分比、所占用的内存、所占用的设备资源利用率等。

5)对4∶1模式下解压缩算法常规未并行化设计下,把该压缩比模式下的真实遥感数据分别进行常规未并行化解压缩处理,并计算出该数据在常规未并行化解压缩处理后的指标,包括解压缩使用的时间、解压缩速率、所占用的CPU百分比、所占用的内存、所占用的设备资源利用率等。

6)对无损模式下解压缩算法进行并行化设计,把该压缩比模式下的真实遥感数据分别进行并行化解压缩处理,并计算出该数据在并行化解压缩处理后的指标,包括解压缩使用的时间、解压缩速率、所占用的CPU百分比、所占用的内存、所占用的设备资源利用率等。

7)对无损模式下解压缩算法常规未并行化设计下,把该压缩比模式下的真实遥感数据分别进行常规未并行化解压缩处理,并计算出该数据在常规未并行化解压缩处理后的指标,包括解压缩使用的时间、解压缩速率、所占用的CPU百分比、所占用的内存、所占用的设备资源利用率等。

8)对步骤4~7的试验结果进行分析总结,并制作出表1和表2,表1为4∶1压缩下的并行化前后结果参数对比,表2为无损压缩下的并行化前后结果参数对比,图3为并行前的设备资源利用率,图4为并行后的设备资源利用率。

表1 4∶1压缩并行化前后对比

表2 无损压缩并行化前后对比

图3 并行前设备资源利用率Fig.3 Pre-parallel resource utilization

图4 并行后设备资源利用率Fig.4 Parallel resource utilization

通过表1和表2可以看出,使用了OpenMP并行化后,算法的解压缩效率对于数据的性能提高是非常明显的,均超过了4倍;同时从图3和图4可以看出,并行后解压缩算法充分利用了CPU的并行调度机制,充分利用了多核的处理能力;从CPU的占用率上也可以看到,并行化后,CPU的占用率明显提高,也超过了4倍,且无损压缩的提升倍数大于4∶1压缩的提升倍数,同时算法的内存占用率没有明显地提高,且随着解码时间的缩短,每秒解码的兆像素数有着对应倍数的增加,这说明OpenMP并行化后,解压缩能够充分利用CPU资源,提高解压缩的效率,而且在内存需求上不是非常明显。

综上测试结果表明:采用了基于OpenMP并行化调度体制下的解压缩软件在充分利用硬件平台性能的基础上,能提升将近4倍的解压缩速度,从而能够充分保证卫星数传基带处理需求。

3 结论

本文提出一种基于OpenMP多核并行机制的数据处理方法与验证方法,实现了数据处理的实时性;充分利用CPU多核并行调度的设备数据处理能力,提高了数据处理的速度;运用了多核调度、多核指定、并行处理机制来完成数据处理,大幅度提高了数据处理速度,为整个数据处理过程节约了时间;采用了双缓存机制,保证数据的有效性、稳定性以及可靠性;采用乒乓缓存控制处理机制,解决数据的突发性以及集中性给软件系统带来的阻塞,并有效的控制数据在处理和传输过程中的流畅性。经过大量的测试验证,在该机制下,功能处理软件能够完成实时高速率处理以及实时性的性能需求,该机制对于软件的效率具有较大的提升,具有很好的应用价值和前景。

猜你喜欢

线程数据处理传输
5G终端模拟系统随机接入过程的设计与实现
实时操作系统mbedOS 互斥量调度机制剖析
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
浅析体育赛事售票系统错票问题的对策研究
特斯拉的接班人:电力可以通过空气传输
无人机测绘数据处理关键技术及运用
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
广播电视信号传输的技术分析
浅谈垂直极化天线在地面数字电视传输中的应用