基于MPI、MapReduce和OpenMP混合编程的高分三号数据分布式并行转换算法

2024-08-18 00:00史超蔡源浩陈超姚术林陈云
科技资讯 2024年13期

摘要:高分三号是我国C波段多极化合成孔径雷达卫星,形成三星组网星座。PolSARpro是欧空局支持下的一款SAR影像处理的开源软件。为了便于使用该软件来处理高分三号数据,提出了一种根据PolSARpro软件的数据格式要求进行分布式并行转换算法,该算法内层采用OpenMP按极化方式并行计算,中间层采用MapReduce按景并行处理,外层采用MPI按任务分布式计算,最终实现将高分三号极化数据快速精确转化为复数散射矩阵S2数据格式,并且通过KingMapV10.0平台实现了算法并在实际数据中进行测试,验证了算法的高效性、可行性和正确性。

关键词:高分三号复数散射矩阵合成孔径雷达并行计算分布式计算

中图法分类号:P237

DistributedParallelConversionAlgorithmofGF-3DataBasedonMPI,MapReduceandOpenMPHybridProgramming

SHIChao1*CAIYuanhao2CHENChao1YAOShulin2CHENYun2

1.HulunbeirBigDataCenter,Hulunbeir,InnerMongoliaAutonomousRegion,021000China;

2.HulunbeirSmartCityDevelopmentResearchInstitute,Hulunbeir,InnerMongoliaAutonomousRegion,021000China

Abstract:Gaofen-3istheC-bandmulti-polarizationSARsatelliteinChina,andnetworkedaconstellationof3satellites.PolSARproisanopensourcesoftwareforSARimageprocessingsupportedbyESA.InordertoprocessGF-3dataconveniently,thispaperproposesadistributedparallelconversionalgorithmaccordingtothedataformatrequirementsofitssoftware,internallayerbasedonOpenMPbypolarization,intermediatelayerbasedonMapReducebyScene,andexternallayerbasedonMPIbytask,whichcanquicklyandaccuratelyconvertGF-3polarizationdataintocomplexsinclairmatrixdataformat.ThealgorithmisimplementedonKingMapV10.0platformandtestedinrealdata,whichverifiestheefficiency,feasibilityandcorrectnessofthealgorithm.

KeyWords:GF-3;Complexsinclairmatrix;Syntheticapertureradar;Parallelcomputing;Distributedcomputing

2022年4月7日,我国成功发射高分三号03星,中国海陆监视监测迎来“三星组网”时代[1],满足海陆观测快速重访需求,为多极化SAR卫星数据业务化应用提供支撑。高分三号在海洋和陆地监视监测中具有全天候和全天时的特点,是我国实施陆地环境资源监测、海洋开发和防灾减灾的重要技术支撑[2-4]。PolSARpro是由法国雷恩第一大学电子和电信学院教授EricPOTTIER等领衔开发的免费用于极化科学研究与教学开源处理软件[5]。为了便于利用PolSARpro开源软件处理高分三号数据,需要根据其软件的数据格式要求进行快速的转换。当前PolSARpro软件(官网上最新版本是v6.0.4)已集成了高分三号数据的导入处理[6],但数据转换效率相对较低。陈云等人[7-9]虽然给出了较高效的分布式并行转换算法,但性能相对还是偏低。陈云[10]采用QTConcurrent并行框架实现,在单机环境下有更好的性能表现,但未实现分布式并行计算。因此,本文首先通过公式推导进而简化得到中间参数,给出了基于MPI、MapReduce和OpenMP混合编程的分布式多重并行转换算法;其次通过实际高分三号数据,验证算法的高效性、可行性和正确性;最后通过试验性能对比分析,表明本文方法可以相对更高效地解决上述问题。

1算法原理

本文主要针对高分三号L1A数据产品进行数据转换处理。该数据产品主要包括RPC文件、TIFF文件和影像元信息文件等,TIFF文件按BIP像元格式保存,其实部和虚部都是按16bit通道存储。

由于获取的GF-3卫星SAR数据为L1A级单视复图像,在应用前需要进行数据预处理。由GF-3卫星L1A级数据获取后向散射系数的定标公式[11]如下。

