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