周 琦,杜 曉,張俊輝,鄭 義,林尚緯,萬詠濤
(國家基礎地理信息中心,北京 100830)
地理信息數據是國民經濟和社會發展各行業統一的空間基礎和信息載體,是不可或缺的國家戰略性信息資源的重要組成部分,是整合各類經濟、政治、社會、軍事、文化各類信息的基礎,是實現“一帶一路”大數據資源體系的空間定位與空間關聯支撐框架。
地理信息數據的質量關系到國計民生,直接影響我國對全球資源、態勢、突發事件的掌控、監測、評估和應急處置決策,限制我國參與國際事務、實施全球戰略的進度和深度。近些年由于我國的國際地位不斷提高,海外利益愈發廣泛,為滿足國家、社會需要,測繪生產中涉及的空間數據范圍已由國內逐漸向境外地區蔓延,空間數據的獲取手段、方法日趨成熟,數字化生產的效率越來越高,使得面對海量地理信息數據的管理與質量控制問題面臨很大的困難。當前數據檢查主要以計算機按檢查規則自動檢查配合人機交互判斷為主,質檢軟件和工具基本為單機運行,而且沒有任務管理功能,無法進行質檢任務的分配、調度和進度監控,對質檢方案的使用也不能進行約束。由于質檢人員水平參差不齊,對質量問題的認識不一致,加上專業素養的差別,導致不同人員質檢的結果差異很大,質檢人員工作態度和責任心的問題也可能使部分檢查項漏檢或錯檢[1]。此外,目前已有的質量控制體系適應范圍單一,缺乏系統性設計,不便于質量信息的匯總、統計和追溯,更無法滿足檢查任務對時效性的要求。
針對全球海量地理信息數據成果數據量大、數據類型豐富、質量控制檢查項龐雜的特點,本文研究并行處理技術在海量地理信息數據質量控制中的應用,以期實現壓縮任務執行時間、節約任務執行成本、實現質量信息的匯總、統計和可追溯的目的。首先介紹現有的高性能并行計算模型/框架以及各自優勢對比;然后研究基于MapReduce框架的多源多時相海量數據并行質量控制技術,依托成熟度高的自主研發平臺,將分布式并行計算技術、多線程技術應用到地理信息數據質量控制體系中,進一步解決傳統計算機數據自動檢查時人為操作多、檢查計算慢、自動化判斷程度低的質量控制難題;最后選取核心矢量要素、DOM成果、DEM成果作為典型數據案例開展對比試驗。
當前主流的分布式集群并行計算模型及框架[2]有MPI分布式并行計算模型、MapReduce分布式計算模型和Spark分布式內存計算模型。見表1。

