陳正生 呂志平 崔 陽 呂 浩
(信息工程大學(xué)地理空間信息學(xué)院,鄭州 450052)
基于BPE的GNSS數(shù)據(jù)并行快速解算*
陳正生 呂志平 崔 陽 呂 浩
(信息工程大學(xué)地理空間信息學(xué)院,鄭州 450052)
采用分布式計(jì)算技術(shù),基于Bernese處理引擎,實(shí)現(xiàn)對(duì)Bernese 5.0 GPS數(shù)據(jù)處理軟件的并行化處理,突破了其在單機(jī)解算GNSS測量數(shù)據(jù)時(shí)的規(guī)模限制和時(shí)效性差的問題,并通過精密單點(diǎn)定位和雙差網(wǎng)解試驗(yàn)驗(yàn)證了該方法的可行性和優(yōu)越性。
Bernese處理引擎;分布式計(jì)算;并行計(jì)算;快速解算;全球衛(wèi)星導(dǎo)航系統(tǒng)
Bernese GPS軟件是當(dāng)前國際上少有的高精度GNSS(Global Navigation Satellite System)數(shù)據(jù)解算軟件,具有用戶界面友好,模塊條理清晰,功能強(qiáng)大等特點(diǎn),被廣泛應(yīng)用于GNSS衛(wèi)星定軌以及長基線、大面積的導(dǎo)航定位應(yīng)用中[1,2]。但該軟件存在數(shù)據(jù)準(zhǔn)備和配置比較麻煩和同時(shí)處理測站的數(shù)量有限等不足。據(jù)本文測試,按照單機(jī)版的Bernese 5.0默認(rèn)設(shè)置,其精密單點(diǎn)定位(PPP,Precise Point Positioning)解算測站數(shù)量限制在200個(gè)以內(nèi),另外,使用全天采樣率為30 s的GPS觀測數(shù)據(jù),當(dāng)測站數(shù)超過30個(gè)時(shí),該軟件執(zhí)行雙差網(wǎng)解的速度將大大增長,甚至有可能出現(xiàn)卡死現(xiàn)象。通常,解決軟件計(jì)算時(shí)間過長和數(shù)量限制可以通過增加計(jì)算機(jī)硬件性能、修改軟件內(nèi)部設(shè)置來實(shí)現(xiàn),但是前者花費(fèi)代價(jià)大而效果低,單臺(tái)計(jì)算機(jī)硬件性能的增加難以滿足數(shù)據(jù)規(guī)模的擴(kuò)張,而后者需要修改軟件內(nèi)部代碼,對(duì)非軟件開發(fā)者而言,實(shí)現(xiàn)難度較大。為了解決以上不足,本文對(duì)Bernese進(jìn)行了分布式計(jì)算擴(kuò)展和封裝,在不改變其內(nèi)部結(jié)構(gòu)的條件下,實(shí)現(xiàn)分布式應(yīng)用,在易用性和執(zhí)行效率上都取得了較好的效果。
分布式計(jì)算是一種把需要進(jìn)行大量計(jì)算的工程數(shù)據(jù)分隔成小塊,由多臺(tái)計(jì)算機(jī)分布計(jì)算的方法,其運(yùn)行環(huán)境是分布式系統(tǒng)。分布式系統(tǒng)是能彼此通信的多個(gè)獨(dú)立計(jì)算裝置所組成的集合[3],其中獨(dú)立計(jì)算裝置包括范圍很廣,從超大規(guī)模集成電路芯片,到緊密耦合共享存儲(chǔ)器的多處理器、本地工作站集群、局域網(wǎng)、因特網(wǎng)等。分布式計(jì)算具有高性能的計(jì)算能力的理論基礎(chǔ)是并行計(jì)算。本文主要采用空間上的并行計(jì)算。為了方便描述并行計(jì)算的性能,一般采用加速比指標(biāo)來進(jìn)行度量,其定義為[4,5]:
其中,n表示處理器個(gè)數(shù),T1是改進(jìn)前整個(gè)任務(wù)的執(zhí)行時(shí)間,Tn是改進(jìn)后n個(gè)處理器并行執(zhí)行時(shí)間。
對(duì)GNSS數(shù)據(jù)處理而言,分布式計(jì)算實(shí)現(xiàn)的難點(diǎn)和關(guān)鍵是要對(duì)任務(wù)進(jìn)行合理的分解與組合,在計(jì)算節(jié)點(diǎn)有限的分布式系統(tǒng)中,保證計(jì)算精度的同時(shí),使節(jié)點(diǎn)計(jì)算粒度最大化,以提高分布式系統(tǒng)的利用率和數(shù)據(jù)的計(jì)算效率。本文對(duì)Bernese軟件的分布式應(yīng)用是從數(shù)據(jù)層次進(jìn)行的。通過采用合理的數(shù)據(jù)分解和組合策略,數(shù)據(jù)層次的并行計(jì)算可以較大程度的突破單機(jī)計(jì)算瓶頸,獲得計(jì)算性能的提升。
Bernese 5.0 GPS 軟件[6]的程序語言是 FORTRAN77,個(gè)別程序由FORTRAN90編寫,源代碼有30多萬行,包括約1 200個(gè)子程序和函數(shù)模塊和100個(gè)左右的菜單程序組成,可以同時(shí)處理GPS和GLONASS數(shù)據(jù)。圖形界面采用QT庫,支持Windows、Unix/Linux等操作系統(tǒng),既可以通過程序圖形界面進(jìn)行數(shù)據(jù)解算,也可以通過BPE進(jìn)行調(diào)用。BPE是在Bernese 4.0中引入的,目的是實(shí)現(xiàn)自動(dòng)化的GNSS數(shù)據(jù)解算。BPE的執(zhí)行可以通過界面程序運(yùn)行,也可以通過Perl腳本調(diào)用。
軟件的分布式應(yīng)用可以從數(shù)據(jù)、功能、模型等方面進(jìn)行。由于Bernese軟件自成體系,二次開發(fā)比較困難,我們采用數(shù)據(jù)共享的方式對(duì)其進(jìn)行分布式設(shè)計(jì)。Bernese是高可配置軟件,并且這些配置文件都是文本文件,因此不用運(yùn)行Bernese界面程序,而用外部程序直接修改這些配置文件,再調(diào)用Bernese BPE實(shí)現(xiàn)軟件的自動(dòng)調(diào)用。這些配置文件的內(nèi)容包含:工程、會(huì)話、解算步驟和類型等等。Bernese軟件的數(shù)據(jù)處理流程可分為數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)計(jì)算和成果輸出三個(gè)階段。我們的實(shí)現(xiàn)方法是:在數(shù)據(jù)準(zhǔn)備和成果匯總階段由我們自己編制軟件實(shí)現(xiàn),而在數(shù)據(jù)解算階段調(diào)用Bernese實(shí)現(xiàn),整個(gè)運(yùn)行過程不需要人工干預(yù),由程序自動(dòng)實(shí)現(xiàn)。以Windows環(huán)境為例,通過DOS命令運(yùn)行${C}MENUmenu.exe,并以進(jìn)程控制文件(PCF,Process Control File)的路徑作為其參數(shù),實(shí)現(xiàn)對(duì)Bernese BPE的調(diào)用;通過修改或編寫PCF實(shí)現(xiàn)對(duì)Bernese執(zhí)行計(jì)算方法的控制;通過讀取PCF狀態(tài)文件獲取Bernese的當(dāng)前運(yùn)行狀態(tài),一旦Bernese運(yùn)行完畢,就將計(jì)算結(jié)果傳輸給主程序。
系統(tǒng)由控制端、執(zhí)行端、數(shù)據(jù)服務(wù)器三部分組成,采用C/S(Client/Server)結(jié)構(gòu)??刂贫酥挥幸粋€(gè)控制程序,負(fù)責(zé)任務(wù)生成、分配、發(fā)送命令、接收解算結(jié)果;執(zhí)行端(客戶端/計(jì)算節(jié)點(diǎn))包含Bernese解算軟件和我們自己開發(fā)的任務(wù)解析執(zhí)行終端,負(fù)責(zé)解析任務(wù)、修改PCF、運(yùn)行BPE、監(jiān)控運(yùn)行狀態(tài)、發(fā)送解算結(jié)果等;數(shù)據(jù)服務(wù)器采用ftp存儲(chǔ)和傳輸原始數(shù)據(jù)及解算結(jié)果??刂贫撕蛨?zhí)行端采用C#語言編寫,運(yùn)行環(huán)境為.Net Framework 4.0,系統(tǒng)采用 XML(eX-tensible Markup Language)技術(shù)傳遞命令,ftp傳輸數(shù)據(jù)。系統(tǒng)部署在廣域網(wǎng)或局域網(wǎng)上,為使系統(tǒng)發(fā)揮最大效能,視任務(wù)分解程度,需有多個(gè)計(jì)算節(jié)點(diǎn)并行執(zhí)行任務(wù),并根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)分配任務(wù)和傳輸數(shù)據(jù)。
圖1是分布式計(jì)算流程。首先主控制機(jī)讀取觀測網(wǎng)絡(luò)的元數(shù)據(jù)和分布式網(wǎng)絡(luò)信息,由觀測網(wǎng)絡(luò)元數(shù)據(jù)生成解算任務(wù),并根據(jù)分布式計(jì)算網(wǎng)絡(luò)的信息,如節(jié)點(diǎn)數(shù)量、服務(wù)器數(shù)據(jù)位置、網(wǎng)絡(luò)帶寬等,決定任務(wù)分解的數(shù)量和策略,然后將分解后的任務(wù)與計(jì)算節(jié)點(diǎn)進(jìn)行綁定,之后將這些數(shù)據(jù)以命令的形式通知相關(guān)計(jì)算節(jié)點(diǎn)。各個(gè)計(jì)算節(jié)點(diǎn)在接收到任務(wù)命令后,解析命令,并執(zhí)行相應(yīng)的解算任務(wù),最后將解算結(jié)果發(fā)回主控制機(jī)。
整個(gè)處理過程中,計(jì)算節(jié)點(diǎn)自動(dòng)解析命令,修改Bernese配置文件,下載數(shù)據(jù),執(zhí)行計(jì)算,并將解算后的結(jié)果發(fā)送到指定的ftp服務(wù)器或直接傳給主控制機(jī)。
圖1 分布式解算流程圖Fig.1 Flow chart of distributed computing
精密單點(diǎn)定位技術(shù)是近年來GNSS數(shù)據(jù)處理領(lǐng)域的研究熱點(diǎn)之一[7,8],由于測站采用非差處理手段,單臺(tái)接收機(jī)就可在全球?qū)崿F(xiàn)mm~cm級(jí)的靜態(tài)和cm~dm級(jí)的動(dòng)態(tài)定位。Bernese是率先支持PPP的軟件之一,在軟件范例中直接提供了PPP的BPE標(biāo)準(zhǔn)處理流程,并且其雙差解也是建立在PPP解的基礎(chǔ)上的。由于Bernese默認(rèn)PPP腳本中加入了一些如合并結(jié)果的額外操作,使得計(jì)算時(shí)間和測站數(shù)量為非線性,隨著測站數(shù)量的增加解算時(shí)間劇增。對(duì)于此,對(duì)其PPP腳本進(jìn)行優(yōu)化,優(yōu)化后的解算時(shí)間與測站數(shù)量為線性關(guān)系。圖2是隨著測站的增加Bernese解算PPP的時(shí)耗對(duì)比,宿主計(jì)算機(jī)CPU 為四核3.1 GHz,內(nèi)存4 GB。
圖2 Bernese單機(jī)PPP解算時(shí)耗趨勢(shì)Fig.2 Time consumption trend of PPP in a single computer of Bernese
可以看到在Bernese默認(rèn)PPP的配置下,隨著測站數(shù)量的增加,Bernese軟件的時(shí)耗呈指數(shù)形式遞增。當(dāng)測站達(dá)到60個(gè)時(shí),計(jì)算時(shí)間達(dá)到了10小時(shí)左右,而優(yōu)化后腳本的解算時(shí)間僅為21分鐘。
在分布式環(huán)境中,控制機(jī)將待解測站進(jìn)行分組,并異步發(fā)送解算命令到各計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)接收到命令后,修改本地Bernese配置文件,從指定ftp服務(wù)器下載觀測數(shù)據(jù),然后調(diào)用BPE進(jìn)行解算,解算完成后將解算結(jié)果(Sinex)發(fā)往指定的ftp服務(wù)器。我們分別在5個(gè)和10個(gè)節(jié)點(diǎn)的分布式環(huán)境中進(jìn)行測試,參與解算的10個(gè)節(jié)點(diǎn)計(jì)算機(jī)配置相當(dāng),得到的結(jié)果如表1。
表1 5個(gè)和10個(gè)節(jié)點(diǎn)計(jì)算時(shí)間的統(tǒng)計(jì)對(duì)比Tab.1 Statistics of time consuming in 5 and 10 nodes
由于在當(dāng)前版本Bernese的配置中,單機(jī)解算PPP的測站數(shù)不能超過200個(gè),因此沒能統(tǒng)計(jì)出測站數(shù)在200以上的加速比。從表1可以看出,由于采用了多臺(tái)計(jì)算機(jī)并行的計(jì)算方法,執(zhí)行速度得到了較大的提高,5個(gè)節(jié)點(diǎn)的平均加速比為3.7,10個(gè)節(jié)點(diǎn)的平均加速比為6.05。
相對(duì)PPP,采用同步觀測數(shù)據(jù)的載波相位差分算法具有更高的解算精度。Bernese 5.0采用雙差模型實(shí)現(xiàn)對(duì)GNSS觀測網(wǎng)的高精度解算,支持長達(dá)2 000 km的長基線的模糊度確定。但是由于雙差網(wǎng)解所涉及的參數(shù)眾多,其解算時(shí)間隨著網(wǎng)解規(guī)模迅速遞增,并且按照Bernese默認(rèn)的雙差網(wǎng)解BPE腳本(RNX2SNX.PCF),在解算超過30個(gè)測站時(shí),很容易提示參數(shù)過多的報(bào)錯(cuò)而終止解算。為使解算結(jié)果具有可比性,我們選取IGS的29個(gè)站全天的觀測數(shù)據(jù),選擇4個(gè)IGS核心站作為參考基準(zhǔn)站,將剩下的測站劃分3個(gè)區(qū)(表2)。
通過將29個(gè)站的觀測數(shù)據(jù)利用Bernese軟件整體網(wǎng)平差,獲得網(wǎng)平差計(jì)算結(jié)果和計(jì)算時(shí)間。三個(gè)分區(qū)采用分布式系統(tǒng)進(jìn)行并行計(jì)算,解算結(jié)果發(fā)回控制機(jī),由控制機(jī)再組網(wǎng)平差得到結(jié)果。整體網(wǎng)解與子網(wǎng)劃分網(wǎng)解坐標(biāo)分量較差,統(tǒng)計(jì)如圖3。
表2 站點(diǎn)分區(qū)表Tab.2 Blocking of sites
圖3 坐標(biāo)分量差值統(tǒng)計(jì)Fig.3 Difference statistics of coordinate components
由圖3可知,兩個(gè)方案的點(diǎn)位較差都在3 mm內(nèi),解算結(jié)果相差很小,符合解算要求。另外,整體網(wǎng)解與子網(wǎng)劃分并行解算的各方向中誤差最大不超過2 mm,解算精度相當(dāng)。對(duì)比整體網(wǎng)解與子網(wǎng)劃分并行解算的計(jì)算時(shí)間如表3。
表3 整體網(wǎng)解與分區(qū)并行網(wǎng)解的時(shí)間對(duì)比Tab.3 Time consuming comparison between entirety solving and block parallel computing
可以得出,利用3個(gè)節(jié)點(diǎn)并行子網(wǎng)劃分并行解算的計(jì)算時(shí)間相對(duì)于整體網(wǎng)解,在精度相當(dāng)?shù)那闆r下,加速比達(dá)到1.725,相當(dāng)于提高了1.725倍。另外,隨著GNSS網(wǎng)規(guī)模的增大,測站數(shù)超過30個(gè)時(shí),Bernese單機(jī)的基線網(wǎng)解,容易因參數(shù)過多而解算失敗,而并行、分區(qū)的解算方法能突破這種的解算限制,在解算效率和規(guī)模上都優(yōu)于單機(jī)解算。
通過修改Bernese軟件的配置文件和調(diào)用BPE,在沒有改變軟件內(nèi)部結(jié)構(gòu)的條件下,從數(shù)據(jù)層次實(shí)現(xiàn)了Bernese軟件的分布式應(yīng)用,使得GNSS解算過程簡單化和自動(dòng)化,最后通過算例證明該方法可以較大程度的提高Bernese軟件處理GNSS數(shù)據(jù)的效率。GNSS的分布式計(jì)算可以從數(shù)據(jù)、功能、模型和服務(wù)等層次進(jìn)行實(shí)現(xiàn),要完全發(fā)揮分布式計(jì)算的優(yōu)點(diǎn),則需要從這幾方面同時(shí)進(jìn)行實(shí)現(xiàn)。介于Bernese軟件內(nèi)部實(shí)現(xiàn)比較復(fù)雜,從數(shù)據(jù)計(jì)算模型和功能層次實(shí)現(xiàn)代價(jià)太高,因而本文只是從數(shù)據(jù)層次進(jìn)行了實(shí)現(xiàn)。近年來,隨著分布式計(jì)算的發(fā)展,特別是云計(jì)算技術(shù)的出現(xiàn),各種計(jì)算、存儲(chǔ)、傳輸?shù)刃枨蠖伎梢砸苑?wù)的形式得以實(shí)現(xiàn)。該技術(shù)能屏蔽數(shù)據(jù)處理中間過程,可以直接、快速、穩(wěn)定地提供服務(wù),是GNSS數(shù)據(jù)處理的發(fā)展方向之一。
1 韓菲,等.基于Bernese GPS軟件的GPS數(shù)據(jù)自動(dòng)解算系統(tǒng)的研究[J].測繪通報(bào),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 王偉,等.中國大陸現(xiàn)今地殼運(yùn)動(dòng)速度場[J].大地測量與地球動(dòng)力學(xué),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 王剛強(qiáng),等.多核計(jì)算機(jī)上的快速傅里葉變換并行算法[J].計(jì)算機(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分解在眾核結(jié)構(gòu)仿真器上的指令級(jí)調(diào)度研究[J].系統(tǒng)仿真學(xué)報(bào),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 姜衛(wèi)平,等.基于CORS網(wǎng)絡(luò)的單頻GPS實(shí)時(shí)精密單點(diǎn)定位新方法[J].地球物理學(xué)報(bào),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
國家自然科學(xué)基金(41274015);國家863計(jì)劃項(xiàng)目(2013AA122501)
陳正生,男,1984年生,博士生,主要從事測量數(shù)據(jù)處理理論與方法研究.E-mail:czsgeo@126.com