式(1)中:单位为dB,是雷达后向散射系数;在L1A影像中,其中,,为1A级数据产品实部,为1A级数据产品虚部,为该景影像量化前的最大值,该参数可通过元数据文件字段获取。是该景影像的雷达散射的定标系数,该系数可通过L1A影像元数据文件获取CalibrationConst字段。

根据PolSARpro软件的复数散射矩阵数据S2数据格式要求,以及根据文献7中的公式推导优化,记:

记:,为linear形式的实部后向散射系数;其中,单位为dB。

记:,为linear形式的虚部后向散射系数;其中,单位为dB。

则有:

具体算法主要流程设计如下文所述。

2算法设计

本文算法外层分布式并行处理过程采用MPI,中间层并行处理过程采用QtConcurrent并行计算框架,内层并行处理过程采用OpenMP进行混合编程实现。

2.1分布式并行开发环境的安装部署

(1)建OpenMP并行计算开发环境,具体配置过程参考文献8相关内容。

(2)搭建MapReduce并行计算开发环境。先安装好QT5软件;接着在VS2015开发环境中创建的QT工程中配置好项目属性:配置属性->C/C++->常规->附加包含目录中加入QTConcurrent头文件目录,链接器->常规->附加库目录中加入QT5的lib库目录,链接器->输入->附加依赖项中加入Qt5Concurrent.lib;最后在源码中添加<QtConcurrentRun>和<QtConcurrentMap>等头文件。

(3)搭建MSMPI分布式并行计算开发环境。先安装好msmpi软件环境;然后在上述开发环境中继续配置好项目属性:配置属性->VC++目录->包含目录中添加MSMPI头文件目录,64位环境配置为$(MSMPI_INC);$(MSMPI_INC)\x64,在VC++目录->库目录中添加MSMPI库目录,64位环境配置为$(MSMPI_LIB64),链接器->输入->附加依赖项中添加msmpi.lib;最后在源码中添加<mpi.h>头文件。

2.2分布式并行环境主要处理流程

(1)MPI进程通过调用函数MPI_Comm_size来确定一个分布式环境中通信域中的进程总数N。

(2)MPI进程通过调用函数MPI_Comm_rank来确定它在通信域中的序号ID。并使用进程的序号来决定它负责处理任务中高分三号数据集的哪些景。

(3)MPI调度进程获取所有高分三号数据待处理任务列表GF3_TaskList。

(4)MPI调度进程从GF3_TaskList中列表中获取高分三号数据集GF3_DataList,通过MPI_Isend函数把该数据派发给某个MPI处理进程。

(5)MPI处理进程通过MPI_Irecv函数收到高分三号数据集GF3_DataList后,中间层采用调用QtConcurrent::map并行框架实现多景高分三号影像数据的处理,输入参数为高分三号数据列表GF3_DataList,以及每景高分三号数据的Convert并行转换函数。

(6)在Convert并行转换函数中,最内层进一步采用OpenMP按HH、HV、VH和VV等极化方式进行并行处理。

(7)采用QFuture的waitForFinished等待方法,直至MPI进程中所有高分三号数据都处理完成。

(8)当MPI处理进程处理完成后,通过MPI_Isend函数把处理结束信息返回给MPI调度进程。

(9)重复上述步骤(4)到步骤(8)过程,每轮并行处理N景高分三号数据,直至所有高分三号数据都处理完成。

注意:通常高分三号原始数据为.tar.gz压缩包,使用前如未解压应先解压。

3算法实例

采用地理信息系统开发平台KingMapV10.0进行验证,平台通过C/C++语言实现。平台的运行环境如下。

计算机配置:操作系统采用MicrosoftWin11专业版;内存为LPDDR4x16.0GB,3733MHz;CPU为11thGenIntel(R)Core(TM)i5-11300H@3.10GHz,四核,8线程;内置固态硬盘为512GB,M.2接口;外置移动固态硬盘为2TB,Type-C接口;显卡为Intel(R)Iris(R)XeGraphics集成显卡,128M。