表1 面向分布式集群的并行計算模型
(1)MPI分布式并行計算模型。MPI是一個基于消息傳遞的并行計算應用程序接口[3],主要應用于分布式集群上,可支持廣播和點對點兩種通信方式。MPI具有較強的可移植性,可以兼容應用于共享內存、分布式內存處理平臺。分布式集群上一般采用的混合編程模型結合了MPI和OpenMP二者的優點,基于OpenMP實現線程級并行,基于MPI實現任務分配和消息傳遞,最終實現線程和進程兩個層次的并行計算[4]。目前大型計算、密集型應用使用的主流并行計算模型便是MPI分布式并行計算模型。
(2)MapReduce分布式并行計算模型。文獻[5—7]奠定了當前云計算技術發展的基礎,其中MapReduce并行開發模型是面向大規模數據集的并行處理,可以實現計算任務的自動并行和調度,同時隱藏底層實現細節,大大降低編程難度,因此被廣泛應用[8-9]。MapReduce模型把計算過程抽象為兩個階段,即Map和Reduce,用戶通過實現map(映射)和reduce(規約)兩個函數,從而實現分布式計算。
(3)Spark分布式內存計算模型。Spark是一個開源通用并行計算框架[10],支持海量數據集的并行處理。Spark彈性分布式數據集(RDD)作為一個可并行操作、有容錯機制的數據集合,提供了統一的分布式共享內存。Spark使用內存計算技術減少磁盤I/O,允許多次循環訪問內存數據集,有助于實現迭代算法;另外Spark容錯性高,可以確保分布式應用的正確執行。因此Spark在大數據并行處理應用中發揮著日益重要的作用,但也存在對計算機內存消耗過大的問題。
目前,國內外專家學者在基于MapReduce并行框架的地理信息數據處理方面開展了大量研究,但研究相對集中于各種算法的并行化改造方面[11-13],對并行處理架構下的地理信息數據質量控制研究相對較少。基于此,本文依托自主構建的矢量數據和柵格數據質檢規則庫,構建了基于MapReduce框架的地理信息數據質量控制體系,以期全面提升地理信息數據質量控制的效率。
地理信息數據質量控制包括空間參考檢查、位置精度檢查、屬性精度檢查、完整性檢查、邏輯一致性檢查、表征質量檢查及附件質量檢查等內容。為實現對海量地理信息數據質量控制效率的快速提升,本文引入基于MapReduce分布式計算的并行訪問機制,利用CPU進行計算任務的管理,協同利用GPU與CPU共同參與運算,首先采用基于多計算節點的多任務并行檢查策略,在集群環境中由一個周期執行一個操作的算法結構,改造為一個周期可同時執行多個操作的并行算法;然后使用基于多線程的多任務并行檢查策略,在單計算節點上將計算任務分解成同一個進程的多個線程來執行,實現多個檢查任務在多計算節點間和單計算節點多核上的并行計算,提高海量地理信息數據的質檢效率。
分布式并行計算框架技術的思想是,在同一個集群環境中同時部署硬盤存儲文件系統和內存存儲文件系統,通過發揮各自的優勢實現數據的安全性、持久化存儲與高效計算。其中,計算節點之間以“主-從”式結構進行組織,主節點以實時熱備的方式防止出現單點故障。主節點負責調配其他從節點,還負責處理上層應用數據請求;從節點之間不進行通信,但可以通過主節點的調配控制讓從節點間的數據實現互備。如圖1所示。

圖1 分布式并行計算框架技術
多計算節點間的并行質量檢查通過Torque并行作業調度[14]實現。首先用戶提交的檢查任務在資源管理模塊中排隊等待,直到任務需要的CPU類型、數量內存大小等資源滿足條件才能執行。然后對多任務并行操作進行調度時,Torque根據事先定義的集群調度策略決定等待隊列中的檢查任務要在哪些計算節點上執行,在滿足不同用戶需求和最大化整合分布式集群資源利用率之間達到動態平衡。
Torque支持多任務批處理、多種作業調度策略,實現對多任務批處理的初始化和調度執行的控制,其獨立調度模塊允許系統管理員定義資源和每個任務可使用的數量,實時監控排隊任務、運行任務和系統資源使用狀況。Torque由4部分組成,分別是PBS用戶命令、PBS服務(pbs_server)、PBS執行(pbs_mom)和PBS調度(pbs_sched)。如圖2所示。

圖2 Torque并行作業調度架構
(1)PBS用戶命令主要用于用戶遞交、查詢、隊列管理和刪除多任務批處理質檢任務。
(2)PBS服務用于接收、產生、調整、保護、啟動用戶的多任務批處理質檢任務。
(3)PBS執行用戶執行節點上的守護程序,將服務器上的用戶任務復制到節點上驅動任務。
近年來高校大規模擴招,只注重學生的數量,招收學生分數入學分比較低,卻輕視了質量,而這些學生自身惰性比較大,自學能力差,很依賴老師,從而影響了教學質量,大學教育從精英化教育變成了大眾化教育,會計專業作為一直以來的熱門專業,招進大量學生,但質量卻良莠不齊,缺乏個性化教育。
(4)PBS調度用于多任務批處理質檢任務運行的排隊調度控制。
在多核系統中,并行計算包括基于多進程計算與基于多線程計算兩種方式。基于多進程的并行計算是將一個計算任務拆解為多個獨立的計算進程執行,進程間的調度在操作系統內核進行;基于線程的并行計算是將計算任務分解成同一個進程的多個線程來執行,線程間的調度由操作系統內核進行。通常多核系統中基于多線程的編程比基于多進程的編程具有更大優勢,因此本文利用多線程技術搭建并行檢查框架,實現不同區域、不同數據類型的多任務批處理并行檢查。每個檢查任務完全獨立,互不干擾,在提高檢查效率的同時,有效杜絕因某個任務執行失敗而導致的全盤停滯現象。
基于多線程的多任務并行檢查模型由質檢任務調度模塊、質檢任務線程模塊、線程控制模塊、質檢結果輸出模塊4部分組成[15]。如圖3所示。

