分享

基于 MPI +OPENMP 的红外弱小目标检测并行计算

 汉无为 2021-05-09

0 引言

红外弱小目标检测技术是精确制导系统、目标监视系统的一项关键技术,一直以来是研究的热点。由于成像距离远,红外弱小目标在图像中只有一个到几个像素的大小,加上强杂波干扰和红外传感器像元噪声干扰,图像的信噪比很低[1-2],通过对弱小目标运动全过程中红外辐射特性的分析,发现采用单一波段已无法有效地实现目标检测,只有综合利用多个波段[3-6]的信息才能满足对目标运动全过程的探测需求。红外弱小目标检测计算复杂,且对实时性要求较高。多波段融合的红外弱小目标串行检测时间是3个波段检测与融合时间的叠加,无法满足实际应用中实时性的要求。本文提出一种基于MPI+OpenMP的并行处理方法。并发执行4个进程,3个从进程分别执行3个波段的目标检测计算部分并将处理结果发送给主进程,主进程从3个从进程接收数据并进行波段间融合。各计算进程内部,采用OpenMP线程并行。经仿真验证,这种MPI位于顶层OpenMP位于底层的层次化并行模型适用于红外弱小目标多波段融合检测算法,能取得较好的检测效果。

1 MPI+OpenMP混合并行编程模型

并行编程模型一直是并行计算研究领域中的重点内容,目前2种最重要的并行编程模型是共享存储编程模型和消息传递编程模型。共享存储编程模型具有单地址空间、编程容易、可移植性差等特点,其实现有OpenMP和Pthreads等。消息传递编程模型的特点是多地址空间、编程困难、可移植性好,其实现有MPI和PVM等。

1.1 MPI简介

MPI[7]用于开发基于消息传递的并行程序,为用户提供一个实际可用的、可移植的、高效和灵活的消息传递接口库,它提供了与Fortran和C/C++语言的绑定,是目前最重要的基于消息传递的并行编程工具。各个并行执行的部分通过消息传递来协调步伐[8],控制执行。应用的分解、开发和调试相对困难,通信可能造成大的开销,为了最小化延迟,通常需要大的代码粒度[9]

1.2 OpenMP 简介

OpenMP是基于fork-join的并行编程模型[10],它将程序划分为并行区和串行区,串行区由主线程执行,到并行区主线程派生出多个线程,并行执行该区域的代码。直到并行区域中所有子线程负责的任务都执行完毕后,主线程才继续执行。使用者无需关心复杂的线程创建、同步、销毁等工作。OpenMP完全依赖用户保证制导的正确性[11]。用户通过构造并行区域来编写可扩展的并行程序,可以使计算密集的程序部分得以有效并行。OpenMP基于共享内存的机器,因此它的可扩展性比较差,受系统可用的计算单元的限制,当问题规模增加,很难添加新的资源来加速计算。

1.3 MPI+OpenMP混合编程模型

MPI是集群计算中应用较广泛的编程平台,但是单一的MPI消息传递并行编程模型在多处理器节点集群上并不能实现理想的并行效果。MPI+OpenMP这种层次化的并行模型[12],能够结合分布式内存结构和共享内存结构的优势,提供节点间和节点内的2级并行,模型结构如图1所示。

图1 MPI+OpenMP混合编程模型

MPI+OpenMP并行编程模型容易实现。如图1所示,MPI的初始化和结束仍然调用MPI_Init()和MPI_Finalize()。每个MPI进程可以在#pragma omp parallel编译制导语句所标识的区域内产生线程级并行而在区域外仍为单进程。混合模型中,MPI提供多处理器节点之间的粗粒度并行,OpenMP提供单个处理器内多核之间的数据交互。这种MPI位于顶层OpenMP位于底层的混合编程模型很好地映射了多处理节点集群体系结构。

混合编程模型提供了节点间和节点内的2级并行机制,它的优势在于结合了进程级的粗粒度并行(例如区域分解)和线程级的细粒度并行(如循环并行),在很多情况下,其执行效率高于纯 MPI或OpenMP程序[13-14]。混合编程模型中 OpenMP能够很好地弥补在MPI并行程序中可能出现负载不平衡的问题;混合编程模型首先执行MPI分解策略,启动理想数目的进程,再用OpenMP进一步分解子任务,则可以使所有处理机得到高效利用;混合模型的程序将减少通信的次数,并且OpenMP的线程级并行具有较小的延迟,可缓解纯MPI程序进程间的通信带宽和延迟的问题。

2 基于混合并行的多波段目标检测算法设计与优化

2.1 红外弱小目标检测算法

2.1.1 目标红外辐射特性分析

根据维恩位移定律,黑体电磁辐射能流密度的峰值波长λm与自身温度T成反比,即:

