基于BPE的GNSS数据并行快速解算*

2013-09-20 08:04陈正生吕志平
大地测量与地球动力学 2013年5期
关键词:分布式计算配置文件测站

陈正生 吕志平 崔 阳 吕 浩

(信息工程大学地理空间信息学院,郑州 450052)

基于BPE的GNSS数据并行快速解算*

陈正生 吕志平 崔 阳 吕 浩

(信息工程大学地理空间信息学院,郑州 450052)

采用分布式计算技术,基于Bernese处理引擎,实现对Bernese 5.0 GPS数据处理软件的并行化处理,突破了其在单机解算GNSS测量数据时的规模限制和时效性差的问题,并通过精密单点定位和双差网解试验验证了该方法的可行性和优越性。

Bernese处理引擎;分布式计算;并行计算;快速解算;全球卫星导航系统

1 引言

Bernese GPS软件是当前国际上少有的高精度GNSS(Global Navigation Satellite System)数据解算软件,具有用户界面友好,模块条理清晰,功能强大等特点,被广泛应用于GNSS卫星定轨以及长基线、大面积的导航定位应用中[1,2]。但该软件存在数据准备和配置比较麻烦和同时处理测站的数量有限等不足。据本文测试,按照单机版的Bernese 5.0默认设置,其精密单点定位(PPP,Precise Point Positioning)解算测站数量限制在200个以内,另外,使用全天采样率为30 s的GPS观测数据,当测站数超过30个时,该软件执行双差网解的速度将大大增长,甚至有可能出现卡死现象。通常,解决软件计算时间过长和数量限制可以通过增加计算机硬件性能、修改软件内部设置来实现,但是前者花费代价大而效果低,单台计算机硬件性能的增加难以满足数据规模的扩张,而后者需要修改软件内部代码,对非软件开发者而言,实现难度较大。为了解决以上不足,本文对Bernese进行了分布式计算扩展和封装,在不改变其内部结构的条件下,实现分布式应用,在易用性和执行效率上都取得了较好的效果。

2 分布式计算与并行计算

分布式计算是一种把需要进行大量计算的工程数据分隔成小块,由多台计算机分布计算的方法,其运行环境是分布式系统。分布式系统是能彼此通信的多个独立计算装置所组成的集合[3],其中独立计算装置包括范围很广,从超大规模集成电路芯片,到紧密耦合共享存储器的多处理器、本地工作站集群、局域网、因特网等。分布式计算具有高性能的计算能力的理论基础是并行计算。本文主要采用空间上的并行计算。为了方便描述并行计算的性能,一般采用加速比指标来进行度量,其定义为[4,5]:

其中,n表示处理器个数,T1是改进前整个任务的执行时间,Tn是改进后n个处理器并行执行时间。

对GNSS数据处理而言,分布式计算实现的难点和关键是要对任务进行合理的分解与组合,在计算节点有限的分布式系统中,保证计算精度的同时,使节点计算粒度最大化,以提高分布式系统的利用率和数据的计算效率。本文对Bernese软件的分布式应用是从数据层次进行的。通过采用合理的数据分解和组合策略,数据层次的并行计算可以较大程度的突破单机计算瓶颈,获得计算性能的提升。

3 Bernese GPS软件结构

Bernese 5.0 GPS 软件[6]的程序语言是 FORTRAN77,个别程序由FORTRAN90编写,源代码有30多万行,包括约1 200个子程序和函数模块和100个左右的菜单程序组成,可以同时处理GPS和GLONASS数据。图形界面采用QT库,支持Windows、Unix/Linux等操作系统,既可以通过程序图形界面进行数据解算,也可以通过BPE进行调用。BPE是在Bernese 4.0中引入的,目的是实现自动化的GNSS数据解算。BPE的执行可以通过界面程序运行,也可以通过Perl脚本调用。

4 Bernese软件的分布式设计

4.1 Bernese BPE 的调用

软件的分布式应用可以从数据、功能、模型等方面进行。由于Bernese软件自成体系,二次开发比较困难,我们采用数据共享的方式对其进行分布式设计。Bernese是高可配置软件,并且这些配置文件都是文本文件,因此不用运行Bernese界面程序,而用外部程序直接修改这些配置文件,再调用Bernese BPE实现软件的自动调用。这些配置文件的内容包含:工程、会话、解算步骤和类型等等。Bernese软件的数据处理流程可分为数据准备、数据计算和成果输出三个阶段。我们的实现方法是:在数据准备和成果汇总阶段由我们自己编制软件实现,而在数据解算阶段调用Bernese实现,整个运行过程不需要人工干预,由程序自动实现。以Windows环境为例,通过DOS命令运行${C}MENUmenu.exe,并以进程控制文件(PCF,Process Control File)的路径作为其参数,实现对Bernese BPE的调用;通过修改或编写PCF实现对Bernese执行计算方法的控制;通过读取PCF状态文件获取Bernese的当前运行状态,一旦Bernese运行完毕,就将计算结果传输给主程序。

