本站小编为你精心准备了GNSS数据并行解算设计及实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
《测绘科学技术学报》2015年第五期
摘要:
基于精密单点定位技术的非差模式是当前gnss数据处理的主要策略之一。随着测站规模的增大,非差模式的处理时间也线性递增,传统的串行处理方法需消耗大量的计算时间。采用工厂模式和责任链模式实现了非差精密单点定位;利用轻量级的并行编程技术从底层设计并实现了基于任务的非差多核并行解算;进一步在网络多节点环境中建立并非差计算服务,实现了网络多节点协同并行解算GNSS数据。通过大量数据的测试与试验,验证了多核多节点的非差并行解算方案的高效性。试验结果表明,单节点多核并行、双节点网络并行、四节点网络并行、六节点网络并行的计算效率分别比单节点串行方案平均提高了2.74,5.30,9.38和14.69倍。
关键词:
多核多节点;非差模式;大型GNSS网;并行计算;工厂设计模式;任务并行库
大型GNSS网络数据的快速处理,特别是实时数据处理的相关理论研究及应用受到越来越多的关注与重视[14]。基于基线网解的双差法和基于精密单点定位技术的非差法,是GNSS数据的两种主要处理策略。双差网解法的计算时间随数据规模的增加而呈几何量级增加,难以满足大规模数据快速处理需求[56]。而非差法的计算时间呈线性增加,逐渐成为GNSS大网数据处理的新趋势[3]。随着网络与通信技术的飞速发展,出现了以网格计算与云计算等为代表的新型网络计算平台,利用网络中多台计算机建立一个并行、分布的计算平台成为大规模测量数据处理的首选方法[712]。传统的GNSS数据处理程序多是针对单处理器体系架构编写的串行模式,对当前数据处理的硬件平台性能的利用效率很低。这里着重研究了如何在多核多节点的网络计算环境下,采用非差模式对GNSS数据进行快速解算。
1非差精密单点定位的设计及实现
非差精密单点定位技术以高精度的卫星轨道和钟差产品作为空间参考框架的接口,利用单台接收机获得的GNSS载波和伪距观测量解算出测站的高精度坐标[5]。其数据处理流程一般包括,文件读取、数据预处理、误差改正、参数估计和结果分析与输出等5个模块。在Gnsser软件[13]平台上采用工厂设计模式和责任链设计模式对该流程进行设计并实现,如图1所示。在非差工厂模式中,将当前历元的观测信息作为一个原料,通过生产加工得到当前历元产品。更新当前历元产品信息,不断循环生产,直到所有的历元原料处理完毕,生成最终的结果文件。核心的生产加工环节主要采用责任链模式实现。在图1中,文件读取模块实现对相关数据文件的读取,包括观测数据(.O)、精密星历与钟差产品(.sp3、.clk)、天线信息(.atx)、地球自转产品(.erp)、码偏差信息(.DCB)和海潮信息(.BLQ)等,并检核文件的日期、测站名及文件类型等信息是否匹配。
数据预处理模块包括原料检核责任链、周跳探测责任链、卫星信息处理器和卫星过滤责任链等。其中原料检核责任链包含观测值类型、有效卫星数量、观测时间和观测值大小等多种检核类;周跳探测责任链实现了高次差法、MW法等多种周跳探测方法;卫星处理器是利用精密星历和钟差产品计算信号发射时刻的卫星坐标、钟差,根据站星坐标计算高度角、方位角等信息;卫星过滤器则是根据卫星高度截止角、卫星健康状态等信息,剔除不可用卫星。误差改正模块负责对各种误差源进行精确的改正,由模型改正责任链和观测值改正责任链组成。其中模型改正责任链加载的是所有通过模型对观测值进行改正的类,如对流层改正、固体潮改正、海潮改正、卫星与接收机的天线相位中心改正、相位缠绕改正和相对论改正等;观测值改正责任链加载的是通过外部文件对观测值直接进行改正的类,如DCB改正等。采用责任链的设计模式使得软件代码具有良好的维护性和重构性,便于模块化管理。如对流层改正通过接口定义实现了多种供责任链选择的模型改正类,包括Neill模型、VMF1模型和GMF模型等。参数估计模块包括平差矩阵生成器和平差处理器。其中平差矩阵生成器通过先验信息和当前历元的观测信息,生成系数矩阵、常数项、权阵等;平差处理器提供多种参数估计方法,如Kalman滤波、序贯最小二乘等。分析与输出模块中的产品检核责任链负责对当前历元产品进行精度评价、残差分析以及参数更新等,最终输出当前任务的计算结果。按照上述流程在VisualStudio2013平台上采用C#编程语言实现了非差精密单点定位功能。通过大量GPS数据对软件的定位精度与稳定性进行了测试,具体的参数模型设置与精度分析详见3.2节。
2非差精密单点定位的并行设计与实现
2.1非差精密单点定位的多核并行计算当前CPU进入“多核时代”,采用并行计算模式能提高GNSS数据处理效率和硬件平台的利用效率[810]。多线程并行程序的调试非常复杂,开发适应于多核环境的并行计算程序的难度远高于同样功能的单线程程序,微软的.NET4并行扩展有效降低了在.NET平台上开发并行计算程序的难度,基于任务的并行库TPL负责并行计算任务的分派工作,提升了并行开发效率[14]。采用该任务库,在Gnsser软件上进一步设计并开发了基于任务的非差多核并行计算功能,其设计流程如图2所示。在图2中,由于n个观测文件的非差计算具有良好并行特征,因此将每个观测文件的非差计算设计为一个计算任务,采用TPL提供的轻量级并发模型将多个非差任务按照箭头流程进行并行处理。首先,多个非差任务并行进行初检核,加载精密星历等其他辅助文件;然后所有非差计算任务并行调用图1已设计的责任链和处理器对当前历元进行处理,并行分析与输出计算结果;最后对所有任务的结果进行输出保存。由于多个线程同时处理,并发性的数据访问和计算可能导致不可预知的结果。对于一次只能允许一个任务访问的临界区,如图2中的虚线框所示的文件信息读取、精密星历插值计算、随机模型获取、结果文件保存等,如果多个任务并发访问这些临界区将会导致错误结果。因此,使用互斥锁(lock)提供的对象同步访问机制,建立了文件锁、星历锁和随机模型锁等互斥锁,使得同步并发过程只能逐一访问这些临界区。只有当某个任务获得了锁,才对该任务执行临界区的代码,抑制其他任务对象的并行访问。
2.2非差精密单点定位的网络并行计算利用网络连接多台计算机构成的分布式计算环境,为GNSS数据处理提供了新的硬件平台。通过采用开放的协议和一致的接口编程可实现网络多节点协同处理GNSS数据。WCF技术整合了.NET平台下所有与分布式系统有关的技术,具有跨平台、安全可信赖和面向服务架构等特征。采用WCF技术建立并非差网络技术服务,实现非差网络并行计算。首先将2.1节实现的非差多核并行计算采用统一接口方式定义网络沟通契约,实际非差多核并行计算服务代码由这些合约接口派生并建立;然后统一采用HTTP等协议进行网络通信绑定;最后在每个节点的互联网信息服务IIS(InternetInformationServices)平台上非差服务。假设网络中有4台计算机,如图3所示,在每台计算机上非差服务(图3中的非差服务A,B,C和D),每个非差服务进行多核并行计算。假设每台计算机的物理核数目为m,每次分配m个非差任务到每台计算机进行多核并行计算。用户端或客户端通过网络并行调用多个节点提供的非差服务,将计算指令通过网络传递给计算节点,计算节点启动非差多核并行计算程序并返回结果,最终实现多节点网络并行处理GNSS数据。通常待处理的非差计算任务数远大于可用计算节点数目。为了保证分布式计算环境的负载均衡,按节点的物理核数目进行任务分配。以单个文件的非差计算为最小任务单位,物理核数为m的节点每次分得m个计算任务,当完成后再分得m个任务,直至所有任务完成。通过上述任务自动分配策略,保证了所有节点在大部分时间内保持繁忙计算,实现了负载均衡的潜在执行。
3试验与分析
3.1数据与环境取IGS测站观测数据作为试验数据。为了方便数据的管理,所有数据存放在局域网中公共的FTP服务器上。每次的计算指令仅包含测站名和测站日期等信息。计算节点接收到计算指令后,解析计算任务,自动从FTP服务器下载测站数据,然后进行非差定位解算,再将计算结果上传到FTP指定目录。在远程局域网(郑州信息工程大学陇海路校区)中多台台式计算机上WCF非差计算服务,作为服务器端;本地客户端(郑州信息工程大学中心校区)调用服务器端的若干节点进行GPS数据并行处理。所有计算节点配置基本相当(主频2.8~3.0GHz,内存4~8Gb),物理核数均是4核。WCF非差计算服务器采用VisualStudio2013C#.NET框架开发,客户端为桌面应用程序。
3.2精度分析选择全球分布的291个IGS测站(采样率为30s),分布如图4所示。利用Gnsser软件进行批量非差精密单点定位解算,将结果与IGS的当天日解坐标文件进行比较。数据处理策略中,观测值采用无电离层组合,高度截止角取10°,卫星轨道及钟差采用IGS的15min间隔精密星历和5min间隔的精密钟差产品,天线文件采用igs08.atx,对流层延迟采用GMF模型改正。软件具体参数与模型设置如表1所示。ENU的3个方向与IGS的日解“真值”偏差和统计结果如图5和表2所示。从图5和表2中可以看出,291个站的E,N和U方向的偏差绝对值的平均值分别为5.2,2.7和7.5mm,最大值分别是27.3,13.8和35.2mm;E和N方向的RMS不超过8mm,U方向的RMS约为10.1mm,且3个方向均不存在系统性偏差。进一步统计三维坐标的位置偏差,平均位置偏差为9.8mm,最大偏差为43.8mm。可见,软件目前的非差静态定位功能精度较为可靠稳定,达到了同类商业软件的定位精度量级,能够提供厘米级甚至毫米级的静态定位服务。
3.3效率分析将不同的测站规模(测站数分别为96,192,384,768和1536)的非差计算任务分别采取单节点串行、单节点多核并行、双节点网络并行、四节点网络并行、六节点网络并行等5种方案进行计算。经过多次重复性试验,统计每个方案的计算时间。结果如表3所示。由表3可知,随着测站数的增多,单节点串行计算方案的计算时间呈线性递增趋势。节点的计算压力增大,计算实效性变低。采用多节点多核并行方案后,计算时间均得到有效缩短。其中,单节点多核并行方案、双节点网络并行方案、四节点网络并行方案、六节点网络并行方案的计算效率分别比单节点串行方案平均提高了2.74,5.30,9.38和14.69倍。比如处理1536个测站,单节点串行需要691.05min,而六节点并行方案仅需要48.16min,处理效率提高了14倍多。由于观测文件彼此大小不均、网络通信传输时间开销不同等原因,随着节点数的递增,并行计算效率的增幅有所降低,但采用更多的计算节点,将获得比单节点更高的计算效率。
4结论
1)采用工厂模式和责任链模式实现了非差精密单点定位技术。软件具有良好的维护性和重构性,接口的封装定义便于模块化管理。在静态定位测试中,E,N,U这3个方向的平均偏差值分别为5.2,2.7和7.5mm,三维坐标平均位置偏差为9.8mm,与同类软件具有相同量级的定位精度,能够提供厘米级甚至毫米级的静态定位服务。2)从底层对非差数据处理流程进行并行设计,使用互斥锁提供的对象同步访问机制进行高并发数据访问与处理,采用TPL技术实现了基于任务的轻量级多核并行计算;基于WCF技术建立并非差计算服务,实现了网络多节点协同处理GNSS数据。提出的多核多节点非差并行处理策略具有面向服务、负载均衡、简单易操作、可扩展性强、自动化程度高等特点。3)多核多节点的并行解算方案比集中式串行方案计算效率都高,如试验中六节点的网络并行处理比单节点串行处理效率提高了14倍多。随着测站规模的增加和节点数的递增,非差并行处理的高效性更加明显,可有效解决GNSS大型网络数据解算压力。
作者:崔阳 陈正生 吕志平 李林阳 周海涛 单位:信息工程大学 二炮工程大学