其中,λm的单位是 μm,T 的单位是 K,a=2897.95μm·K,为一常数。红外弱小目标在运动的全过程中,由于自身推进器工作、与大气摩擦等原因具有不同的温度,由上述公式可知,其在不同运动阶段具有不同的红外辐射特性[15],采用单一的波段无法对运动全程实现有效探测,需采用不同的波段进行探测。不同的传感器工作在不同的电磁波段,探测到的目标在对比度、信噪比、强度等方面有很大的差别。在远距离、强杂波干扰的情况下,利用多个波段的探测信息的互补性能够实现对运动全过程的有效监控。

海外仓模式是指在国外自建或租赁仓库,通过海运或空运提前将货物存放至仓库,接到客户订单后迅速从仓库发货,所以送货速度就变得很快,客户满意度提升以及物流成本也会更加便宜。

3个从进程的处理流程相同,图3中只给出了单个从进程和主进程之间的通信模式。

2.1.2 多波段红外弱小目标检测

包含目标的红外图像可表示为:

其中,s(x,y)表示目标信号,在包含目标的红外图像中,目标除了受到背景杂波信号b(x,y)的干扰外,还受到成像和传输过程中的噪声的影响,统称为n(x,y)。背景抑制和阈值分割[16]主要作用是尽可能排除背景杂波和噪声对目标的干扰,并尽可能降低虚警点的个数。红外弱小目标在图像中表现为信噪比很低,仅依靠单帧图像实现检测比较困难,还必须利用目标的运动特性进行多帧关联,以进一步剔除虚警点。红外检测的流程如图2所示。

图2 目标检测算法流程

2.2 串行检测性能分析

图2(b)给出了单个波段检测算法的流程,图2(a)给出了多个波段串行检测的流程。由图2可知,串行检测时间是各个波段的检测时间与融合时间之和。针对1200×1200规格的图像,在高性能计算服务器上进行测试(运行环境见3.1节),测试时间如表1所示。

表1 单帧多波段串行检测时间(ms)

波段1检测 波段2检测 波段3检测 融合时间1235.5 1262.7 1243.2 94.3总时间:3835.7

上述多波段串行算法单帧检测的时间为3835.7 ms,无法满足实际应用中单帧检测时间小于500 ms的要求。因此,必须对多波段检测算法进行并行计算研究,将计算任务进行分解才能充分利用硬件的计算资源,从而获得性能的提升。

2.3 并行设计及优化

2.3.1 算法并行可行性分析

多波段检测算法中,单个波段的检测比较耗时,而融合处理时间较短,3个波段之间只有在融合处理过程中才有数据的交互。因此,可以开启多个进程并发执行各个波段的检测任务,进程之间采用MPI指令进行消息传递。单个波段检测算法中,背景抑制和阈值分割都是针对全局图像像素点进行处理,这种循环遍历像素点的算法比较适合采用OpenMP的for制导指令进行并行任务分担。

手术相关资料 两组患者在手术方式、手术入路、淋巴结清扫数目、手术时间、术中出血量方面差异均无统计学意义(P均>0.05)(表2)。

通过以上分析可以看出,这种多波段的串行检测算法比较适合采用基于MPI+OpenMP的混合并行模型进行加速处理,并发执行4个进程,3个从进程分别处理3个波段的检测任务,然后将处理结果发送给主进程进行融合处理;各个进程内部采用OpenMP的多线程技术对背景抑制和阈值分割等相关算法进行加速处理。后续的仿真结果也验证了该模型对多波段串行检测算法的适用性。

由表2分析可得出以下结论:①优化传统挖掘机摊铺工艺是基于异味控制的必然选择;②采用履带式移动堆料机可以实现最小作业面和最佳堆体高度;③白天能够实现负压+药剂喷洒同步除臭,进一步消减异味总量;④污泥作业区无人化操作是可以实现的。

2.3.2 算法并行设计及优化

多波段红外弱小目标融合检测中,3个波段的检测计算部分采用相同的算法,耗时基本相同,用3个进程来并行计算不会造成负载不均衡的问题。

检测过程要处理多帧图像,3个从进程和主进程之间的通信在循环体内部调用。针对多波段融合检测算法特点,在并行设计时采取以下几种优化策略:

针对VoIP电话这类对实时性要求较高的嵌入式设备,本文采用了NLMS的频域实现FDNLMS算法,该算法借助FFT极大的简化了运算。与NLMS算法的对比实验显示,此算法的综合性能更好,在没有降低收敛性能的前提下,显著改善了算法实时性。

1)进程之间采用重复非阻塞的通信方式,将通信参数与MPI内部对象建立固定的联系,并通过该对象完成重复通信,降低不必要的通信开销。

