周 琦,杜 曉,張俊輝,鄭 義,林尚緯,萬(wàn)詠濤
(國(guó)家基礎(chǔ)地理信息中心,北京 100830)
地理信息數(shù)據(jù)是國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展各行業(yè)統(tǒng)一的空間基礎(chǔ)和信息載體,是不可或缺的國(guó)家戰(zhàn)略性信息資源的重要組成部分,是整合各類經(jīng)濟(jì)、政治、社會(huì)、軍事、文化各類信息的基礎(chǔ),是實(shí)現(xiàn)“一帶一路”大數(shù)據(jù)資源體系的空間定位與空間關(guān)聯(lián)支撐框架。
地理信息數(shù)據(jù)的質(zhì)量關(guān)系到國(guó)計(jì)民生,直接影響我國(guó)對(duì)全球資源、態(tài)勢(shì)、突發(fā)事件的掌控、監(jiān)測(cè)、評(píng)估和應(yīng)急處置決策,限制我國(guó)參與國(guó)際事務(wù)、實(shí)施全球戰(zhàn)略的進(jìn)度和深度。近些年由于我國(guó)的國(guó)際地位不斷提高,海外利益愈發(fā)廣泛,為滿足國(guó)家、社會(huì)需要,測(cè)繪生產(chǎn)中涉及的空間數(shù)據(jù)范圍已由國(guó)內(nèi)逐漸向境外地區(qū)蔓延,空間數(shù)據(jù)的獲取手段、方法日趨成熟,數(shù)字化生產(chǎn)的效率越來(lái)越高,使得面對(duì)海量地理信息數(shù)據(jù)的管理與質(zhì)量控制問題面臨很大的困難。當(dāng)前數(shù)據(jù)檢查主要以計(jì)算機(jī)按檢查規(guī)則自動(dòng)檢查配合人機(jī)交互判斷為主,質(zhì)檢軟件和工具基本為單機(jī)運(yùn)行,而且沒有任務(wù)管理功能,無(wú)法進(jìn)行質(zhì)檢任務(wù)的分配、調(diào)度和進(jìn)度監(jiān)控,對(duì)質(zhì)檢方案的使用也不能進(jìn)行約束。由于質(zhì)檢人員水平參差不齊,對(duì)質(zhì)量問題的認(rèn)識(shí)不一致,加上專業(yè)素養(yǎng)的差別,導(dǎo)致不同人員質(zhì)檢的結(jié)果差異很大,質(zhì)檢人員工作態(tài)度和責(zé)任心的問題也可能使部分檢查項(xiàng)漏檢或錯(cuò)檢[1]。此外,目前已有的質(zhì)量控制體系適應(yīng)范圍單一,缺乏系統(tǒng)性設(shè)計(jì),不便于質(zhì)量信息的匯總、統(tǒng)計(jì)和追溯,更無(wú)法滿足檢查任務(wù)對(duì)時(shí)效性的要求。
針對(duì)全球海量地理信息數(shù)據(jù)成果數(shù)據(jù)量大、數(shù)據(jù)類型豐富、質(zhì)量控制檢查項(xiàng)龐雜的特點(diǎn),本文研究并行處理技術(shù)在海量地理信息數(shù)據(jù)質(zhì)量控制中的應(yīng)用,以期實(shí)現(xiàn)壓縮任務(wù)執(zhí)行時(shí)間、節(jié)約任務(wù)執(zhí)行成本、實(shí)現(xiàn)質(zhì)量信息的匯總、統(tǒng)計(jì)和可追溯的目的。首先介紹現(xiàn)有的高性能并行計(jì)算模型/框架以及各自優(yōu)勢(shì)對(duì)比;然后研究基于MapReduce框架的多源多時(shí)相海量數(shù)據(jù)并行質(zhì)量控制技術(shù),依托成熟度高的自主研發(fā)平臺(tái),將分布式并行計(jì)算技術(shù)、多線程技術(shù)應(yīng)用到地理信息數(shù)據(jù)質(zhì)量控制體系中,進(jìn)一步解決傳統(tǒng)計(jì)算機(jī)數(shù)據(jù)自動(dòng)檢查時(shí)人為操作多、檢查計(jì)算慢、自動(dòng)化判斷程度低的質(zhì)量控制難題;最后選取核心矢量要素、DOM成果、DEM成果作為典型數(shù)據(jù)案例開展對(duì)比試驗(yàn)。
當(dāng)前主流的分布式集群并行計(jì)算模型及框架[2]有MPI分布式并行計(jì)算模型、MapReduce分布式計(jì)算模型和Spark分布式內(nèi)存計(jì)算模型。見表1。
表1 面向分布式集群的并行計(jì)算模型
(1)MPI分布式并行計(jì)算模型。MPI是一個(gè)基于消息傳遞的并行計(jì)算應(yīng)用程序接口[3],主要應(yīng)用于分布式集群上,可支持廣播和點(diǎn)對(duì)點(diǎn)兩種通信方式。MPI具有較強(qiáng)的可移植性,可以兼容應(yīng)用于共享內(nèi)存、分布式內(nèi)存處理平臺(tái)。分布式集群上一般采用的混合編程模型結(jié)合了MPI和OpenMP二者的優(yōu)點(diǎn),基于OpenMP實(shí)現(xiàn)線程級(jí)并行,基于MPI實(shí)現(xiàn)任務(wù)分配和消息傳遞,最終實(shí)現(xiàn)線程和進(jìn)程兩個(gè)層次的并行計(jì)算[4]。目前大型計(jì)算、密集型應(yīng)用使用的主流并行計(jì)算模型便是MPI分布式并行計(jì)算模型。
(2)MapReduce分布式并行計(jì)算模型。文獻(xiàn)[5—7]奠定了當(dāng)前云計(jì)算技術(shù)發(fā)展的基礎(chǔ),其中MapReduce并行開發(fā)模型是面向大規(guī)模數(shù)據(jù)集的并行處理,可以實(shí)現(xiàn)計(jì)算任務(wù)的自動(dòng)并行和調(diào)度,同時(shí)隱藏底層實(shí)現(xiàn)細(xì)節(jié),大大降低編程難度,因此被廣泛應(yīng)用[8-9]。MapReduce模型把計(jì)算過(guò)程抽象為兩個(gè)階段,即Map和Reduce,用戶通過(guò)實(shí)現(xiàn)map(映射)和reduce(規(guī)約)兩個(gè)函數(shù),從而實(shí)現(xiàn)分布式計(jì)算。
(3)Spark分布式內(nèi)存計(jì)算模型。Spark是一個(gè)開源通用并行計(jì)算框架[10],支持海量數(shù)據(jù)集的并行處理。Spark彈性分布式數(shù)據(jù)集(RDD)作為一個(gè)可并行操作、有容錯(cuò)機(jī)制的數(shù)據(jù)集合,提供了統(tǒng)一的分布式共享內(nèi)存。Spark使用內(nèi)存計(jì)算技術(shù)減少磁盤I/O,允許多次循環(huán)訪問內(nèi)存數(shù)據(jù)集,有助于實(shí)現(xiàn)迭代算法;另外Spark容錯(cuò)性高,可以確保分布式應(yīng)用的正確執(zhí)行。因此Spark在大數(shù)據(jù)并行處理應(yīng)用中發(fā)揮著日益重要的作用,但也存在對(duì)計(jì)算機(jī)內(nèi)存消耗過(guò)大的問題。
目前,國(guó)內(nèi)外專家學(xué)者在基于MapReduce并行框架的地理信息數(shù)據(jù)處理方面開展了大量研究,但研究相對(duì)集中于各種算法的并行化改造方面[11-13],對(duì)并行處理架構(gòu)下的地理信息數(shù)據(jù)質(zhì)量控制研究相對(duì)較少?;诖耍疚囊劳凶灾鳂?gòu)建的矢量數(shù)據(jù)和柵格數(shù)據(jù)質(zhì)檢規(guī)則庫(kù),構(gòu)建了基于MapReduce框架的地理信息數(shù)據(jù)質(zhì)量控制體系,以期全面提升地理信息數(shù)據(jù)質(zhì)量控制的效率。
地理信息數(shù)據(jù)質(zhì)量控制包括空間參考檢查、位置精度檢查、屬性精度檢查、完整性檢查、邏輯一致性檢查、表征質(zhì)量檢查及附件質(zhì)量檢查等內(nèi)容。為實(shí)現(xiàn)對(duì)海量地理信息數(shù)據(jù)質(zhì)量控制效率的快速提升,本文引入基于MapReduce分布式計(jì)算的并行訪問機(jī)制,利用CPU進(jìn)行計(jì)算任務(wù)的管理,協(xié)同利用GPU與CPU共同參與運(yùn)算,首先采用基于多計(jì)算節(jié)點(diǎn)的多任務(wù)并行檢查策略,在集群環(huán)境中由一個(gè)周期執(zhí)行一個(gè)操作的算法結(jié)構(gòu),改造為一個(gè)周期可同時(shí)執(zhí)行多個(gè)操作的并行算法;然后使用基于多線程的多任務(wù)并行檢查策略,在單計(jì)算節(jié)點(diǎn)上將計(jì)算任務(wù)分解成同一個(gè)進(jìn)程的多個(gè)線程來(lái)執(zhí)行,實(shí)現(xiàn)多個(gè)檢查任務(wù)在多計(jì)算節(jié)點(diǎn)間和單計(jì)算節(jié)點(diǎn)多核上的并行計(jì)算,提高海量地理信息數(shù)據(jù)的質(zhì)檢效率。
分布式并行計(jì)算框架技術(shù)的思想是,在同一個(gè)集群環(huán)境中同時(shí)部署硬盤存儲(chǔ)文件系統(tǒng)和內(nèi)存存儲(chǔ)文件系統(tǒng),通過(guò)發(fā)揮各自的優(yōu)勢(shì)實(shí)現(xiàn)數(shù)據(jù)的安全性、持久化存儲(chǔ)與高效計(jì)算。其中,計(jì)算節(jié)點(diǎn)之間以“主-從”式結(jié)構(gòu)進(jìn)行組織,主節(jié)點(diǎn)以實(shí)時(shí)熱備的方式防止出現(xiàn)單點(diǎn)故障。主節(jié)點(diǎn)負(fù)責(zé)調(diào)配其他從節(jié)點(diǎn),還負(fù)責(zé)處理上層應(yīng)用數(shù)據(jù)請(qǐng)求;從節(jié)點(diǎn)之間不進(jìn)行通信,但可以通過(guò)主節(jié)點(diǎn)的調(diào)配控制讓從節(jié)點(diǎn)間的數(shù)據(jù)實(shí)現(xiàn)互備。如圖1所示。
圖1 分布式并行計(jì)算框架技術(shù)
多計(jì)算節(jié)點(diǎn)間的并行質(zhì)量檢查通過(guò)Torque并行作業(yè)調(diào)度[14]實(shí)現(xiàn)。首先用戶提交的檢查任務(wù)在資源管理模塊中排隊(duì)等待,直到任務(wù)需要的CPU類型、數(shù)量?jī)?nèi)存大小等資源滿足條件才能執(zhí)行。然后對(duì)多任務(wù)并行操作進(jìn)行調(diào)度時(shí),Torque根據(jù)事先定義的集群調(diào)度策略決定等待隊(duì)列中的檢查任務(wù)要在哪些計(jì)算節(jié)點(diǎn)上執(zhí)行,在滿足不同用戶需求和最大化整合分布式集群資源利用率之間達(dá)到動(dòng)態(tài)平衡。
Torque支持多任務(wù)批處理、多種作業(yè)調(diào)度策略,實(shí)現(xiàn)對(duì)多任務(wù)批處理的初始化和調(diào)度執(zhí)行的控制,其獨(dú)立調(diào)度模塊允許系統(tǒng)管理員定義資源和每個(gè)任務(wù)可使用的數(shù)量,實(shí)時(shí)監(jiān)控排隊(duì)任務(wù)、運(yùn)行任務(wù)和系統(tǒng)資源使用狀況。Torque由4部分組成,分別是PBS用戶命令、PBS服務(wù)(pbs_server)、PBS執(zhí)行(pbs_mom)和PBS調(diào)度(pbs_sched)。如圖2所示。
圖2 Torque并行作業(yè)調(diào)度架構(gòu)
(1)PBS用戶命令主要用于用戶遞交、查詢、隊(duì)列管理和刪除多任務(wù)批處理質(zhì)檢任務(wù)。
(2)PBS服務(wù)用于接收、產(chǎn)生、調(diào)整、保護(hù)、啟動(dòng)用戶的多任務(wù)批處理質(zhì)檢任務(wù)。
(3)PBS執(zhí)行用戶執(zhí)行節(jié)點(diǎn)上的守護(hù)程序,將服務(wù)器上的用戶任務(wù)復(fù)制到節(jié)點(diǎn)上驅(qū)動(dòng)任務(wù)。
近年來(lái)高校大規(guī)模擴(kuò)招,只注重學(xué)生的數(shù)量,招收學(xué)生分?jǐn)?shù)入學(xué)分比較低,卻輕視了質(zhì)量,而這些學(xué)生自身惰性比較大,自學(xué)能力差,很依賴?yán)蠋煟瑥亩绊懥私虒W(xué)質(zhì)量,大學(xué)教育從精英化教育變成了大眾化教育,會(huì)計(jì)專業(yè)作為一直以來(lái)的熱門專業(yè),招進(jìn)大量學(xué)生,但質(zhì)量卻良莠不齊,缺乏個(gè)性化教育。
(4)PBS調(diào)度用于多任務(wù)批處理質(zhì)檢任務(wù)運(yùn)行的排隊(duì)調(diào)度控制。
在多核系統(tǒng)中,并行計(jì)算包括基于多進(jìn)程計(jì)算與基于多線程計(jì)算兩種方式?;诙噙M(jìn)程的并行計(jì)算是將一個(gè)計(jì)算任務(wù)拆解為多個(gè)獨(dú)立的計(jì)算進(jìn)程執(zhí)行,進(jìn)程間的調(diào)度在操作系統(tǒng)內(nèi)核進(jìn)行;基于線程的并行計(jì)算是將計(jì)算任務(wù)分解成同一個(gè)進(jìn)程的多個(gè)線程來(lái)執(zhí)行,線程間的調(diào)度由操作系統(tǒng)內(nèi)核進(jìn)行。通常多核系統(tǒng)中基于多線程的編程比基于多進(jìn)程的編程具有更大優(yōu)勢(shì),因此本文利用多線程技術(shù)搭建并行檢查框架,實(shí)現(xiàn)不同區(qū)域、不同數(shù)據(jù)類型的多任務(wù)批處理并行檢查。每個(gè)檢查任務(wù)完全獨(dú)立,互不干擾,在提高檢查效率的同時(shí),有效杜絕因某個(gè)任務(wù)執(zhí)行失敗而導(dǎo)致的全盤停滯現(xiàn)象。
基于多線程的多任務(wù)并行檢查模型由質(zhì)檢任務(wù)調(diào)度模塊、質(zhì)檢任務(wù)線程模塊、線程控制模塊、質(zhì)檢結(jié)果輸出模塊4部分組成[15]。如圖3所示。
圖3 基于多線程的多任務(wù)并行檢查模型
(1)質(zhì)檢任務(wù)調(diào)度模塊負(fù)責(zé)獲取質(zhì)檢任務(wù)的處理請(qǐng)求,并將接收到的處理請(qǐng)求加入質(zhì)檢任務(wù)等待隊(duì)列,對(duì)質(zhì)檢任務(wù)等待隊(duì)列實(shí)時(shí)監(jiān)控,發(fā)現(xiàn)處理請(qǐng)求后依據(jù)先進(jìn)先出的原則選擇任務(wù)執(zhí)行,并依據(jù)任務(wù)調(diào)度策略為該任務(wù)分配質(zhì)檢任務(wù)進(jìn)程。主要包括質(zhì)檢任務(wù)等待緩沖區(qū)和調(diào)度控制單元兩個(gè)工作單元。
(2)質(zhì)檢任務(wù)線程模塊負(fù)責(zé)創(chuàng)建質(zhì)檢任務(wù)線程及其線程索引表,按照預(yù)設(shè)的線程容量創(chuàng)建相應(yīng)數(shù)量的質(zhì)檢線程,同時(shí)為每個(gè)質(zhì)檢線程開辟與之對(duì)應(yīng)的任務(wù)等待隊(duì)列,線程執(zhí)行過(guò)程中實(shí)時(shí)監(jiān)控該等待隊(duì)列,獲取相關(guān)任務(wù)參數(shù)完成數(shù)據(jù)計(jì)算以及數(shù)據(jù)顯示等操作。主要包括線程索引表和工作線程兩個(gè)工作單元。
(3)線程控制模塊主要負(fù)責(zé)在系統(tǒng)運(yùn)行過(guò)程中實(shí)時(shí)監(jiān)控工作線程中的多線程,并通過(guò)計(jì)算當(dāng)前系統(tǒng)負(fù)載,利用容量調(diào)節(jié)單元對(duì)線程中線程數(shù)量進(jìn)行相應(yīng)的增減,使計(jì)算資源達(dá)到最優(yōu)的負(fù)載均衡,同時(shí)對(duì)狀態(tài)異常的線程進(jìn)行回收。該模塊主要包括容量調(diào)節(jié)單元、線程監(jiān)控單元和線程干預(yù)單元3個(gè)工作單元。
(4)質(zhì)檢結(jié)果輸出部分為質(zhì)檢任務(wù)計(jì)算結(jié)果提供輸出接口,系統(tǒng)通過(guò)該接口獲取質(zhì)檢任務(wù)執(zhí)行數(shù)據(jù)并提交前端應(yīng)用進(jìn)行展現(xiàn)。
為了驗(yàn)證并行處理技術(shù)在海量地理信息數(shù)據(jù)質(zhì)量控制中的應(yīng)用效果,本文選取核心矢量要素、DSM產(chǎn)品、DOM產(chǎn)品3種成果數(shù)據(jù)作為試驗(yàn)數(shù)據(jù)進(jìn)行試驗(yàn)與分析。
綜合考慮地理信息資源數(shù)據(jù)分布的典型性、位置分布的廣域性等因素,按照“典型多樣、急需優(yōu)先、面積合理”的原則,選取韓國(guó)、蒙古2個(gè)國(guó)家,合計(jì)約1079 GB的地理信息數(shù)據(jù)開展規(guī)?;|(zhì)量控制檢查,進(jìn)一步驗(yàn)證基于并行處理技術(shù)的質(zhì)量控制體系的可行性和普適性(見表2)。
表2 試驗(yàn)數(shù)據(jù)
本文所有的試驗(yàn)均在如表3硬件配置的電腦上運(yùn)行。
表3 硬件環(huán)境
使用并行處理改造后的地理信息數(shù)據(jù)質(zhì)量控制軟件對(duì)韓國(guó)區(qū)域的核心矢量要素、蒙古區(qū)域的分幅DSM、分幅DOM及相應(yīng)的元數(shù)據(jù)文件進(jìn)行批量自動(dòng)化檢查,并與改造前的質(zhì)檢效率進(jìn)行對(duì)比分析。
核心矢量要素質(zhì)檢效率隨著線程數(shù)的增加而產(chǎn)生的變化趨勢(shì)如圖4所示。隨著線程數(shù)量的不斷增加,核心矢量要素質(zhì)檢的效率不斷提升,當(dāng)線程數(shù)達(dá)到某個(gè)閾值(10)后,線程數(shù)的增加對(duì)核心矢量要素質(zhì)檢效率幾乎不再產(chǎn)生影響。
圖4 多線程并行方法對(duì)核心矢量要素質(zhì)檢效率影響
核心矢量要素、分幅DSM、分幅DOM自動(dòng)檢查項(xiàng)及檢查效率見表4。
表4 并行改造前后的自動(dòng)檢查效率
從試驗(yàn)結(jié)果可以看出,得益于分布式并行計(jì)算技術(shù)、多線程技術(shù)的運(yùn)用,本文實(shí)現(xiàn)了不同區(qū)域、不同數(shù)據(jù)類型的多個(gè)質(zhì)量控制任務(wù)的并行開展。相對(duì)于傳統(tǒng)技術(shù)方法,核心矢量要素、DSM產(chǎn)品、DOM產(chǎn)品質(zhì)量檢查的效率提高了2~3倍,從而使地理信息資源的及時(shí)質(zhì)量控制得到保障。
針對(duì)多源多時(shí)相海量地理信息數(shù)據(jù)的質(zhì)量控制要求,本文依托成熟度高的自主研發(fā)平臺(tái),構(gòu)建了基于MapReduce框架的多源多時(shí)相海量數(shù)據(jù)并行質(zhì)量控制體系,將分布式并行計(jì)算技術(shù)、多線程技術(shù)應(yīng)用到地理信息數(shù)據(jù)質(zhì)量控制體系中,打破了傳統(tǒng)質(zhì)量檢查軟件老舊單一的計(jì)算模式,實(shí)現(xiàn)了不同區(qū)域、不同數(shù)據(jù)類型的多個(gè)質(zhì)量控制任務(wù)的并行開展,使檢查效率提高了2~3倍。同時(shí)有效杜絕了因某個(gè)任務(wù)執(zhí)行失敗而導(dǎo)致的全盤停滯現(xiàn)象,保證了對(duì)全球海量地理信息數(shù)據(jù)高效及時(shí)的質(zhì)量控制。