4.2 分布式系统设计和实现

系统由控制端、执行端、数据服务器三部分组成,采用C/S(Client/Server)结构。控制端只有一个控制程序,负责任务生成、分配、发送命令、接收解算结果;执行端(客户端/计算节点)包含Bernese解算软件和我们自己开发的任务解析执行终端,负责解析任务、修改PCF、运行BPE、监控运行状态、发送解算结果等;数据服务器采用ftp存储和传输原始数据及解算结果。控制端和执行端采用C#语言编写,运行环境为.Net Framework 4.0,系统采用 XML(eX-tensible Markup Language)技术传递命令,ftp传输数据。系统部署在广域网或局域网上,为使系统发挥最大效能,视任务分解程度,需有多个计算节点并行执行任务,并根据网络结构分配任务和传输数据。

图1是分布式计算流程。首先主控制机读取观测网络的元数据和分布式网络信息,由观测网络元数据生成解算任务,并根据分布式计算网络的信息,如节点数量、服务器数据位置、网络带宽等,决定任务分解的数量和策略,然后将分解后的任务与计算节点进行绑定,之后将这些数据以命令的形式通知相关计算节点。各个计算节点在接收到任务命令后,解析命令,并执行相应的解算任务,最后将解算结果发回主控制机。

整个处理过程中,计算节点自动解析命令,修改Bernese配置文件,下载数据,执行计算,并将解算后的结果发送到指定的ftp服务器或直接传给主控制机。

5 算例分析

5.1 PPP的分布式处理

图1 分布式解算流程图Fig.1 Flow chart of distributed computing

精密单点定位技术是近年来GNSS数据处理领域的研究热点之一[7,8],由于测站采用非差处理手段,单台接收机就可在全球实现mm~cm级的静态和cm~dm级的动态定位。Bernese是率先支持PPP的软件之一,在软件范例中直接提供了PPP的BPE标准处理流程,并且其双差解也是建立在PPP解的基础上的。由于Bernese默认PPP脚本中加入了一些如合并结果的额外操作,使得计算时间和测站数量为非线性,随着测站数量的增加解算时间剧增。对于此,对其PPP脚本进行优化,优化后的解算时间与测站数量为线性关系。图2是随着测站的增加Bernese解算PPP的时耗对比,宿主计算机CPU 为四核3.1 GHz,内存4 GB。

图2 Bernese单机PPP解算时耗趋势Fig.2 Time consumption trend of PPP in a single computer of Bernese

可以看到在Bernese默认PPP的配置下,随着测站数量的增加,Bernese软件的时耗呈指数形式递增。当测站达到60个时,计算时间达到了10小时左右,而优化后脚本的解算时间仅为21分钟。

在分布式环境中,控制机将待解测站进行分组,并异步发送解算命令到各计算节点,计算节点接收到命令后,修改本地Bernese配置文件,从指定ftp服务器下载观测数据,然后调用BPE进行解算,解算完成后将解算结果(Sinex)发往指定的ftp服务器。我们分别在5个和10个节点的分布式环境中进行测试,参与解算的10个节点计算机配置相当,得到的结果如表1。

表1 5个和10个节点计算时间的统计对比Tab.1 Statistics of time consuming in 5 and 10 nodes

由于在当前版本Bernese的配置中,单机解算PPP的测站数不能超过200个,因此没能统计出测站数在200以上的加速比。从表1可以看出,由于采用了多台计算机并行的计算方法,执行速度得到了较大的提高,5个节点的平均加速比为3.7,10个节点的平均加速比为6.05。

5.2 双差网解试验

相对PPP,采用同步观测数据的载波相位差分算法具有更高的解算精度。Bernese 5.0采用双差模型实现对GNSS观测网的高精度解算,支持长达2 000 km的长基线的模糊度确定。但是由于双差网解所涉及的参数众多,其解算时间随着网解规模迅速递增,并且按照Bernese默认的双差网解BPE脚本(RNX2SNX.PCF),在解算超过30个测站时,很容易提示参数过多的报错而终止解算。为使解算结果具有可比性,我们选取IGS的29个站全天的观测数据,选择4个IGS核心站作为参考基准站,将剩下的测站划分3个区(表2)。

通过将29个站的观测数据利用Bernese软件整体网平差,获得网平差计算结果和计算时间。三个分区采用分布式系统进行并行计算,解算结果发回控制机,由控制机再组网平差得到结果。整体网解与子网划分网解坐标分量较差,统计如图3。

表2 站点分区表Tab.2 Blocking of sites

图3 坐标分量差值统计Fig.3 Difference statistics of coordinate components