2)各从进程发送给主进程用于融合检测的数据是不同类型的数据块,在算法实现过程中,自定义新的数据类型,将所需传输的数据以新的数据类型打包[17],以减少通信个数。

小磨河水利工程项目专门成立水土保持监测组,全面系统地采集了水保建设动态监测影像和数据,运用多种统计调查方法和监测法对影响水土流失的主要因子设立监测点。全面确保了水土保持监测工作的顺利开展。该主体工程从2014年开工到2017年10月完善水保设施期间,做到了不定期巡查或检查,并在雨季、植被恢复期增加监测频次。确保了三年多的施工过程中未发生水土流失危害事件。

3)节点内采用OpenMP并行设计时,综合考虑并行粒度和系统开销,选择检测流程中合适的的算法并行化。例如:背景抑制和阈值分割是对全局图像的像素点进行处理,计算比较耗时,而多帧轨迹关联是对阈值分割产生的备选点处理,计算时间较短,所以只针对背景抑制和阈值分割算法采取OpenMP多线程并行。

检测算法在混合编程模型上的实现架构如图3所示。

图3 多波段目标检测在混合编程模型上的架构实现

3.4 加大科技扶持,提高家庭农场的科技水平 科技是第一生产力,家庭农场的科技水平高低决定生产效率和商品竞争力。提高家庭农场的科技水平,要注重以下几个方面。

3 测试环境及结果分析

3.1 测试环境

硬件环境为IBM Flex System x240中的4个节点,每个节点包含2颗E5-266 CPU(2.9 GHz/6-core)共12 core,采用Infiniband网络。其软件环境包括Red Hat Enterprise Linux 6.0的操作系统,支持OpenMP和MPI的Intel Composer XE 2013并行环境。程序采用C语言编写,MPI+OpenMP混合程序需使用带有-openmp选项的编译命令编译,该选项激活、解释程序中的OpenMP编译制导。

3.2 测试结果及分析

选择1200×1200规格的3个波段的序列图像各100帧进行测试,统计单帧平均处理时间如表2所示。

表2 不同方法程序测试时间表

并行实现方法 时间/ms方法1(3个波段串行)3835.7方法2(OpenMP并行)1493.3方法3(MPI并行)1335.5方法4(单节点MPI+OpenMP)724.2方法5(4节点MPI+OpenMP)445.3

本文通过计算各种并行方法的加速比来衡量加速效果,加速比定义如下:

其中,Tparallel为并行方法的计算时间,Tserial为串行检测的时间。方法1为3个波段串行检测,其计算时间为3835.7 ms,本文以该时间为基准计算加速比,从而分析加速性能。通过上述公式,计算得到4种不同并行方法的加速比如图4所示。

图4 不同并行实现方法的加速比

图4中,方法2,3,4都是针对集群系统的单个节点测试。方法2,在多波段串行检测算法中,只针对单个波段检测中的背景抑制和阈值分割进行OpenMP多线程加速处理,加速比能达到2.56。方法3,在单个节点开启4个进程,分别执行3个波段的检测和融合任务,加速比能达到2.79。方法4,在单个节点开启4个MPI进程,3个从进程内部分别采用OpenMP并行,加速比为5.29,其加速效果优于纯OpenMP并行和纯MPI并行。方法5,在4个节点各启动一个MPI进程,各节点内部采用OpenMP并行,加速比为 8.61。

“两票制”的实施,对于药品流通行业是一重大变革,在调整行业结构、规范药品流通行为的作用上已初显成效。如何使政策落实到位,充分发挥效力,促进行业长期健康发展,还需要从立法、市场、监管等多个层面共同发力。在立法层面,有关部门通过出台相关细则,增加政策可操作性,保障政策的稳步实施;在市场层面,企业需提高自身管理水平,调整经营思路,尽快进入角色,积极谋求发展;在监管层面,监管部门需加强对违反“两票制”行为的打击力度,规范药品市场秩序,保护守法企业的合法利益。

测试所用的集群系统,单个节点有12个core,方法5每个进程内部分配12个OpenMP线程,而方法4每个进程分配4个线程。方法5利用了多处理器节点内部的多核计算资源,加速效果优于方法4。如果单从开启的OpenMP线程数来看,方法5理论上的加速比应该是方法4的3倍,但实际为1.63(724.2/445.3)倍。分析其原因在于,单个进程内部虽然采用OpenMP多线程技术,但是只是针对背景抑制和阈值分割等算法,其中还有输入图像数据、轨迹关联、输出处理结果等算法不适合采用OpenMP并行,从而影响了整体的加速效果。下一步可以考虑对这些算法做进一步的优化。

