本站小編為你精心準備了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大型網絡數據解算壓力。
作者:崔陽 陳正生 呂志平 李林陽 周海濤 單位:信息工程大學 二炮工程大學