由图3可知,两个方案的点位较差都在3 mm内,解算结果相差很小,符合解算要求。另外,整体网解与子网划分并行解算的各方向中误差最大不超过2 mm,解算精度相当。对比整体网解与子网划分并行解算的计算时间如表3。

表3 整体网解与分区并行网解的时间对比Tab.3 Time consuming comparison between entirety solving and block parallel computing

可以得出,利用3个节点并行子网划分并行解算的计算时间相对于整体网解,在精度相当的情况下,加速比达到1.725,相当于提高了1.725倍。另外,随着GNSS网规模的增大,测站数超过30个时,Bernese单机的基线网解,容易因参数过多而解算失败,而并行、分区的解算方法能突破这种的解算限制,在解算效率和规模上都优于单机解算。

6 结语

通过修改Bernese软件的配置文件和调用BPE,在没有改变软件内部结构的条件下,从数据层次实现了Bernese软件的分布式应用,使得GNSS解算过程简单化和自动化,最后通过算例证明该方法可以较大程度的提高Bernese软件处理GNSS数据的效率。GNSS的分布式计算可以从数据、功能、模型和服务等层次进行实现,要完全发挥分布式计算的优点,则需要从这几方面同时进行实现。介于Bernese软件内部实现比较复杂,从数据计算模型和功能层次实现代价太高,因而本文只是从数据层次进行了实现。近年来,随着分布式计算的发展,特别是云计算技术的出现,各种计算、存储、传输等需求都可以以服务的形式得以实现。该技术能屏蔽数据处理中间过程,可以直接、快速、稳定地提供服务,是GNSS数据处理的发展方向之一。

1 韩菲,等.基于Bernese GPS软件的GPS数据自动解算系统的研究[J].测绘通报,2011,(11):8 -10,56.(Han Fei,et al.A study of automatic GPS data processing system based on Bernese GPS software[J].Bulletin of Surveying and Mapping,2011,(11):8 -10,56)

2 王伟,等.中国大陆现今地壳运动速度场[J].大地测量与地球动力学,2012,(6):29 - 32.(Wang Wei,et al.Present-day crustal movement velocity field in Chinese mainland[J].Journal of Geodesy and Geodynamics,2012,(6):29 -32)

3 Hagit Attiya and Jennifer Welch.Distributed computing fundamentals,simulations,and advanced topics(Second Edition)[M].Wiley,2004.

4 王刚强,等.多核计算机上的快速傅里叶变换并行算法[J].计算机工程,2011,37(16):57-59.(Wang Gangqiang,et al.Fast fourier transform parallel algorithm on multi-core computer[J].Computer Engineering,2011,37(16):57-59)

5 余磊,等.LU分解在众核结构仿真器上的指令级调度研究[J].系统仿真学报,2011,23(12):2 603 -2 610.(Yu Lei,et al.Study on instruction scheduling of LU decomposition on many-core architecture simulator[J].Journal of System Simulation,2011,23(12):2 603 -2 610)

6 Dach R,et a1.Bernese GPS software version 5.0 [S].Bern:Astronomical Institute,University of Bern,2007.

7 Jan Kouba and Pierre Héroux.Precise point positioning using IGS orbit and clock products[J].GPS Solutions,2001,5(2):12 -28.]

8 姜卫平,等.基于CORS网络的单频GPS实时精密单点定位新方法[J].地球物理学报,2012,55(5):1 549-1 556.(Jiang WeiPing,et al.A new kind of real-time PPP method for GPS single-frequency receiver using CORS network[J].Chinese Journal of Geophysics,2012,55(5):1 549-1 556)

PARALLEL COMPUTING OF GNSS DATA BASED ON BERNESE PROCESSING ENGINE

Chen Zhengsheng,LZhiping,Cui Yang and Lǚ Hao
(Institute of Surveying and Mapping,Information Engineering University,Zhengzhou450052)

This paper uses distributed computing technology to achieve parallel processing of the Bernese 5.0 GPS software based on the Bernese processing engine,and we overcome the disadvantage of scale limits and poor timeliness of GNSS observations in a single computer.Then,the viability and superiority of this method are validated through precise point positioning and double-difference network solution.

Bernese processing engine;distributed computing;parallel computing;fast computing;GNSS

P228

A

1671-5942(2013)05-0079-04

2013-05-31

国家自然科学基金(41274015);国家863计划项目(2013AA122501)

陈正生,男,1984年生,博士生,主要从事测量数据处理理论与方法研究.E-mail:czsgeo@126.com

猜你喜欢
分布式计算配置文件测站
GNSS钟差估计中的两种测站选取策略分析
WiFi室内定位测站布设优化的DOP数值分析
福海水文站气象要素对比分析
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
测站分布对GPS解算ERP的影响分析
为View桌面准备父虚拟机
基于云计算的移动学习平台设计与实现
云计算中MapReduce分布式并行处理框架的研究与搭建