表3是1980年至2015年在北京举办过个人演唱会的歌手群体及变化情况。从表中可见,近年来,台湾地区歌手在北京个人演唱会市场占有非常大的比重。

(1)色谱条件:色谱柱为Sapphire C18柱(250 mm×4.6 mm,5 μm);流动相为乙腈-水(32∶68);体积流量1 mL/min;进样体积10 μL;漂移管温度40 ℃;氮气压力360 kPa。

对于多波段红外弱小目标检测算法,单纯的MPI并行和OpenMP并行实现都不能达到很好的加速效果,基于MPI+OpenMP的层次化并行充分利用分布式存储和共享存储的优势,加速比能达到8.61,单帧处理时间为455.3 ms,满足实际应用中实时性的要求(单帧处理时间小于500 ms)。实验结果表明,这种层次化的并行模型适用于多波段检测算法,能够达到很好的加速效果,实验结果验证了第2节中的理论分析。

4 结束语

红外弱小目标检测对于导弹攻防、实时监控具有重要的意义,对实时性要求比较高,高性能计算在这个领域一直是研究的热点。基于MPI+OpenMP的混合编程模型结合分布式内存结构和共享内存结构的优势,在多波段红外弱小目标检测的实现上能够达到较好的加速效果。这种层次化的并行结构也存在一些问题,例如:MPI进程数目受限、MPI进程间的通信带宽和延迟、OpenMP线程产生的系统开销[18]等问题。在实际应用上,一定要考虑二者的结合能否提供一个更加优化的平台以及如何结合能够达到更高的计算效率。最新发布的Intel® Xeon PhiTM基于MIC(Many Integrated Core)架构的芯片集成了60个精简的x86核心,能够并发执行200多个线程[19]。下一步,可以将检测任务进行分解,将密集计算的部分移植到MIC上,逻辑判断的部分放在CPU端,充分利用CPU和MIC的计算资源,以达到更好的加速效果。

参考文献:

[1] 于海南,赵保军.低信噪比红外图像小目标的检测[J].激光与红外,2004,34(1):40-42.

[2] 罗晓清,吴小俊.利用小波变换与Gabor滤波检测红外小目标[J].红外与激光工程,2011,40(9):1818-1822.

[3] 杨杰,杨磊.基于红外背景复杂程度描述的小目标检测算法[J].红外与激光工程,2007,36(3):382-386.

[4] 李丽亚,卢涛.一种双/多波段红外目标融合检测方法[J].激光与红外,2011,41(6):687-690.

[5] 张光明,盛卫东,樊士伟,等.基于多传感器融合的红外图像序列检测性能分析[J].红外与毫米波学报,2009,28(1):16-19.

[6] 王建涛.一种双波段红外图像弱小目标融合检测新算法[J].西安电子科技大学学报(自然科学版),2008,35(3):530-535.

[7] 都志辉.高性能计算之并行编程技术[M].北京:清华大学出版社,2001:30-58.

[8] 袁景艳,刘方爱,赵芳芳.基于MPI的集群系统的研究[J].信息技术与信息化,2010(2):33-35.

[9] 熊仕勇.并行计算平台的模拟与并行算法的实现[J].科技创新导报,2010(27):25.

[10] 蔡佳佳,李名世,郑锋.多核微机基于OpenMP的并行计算[J].计算机技术与发展,2007,17(10):87-91.

[11] 任小西,唐玲,李仁发.OpenMP多线程负载均衡调度策略研究与实现[J].计算机科学,2010,37(11):148-151.

[12] 冯云,周淑秋.MPI+OpenMP混合并行编程模型应用研究[J].计算机系统应用,2006,15(2):86-89.

[13] Quinn M J.MPI与OpenMP并行程序设计(C语言版)[M].陈文光,等译.北京:清华大学出版社,2004:82-104.

[14] 潘卫,陈燎原,张锦华,等.基于 SMP集群的 MPI+OpenMP混合编程模型研究[J].计算机应用研究,2009,26(12):4592-4594.

[15] 田国良.热红外遥感[M].北京:电子工业出版社,2006:20-25.

[16] 杨卫平,沈振康.红外图像序列小目标检测预处理技术[J].红外与激光工程,1998,27(1):23-28.

[17] 陈辉,孙雷鸣,李录明,等.基于MPI+OpenMP的多层次并行偏移算法研究[J].成都理工大学学报(自然科学版),2010,37(5):528-534.

[18] 张延红,史永昌,朱晓珺.非规则循环的OpenMP调度算法[J].计算机工程,2011,37(6):68-70.

[19] 王恩东,张清,沈铂,等.MIC高性能计算编程指南[M].北京:中国水利水电出版社,2012:30-48.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多