为了方便对比测试,不妨在上述电脑上配置两台相同配置的虚拟机,具体如下:操作系统为MicrosoftWindows7旗舰版;内存为6.0GB,LPDDR4x;CPU为11thGenIntel(R)Core(TM)i5-11300H@3.10GHz,3核;硬盘大小为120GB;集成显卡。

算法程序以高分三号4景全极化条带1数据(数据列表如表1所示)进行转换,经验证本文算法转换后的数据结果与PolSARpro软件生成的结果一致,表明算法真实可靠。不同的算法以及不同的运行策略下的性能结果如表2所示。

运行效率分析:采用同样配置的双机环境下,基于MSMPI和OpenMP混合编程方法处理4景共花费约12.15s,而本文采用基于MSMPI、MapReduce和OpenMP混合编程方法也同样处理4景共耗时约10.75s,因此双机分布式环境下,引入MapReduce框架节约了1.40s。同时,随着数据量的增大,性能受数据存取影响较大,受存储设备限制,数据存取时间比较刚性,难以随着并行化程度提升而明显提升。

每景数据的大小可能不一,因此针对每景的处理时间代价也不一样,而通过融入MapReduce并行计算框架,在分布式环境下,最终转换完成时实现整体上时间花费更少,从而达到更好的性能。

虽然在分布式环境下提升了性能,但由于数据大小不一,转换时间各不相同,数据存在倾斜情况,因此,在分布式环境下,有待针对数据的倾斜情况进一步完善动态调度机制,以期达到分布式环境下每台服务器的负载均衡。

由于受数据存取和计算能力的限制,因此性能达到一定程度后反而出现性能下降情况,因此在实际应用过程中需要进一步进行算法调优。

本文算法涉及分布式环境下的并行式转换多时相高分三号影像数据集时更具优势。

4结语

本文通过简化计算公式,提出了一种基于MPI、MapReduce和OpenMP混合编程的高分三号复数散射矩阵数据分布式多重并行转换算法。该算法已在地理信息系统开发平台KingMapV10.0上编程实现并采用实际数据进行测试,验证了算法的高效性、可靠性、准确性和易扩展性。当然,本文也存在不足之处,有待支持不同成像模式的多种极化方式数据,将在另文讨论。

参考文献

[1]张蕾.数说“太空全能神探”[EB/OL].(2022-04-08)[2024-01-17].https://news.gmw.cn/2022-04/08/content_35642673.htm.

[2]张庆君.高分三号卫星总体设计与关键技术[J].测绘学报,2017,46(3):269-277.

[3]国家国防科技工业局重大专项工程中心,国家航天局对地观测与数据中心.2018中国高分卫星应用国家报告(标准规范卷)[M].北京:国防科工局重大专项工程中心,2018.

[4]国家国防科技工业局重大专项工程中心,国家航天局对地观测与数据中心.2018中国高分卫星应用国家报告(共性产品卷)[M].北京:国防科工局重大专项工程中心,2018.

[5]ESA.PolSARpro[EB/OL].(2024-01-17)[2024-01-17].https://earth.esa.int/web/polsarpro/home.

[6]POTTIERE.PolSARprov6.0(BiomassEdition)Software[EB/OL].(2023-07-01)[2024-01-17].https://ietr-lab.univ-rennes1.fr/polsarpro-bio/.

[7]陈云,鞠佳衡,林伟木,等.一种高分三号复数散射矩阵数据快速转换算法[J].测绘与空间地理信息,2022,45(3):50-52.

[8]陈云.基于OpenMP的高分三号数据并行转换算法[J].测绘与空间地理信息,2022,45(6):85-86,91,95.

[9]陈云.基于MPI和OpenMP混合编程的高分三号数据分布式并行转换算法[J].测绘与空间地理信息,2024,47(2):43-45,49.

[10]陈云.基于MapReduce的VCT3.0多图层面间接线并行构建算法[J].测绘地理信息,2022,47(3):157-160.

[11]国防科工局重大专项工程中心,中国资源卫星应用中心.高分三号卫星地面系统用户手册[Z].北京:中国资源卫星应用中心,2017:1-39.