圖3 基于多線程的多任務并行檢查模型
(1)質檢任務調度模塊負責獲取質檢任務的處理請求,并將接收到的處理請求加入質檢任務等待隊列,對質檢任務等待隊列實時監控,發現處理請求后依據先進先出的原則選擇任務執行,并依據任務調度策略為該任務分配質檢任務進程。主要包括質檢任務等待緩沖區和調度控制單元兩個工作單元。
(2)質檢任務線程模塊負責創建質檢任務線程及其線程索引表,按照預設的線程容量創建相應數量的質檢線程,同時為每個質檢線程開辟與之對應的任務等待隊列,線程執行過程中實時監控該等待隊列,獲取相關任務參數完成數據計算以及數據顯示等操作。主要包括線程索引表和工作線程兩個工作單元。
(3)線程控制模塊主要負責在系統運行過程中實時監控工作線程中的多線程,并通過計算當前系統負載,利用容量調節單元對線程中線程數量進行相應的增減,使計算資源達到最優的負載均衡,同時對狀態異常的線程進行回收。該模塊主要包括容量調節單元、線程監控單元和線程干預單元3個工作單元。
(4)質檢結果輸出部分為質檢任務計算結果提供輸出接口,系統通過該接口獲取質檢任務執行數據并提交前端應用進行展現。
為了驗證并行處理技術在海量地理信息數據質量控制中的應用效果,本文選取核心矢量要素、DSM產品、DOM產品3種成果數據作為試驗數據進行試驗與分析。
綜合考慮地理信息資源數據分布的典型性、位置分布的廣域性等因素,按照“典型多樣、急需優先、面積合理”的原則,選取韓國、蒙古2個國家,合計約1079 GB的地理信息數據開展規模化質量控制檢查,進一步驗證基于并行處理技術的質量控制體系的可行性和普適性(見表2)。

表2 試驗數據
本文所有的試驗均在如表3硬件配置的電腦上運行。

表3 硬件環境
使用并行處理改造后的地理信息數據質量控制軟件對韓國區域的核心矢量要素、蒙古區域的分幅DSM、分幅DOM及相應的元數據文件進行批量自動化檢查,并與改造前的質檢效率進行對比分析。
核心矢量要素質檢效率隨著線程數的增加而產生的變化趨勢如圖4所示。隨著線程數量的不斷增加,核心矢量要素質檢的效率不斷提升,當線程數達到某個閾值(10)后,線程數的增加對核心矢量要素質檢效率幾乎不再產生影響。

圖4 多線程并行方法對核心矢量要素質檢效率影響
核心矢量要素、分幅DSM、分幅DOM自動檢查項及檢查效率見表4。

表4 并行改造前后的自動檢查效率
從試驗結果可以看出,得益于分布式并行計算技術、多線程技術的運用,本文實現了不同區域、不同數據類型的多個質量控制任務的并行開展。相對于傳統技術方法,核心矢量要素、DSM產品、DOM產品質量檢查的效率提高了2~3倍,從而使地理信息資源的及時質量控制得到保障。
針對多源多時相海量地理信息數據的質量控制要求,本文依托成熟度高的自主研發平臺,構建了基于MapReduce框架的多源多時相海量數據并行質量控制體系,將分布式并行計算技術、多線程技術應用到地理信息數據質量控制體系中,打破了傳統質量檢查軟件老舊單一的計算模式,實現了不同區域、不同數據類型的多個質量控制任務的并行開展,使檢查效率提高了2~3倍。同時有效杜絕了因某個任務執行失敗而導致的全盤停滯現象,保證了對全球海量地理信息數據高效及時的質量控制。