專利名稱:面向數據密集型遙感圖像處理的泛型編程的框架編程方法
技術領域:
本發明涉及遙感數據處理領域,尤其涉及一種面向數據密集型遙感圖像處理的泛 型編程的框架編程方法。
背景技術:
隨著遙感技術的快速發展,遙感影像數據正以每日TB級的速度增長,如何實時、 快速、高效地處理海量數據是當前遙感數據應用中面臨的重要挑戰。基于分布式并行集群 的高性能并行計算技術的高速發展,為數據密集型遙感圖像處理提供了重要技術手段。目 前,多核集群系統正逐漸成為并行計算的主流。這種混合并行系統具有復雜的多層并行 結構及日益龐大的系統規模,其并行程序開發存在多級并行化問題(節點間并行和多核并 行),涉及消息傳遞和共享內存兩種模型,并行編程難度大。由于自動并行編譯技術在短期 內尚不成熟,對于數據密集型的海量遙感數據處理,遙感領域專家在應對海量的多維遙感 影像數據和復雜遙感應用算法的同時,還必須具備充分的并行系統結構知識,進行數據劃 分、并行任務分解、同步和進程通信等并行算法設計與編程實現,這對領域專家的編程能力 提出了很高的要求。因此,如何提供一種能簡化并行程序開發過程、提高并行程序開發效率 的并行編程模型顯得非常迫切。
目前,在并行計算領域,常用的簡化并行編程方法主要為Skeleton(框架)并行編 程方法,其基本思路是基于泛型編程思想對重復出現的并行計算模式進行抽象,為問題并 行求解提供通用的并行實現框架(Skeleton),從而擺脫瑣碎的并行細節,可大大簡化并行 編程。當前已有許多Skeleton相關研究,包括SkeTo、QUAFF、P3L、Cole等,各應用領域也 定義專用并行Skeleton,如Google用于分布式數據挖掘的MapReduce模型本質上也是一個 專用Skeleton。然而,由于海量遙感數據處理應用有其自身的特點,如海量的多維遙感影像 數據計算與遙感影像數據在多維度上相關、數據處理流程復雜且處理流程的任務間存在計 算依賴等,這使得當前已有的典型通用并行編程Skeleton無法直接用于海量遙感數據應 用算法的并行編程中。因此,目前還沒有面向海量遙感數據處理的并行編程Skeleton相關 方法技術。發明內容
本發明的技術解決問題是克服現有的數據密集型遙感數據處理編程繁瑣、困難、 并行效率低的缺陷,提供一種基于算法Skeleton的面向海量遙感數據處理的并行編程模 型,該方法將泛型編程引入到遙感應用算法的并行開發中,在遙感算法的并行計算特點、并 行算法框架分析的基礎上,對海量遙感數據處理方法進行Skeleton建模和抽象,建立數據 密集型遙感數據處理算法的并行編程范式。該方法能有效降低海量遙感數據處理的并行編 程難度,克服了傳統的遙感數據處理中對領域專家編程能力要求高的缺陷。
本發明的目的通過以下技術方案來實現一種面向數據密集型遙感圖像處理的泛型編程的框架編程方法,包括以下步驟1)在遙感數據處理算法的計算特點和并行算法框架分析的基礎上,對重復出現的公共 并行計算模式進行建模,抽象出面向海量遙感數據處理的并行算法Skeleton,從同類遙感 應用算法的并行求解過程中提取并抽象出公共的并行算法框架Skeleton ;2)針對遙感影像數據的多波段圖像數據結構(三維矩陣)、復雜地理信息數據結構及大 數據規模等特性,研制分布式遙感影像數據模型RSData Templates ;3)在分布式遙感影像數據模型RSDataTemplates的基礎上,進一步提出分布式遙感影 像數據模型(Dist_RSData)的泛型抽象和C++模板類封裝;4)利用C++模板機制對各個并行算法Skeleton進行Template封裝,并基于多核集群 系統平臺的MPI運行時環境,對并行算法Skeleton的并行結構在多核集群平臺的自動映 射、計算任務劃分及子任務在計算節點間的自動分配,并行算法框架及計算節點通信等并 行細節進行預實現;以及5)利用數據類型模板中的分布式大規模遙感影像數據Dist_RSDataTemplate進行大 規模遙感影像數據的多級數據劃分、跨節點數據分布,所述多級數據劃分,可調用自與應用 算法相匹配的自定義數據劃分策略函數對大規模遙感影像數據進行多級遞歸數據劃分(圖 像數據分塊與地理信息重新計算)。
進一步的,采用并行文件系統提供遙感影像屋里數據塊的I/O節點分布信息指導 遙感影像劃分的數據邏輯分塊在計算節點間的映射,可在多節點、多核間進行遙感影像數 據的多級數據分布,為并行Skeleton所處理的海量大規模復雜遙感影像數據提供復雜數 據結構描述及數據分布和縫合機制,從而簡化并行編程中繁瑣的復雜遙感數據結構處理。
本發明的有益效果為為遙感應用算法提供了并行編程范式,使得遙感應用領域 技術人員,無需熟悉高性能計算平臺上基于機群的并行計算模型、也無需具備MPI并行編 程技術等與高性能并行計算相關的技術細節,只需要套用模板的方式,便可實現遙感處理 算法的快速并行化,并達到較高的并行效率,有效降低海量遙感數據處理應用的并行編程 難度,克服了傳統的遙感數據處理中對領域專家編程能力要求高的缺陷。
圖1為本發明實施例中并行編程模型的總體框架示意圖;圖2為本發明實施例中不同類型的遙感計算的數據相關性分析;圖3為本發明實施例中局部相關類算法(RS Farm-pipeline)Skeleton的并行結構圖; 圖4為本發明實施例中遙感圖像畸變校正類算法框架示意圖;圖5為本發明實施例中棋格劃分策略示意圖;圖6為本發明實施例中不規則數據劃分方法示意圖;圖7為本發明實施例中RS Feature Abstract Skeleton的并行結構;圖8為本發明實施例中遙感影像數據對象的數據組成示意圖;圖9為本發明實施例中遙感影像數據屬性數據的數據結構示意;圖10為本發明實施例中帶重疊區的遙感影像數據RSBlock示意圖;圖11為本發明實施例中分布式遙感影像數據模型Dist_RSData的數據劃分與分布 流程圖;圖12為本發明實施例中分布式遙感影像數據模型數據劃分流程圖;圖13為本發明實施例中分布式遙感影像數據模型數據分布示意圖。
具體實施方式
本發明實施例所述的一種面向數據密集型遙感圖像處理的泛型編程的框架編程 方法,包括以下步驟1)在遙感數據處理算法的計算特點和并行算法框架分析的基礎上,對重復出現的公共 并行計算模式進行建模,抽象出面向海量遙感數據處理的并行算法Skeleton,從同類遙感 應用算法的并行求解過程中提取并抽象出公共的并行算法框架Skeleton ;2)針對遙感影像數據的多波段圖像數據結構(三維矩陣)、復雜地理信息數據結構及大 數據規模等特性,研制分布式遙感影像數據模型RSData Templates ;3)在分布式遙感影像數據模型RSDataTemplates的基礎上,進一步提出分布式遙感影 像數據模型(Dist_RSData)的泛型抽象和C++模板類封裝;4)利用C++模板機制對各個并行算法Skeleton進行Template封裝,并基于多核集群 系統平臺的MPI運行時環境,對并行算法Skeleton的并行結構在多核集群平臺的自動映 射、計算任務劃分及子任務在計算節點間的自動分配,并行算法框架及計算節點通信等并 行細節進行預實現;以及5)利用數據類型模板中的分布式大規模遙感影像數據Dist_RSDataTemplate進行大 規模遙感影像數據的多級數據劃分、跨節點數據分布,所述多級數據劃分,可調用自與應用 算法相匹配的自定義數據劃分策略函數對大規模遙感影像數據進行多級遞歸數據劃分(圖 像數據分塊與地理信息重新計算)。
采用并行文件系統提供遙感影像屋里數據塊的i/o節點分布信息指導遙感影像 劃分的數據邏輯分塊在計算節點間的映射,可在多節點、多核間進行遙感影像數據的多級 數據分布,為并行Skeleton所處理的海量大規模復雜遙感影像數據提供復雜數據結構描 述及數據分布和縫合機制,從而簡化并行編程中繁瑣的復雜遙感數據結構處理。
具體實施時,面向遙感數據處理算法的并行算法Skeleton建模與抽象(遙感數據 處理算法歸類及并行性分析)的分析如下(I)遙感處理算法的歸類及并行性分析遙感影像數據的多波段結構和幾何特性,使得遙感數據處理算法具有天然的內在數據 并行性,同時計算與數據也具有一定的幾何相關性。遙感數據處理算法種類繁多,包括常規 遙感圖像處理算法和遙感信息提取算法,這些算法遙感應用算法中存在著不同的計算特性 及數據相關性,其中包括數據獨立、局部數據相關、波譜數據相關、全局數據相關。圖2中對 不同的數據相關性進行了分析。
數據獨立,為點運算模式,即輸出圖像可以由輸入圖像中每個像素的獨立運算得 至IJ,與其他像素點無關,其數據并行性最好。其中包括簡單的圖像代數運算,輻射校正/定 標,圖像拉伸增強等。S表示源遙感影像數據,R表示處理結果,X,y表示像素P在圖像中的 空間位置,b表示像素P所在的圖像波段號,f表示計算公式,該類型算法的計算模式為Rb,x,y = f(SbAy)鄰域相關,多為鄰域運算模式,即輸出圖像中某個像素的運算與輸入圖像中該像素位 置)的鄰域局部(窗口)中的數據相關,具有很好的數據并行性。其中包括圖像插值、幾何校正、圖像濾波等。region(S_(b,x,y))為圖像波段b中以像素點S_(b,x,y)為中心的數據區域,則該類型算法的計算模式可表示為
權利要求
1.一種面向數據密集型遙感圖像處理的基于泛型編程的編程框架方法,其特征在于, 包括以下步驟1)在遙感數據處理算法的計算特點和并行算法框架分析的基礎上,對重復出現的公共并行計算模式進行建模,抽象出面向海量遙感數據處理的并行算法Skeleton,從同類遙感應用算法的并行求解過程中提取并抽象出公共的并行算法框架Skeleton ;2)針對遙感影像數據的多波段圖像數據結構、復雜地理信息數據結構及大數據規模等特性,研制分布式遙感影像數據模型RSData Templates ;3)在分布式遙感影像數據模型RSDataTemplates的基礎上,進一步提出分布式遙感影像數據模型(Dist_RSData)的泛型抽象和C++模板類封裝;4)利用C++模板機制對各個并行算法Skeleton進行Template封裝,并基于多核集群系統平臺的MPI運行時環境,對并行算法Skeleton的并行結構在多核集群平臺的自動映射、計算任務劃分及子任務在計算節點間的自動分配,并行算法框架及計算節點通信并行細節進行預實現;以及5)利用數據類型模板中的分布式大規模遙感影像數據Dist_RSDataTemplate進行大規模遙感影像數據的多級數據劃分、跨節點數據分布。
2.根據權利要求1所述的一種面向數據密集型遙感圖像處理的基于泛型編程的編程框架方法,其特征在于步驟5)中,所述多級數據劃分調用自與應用算法相匹配的自定義數據劃分策略函數對大規模遙感影像數據進行多級遞歸數據劃分。
3.根據權利要求2所述的一種面向數據密集型遙感圖像處理的基于泛型編程的編程框架方法,其特征在于采用并行文件系統提供遙感影像屋里數據塊的I/O節點分布信息指導遙感影像劃分的數據邏輯分塊在計算節點間的映射,在多節點、多核間進行遙感影像數據的多級數據分布,為并行Skeleton所處理的海量大規模復雜遙感影像數據提供復雜數據結構描述及數據分布和縫合機制。
全文摘要
本發明涉及一種面向數據密集型遙感圖像處理的泛型編程的框架編程方法,技術方案為1)針對遙感影像數據規模大、數據結構復雜等特征,構建分布式遙感影像數據模型;2)在遙感數據并行處理算法分析的基礎上,對重復出現的公共并行計算模式進行建模和抽象,建立面向遙感數據處理算法的并行算法;3)通過模板機制對并行算法進行封裝,實現泛型編程的算法模型。本發明有益效果遙感應用算法提供了并行編程范式,能有效降低海量遙感數據處理應用的并行編程難度,克服了傳統的遙感數據處理中對領域專家編程能力要求高的缺陷,大大促進了并行計算技術在全球變化、動態災害監測等覆蓋大區域甚至全球的大規模遙感數據處理中的廣泛應用。
文檔編號G06F9/44GK103019671SQ201210376490
公開日2013年4月3日 申請日期2012年10月8日 優先權日2012年10月8日
發明者馬艷, 王力哲, 劉定生, 劉鵬 申請人:中國科學院對地觀測與數字地球科學中心