專利名稱:面向遙感圖像處理算法的快速并行化編程模板方法
技術(shù)領(lǐng)域:
本發(fā)明涉及遙感數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種面向遙感圖像處理算法的快速 并行化編程模板方法。
背景技術(shù):
隨著遙感技術(shù)的發(fā)展與廣泛應(yīng)用,遙感對地觀測數(shù)據(jù)量正以每日TB級的速度增 長,地學計算所要解決的問題也越來越復雜。然而后由于遙感數(shù)據(jù)具有多波段結(jié)構(gòu)和幾何 特性,使處理算法存在重復計算性,因而具有天然的內(nèi)在并行性。因此,基于機群架構(gòu)的高 性能并行計算技術(shù)已成為解決大數(shù)據(jù)規(guī)模和復雜算法帶來的超大計算量問題的常用手段。目前并行遙感數(shù)據(jù)處理算法的并行策略通常具有一定的針對性,其中算法中的數(shù) 據(jù)分布方式、負載均衡策略等都只是針對某個具體算法而設(shè)計的。每增加一個處理算法, 則需要針對性的研究其并行化方法,并進行并行編程實現(xiàn)。而且并行算法開發(fā)需要一定 的并行體系結(jié)構(gòu)及消息傳遞接口(MPI)并行編程知識,這對于地學領(lǐng)域?qū)<襾碚f也是個 難題。尤其隨著多核技術(shù)的普遍,如何充分利用多核處理器的性能,針對多核中芯片內(nèi)部 (intra-chip),芯片間(inter-chip)與節(jié)點網(wǎng)絡(luò)性能之間性能差異對并行算法模型進行 優(yōu)化,以及針對I/O性能瓶頸問題進行優(yōu)化問題也都不是遙感領(lǐng)域?qū)<宜瞄L的。因此,如 何提供一種遙感處理算法的快速自動并行化方法將是一個迫切需要解決的問題。而事實上,大多遙感數(shù)據(jù)處理算法在并行化上存在一定的共性,可以共享一個并 行模式,數(shù)據(jù)分布策略或負載均衡策略。因此,通過建立于某種遙感處理算法相對應(yīng)的可重 用并行算法編程模型,并在模型中針對多核和I/O性能進行優(yōu)化,進而提供一種能夠進行 遙感處理算法的快速自動并行化方法將可使得領(lǐng)域?qū)<覐膹碗s繁瑣的并行編程中解脫出 來。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種面向遙感圖像處理算法的快速并行化編程模板方法,通 過構(gòu)建編程模板庫,并類繼承編程模板,能夠自動加載相應(yīng)的遙感圖像并行處理流程,自動 進行數(shù)據(jù)/任務(wù)劃分、數(shù)據(jù)通信和負載調(diào)度,使之在多結(jié)點、多核上并行執(zhí)行,解決遙感處 理算法的快速并行化實現(xiàn)問題。本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)—種面向遙感圖像處理算法的快速并行化編程模板方法,包括以下步驟1)提取遙感圖像并行處理模型,根據(jù)計算與數(shù)據(jù)的局部相關(guān)性,如局部相關(guān)、波段 間相關(guān)或全局相關(guān),分析這種重復計算特性并進行算法分類,在算法分類的基礎(chǔ)上,為每類 算法歸納并定義出公共的并行遙感圖像處理算法流程、結(jié)點間數(shù)據(jù)通信和交互方式,并為 其設(shè)計通用的數(shù)據(jù)/任務(wù)劃分策略和節(jié)點間動態(tài)調(diào)度策略,最終提煉出相應(yīng)的遙感圖像并 行處理模型,在這些模型中,其數(shù)據(jù)/任務(wù)劃分策略在結(jié)點間數(shù)據(jù)劃分的基礎(chǔ)上,可針對多 核架構(gòu)進行二次劃分,充分利用多核并行性;其并行算法處理流程上,充分利用I/O預(yù)取策
3略調(diào)整并行流程,使I/O和計算充分重疊,對模型進行優(yōu)化;2)構(gòu)建快速并行化編程模板庫,快速并行化編程模板庫,基于MPI并行計算環(huán)境, 以及遙感數(shù)據(jù)對象并行存儲系統(tǒng)(HPGFS)提供的高速并行I/O和地理信息訪問轉(zhuǎn)換接口, 利用MPI和多線程技術(shù)(pthread)將以上遙感圖像并行處理模型實現(xiàn)并固化到相應(yīng)的編程 模板中,其構(gòu)建方法如下首先,使用軟件設(shè)計模式對上述遙感圖像并行處理模型中并行處理流程的基本處 理步驟進行接口抽象設(shè)計,每個遙感圖像并行處理模型被抽象為一個并行編程模板類;模 型中并行處理流程的各個基本并行處理步驟也被抽象為該模板類中相應(yīng)的操作接口(函 數(shù)接口);最終,模型中的并行處理流程,即各個基本處理步驟的計算流程和邏輯,映射為 編程模板類中相應(yīng)的各個操作接口的調(diào)用流程和邏輯,此流程和邏輯被固化到模板類的主 函數(shù)操作接口中;其次,利用MPI和多線程技術(shù)(Pthread)對編程模板類中的各個操作接口進行 并行實現(xiàn),利用MPI編程語言實現(xiàn)編程模板類中多計算結(jié)點間的并行計算和結(jié)點通信; Pthread多線程實現(xiàn)計算結(jié)點內(nèi)的多核并行處理,并通過I/O預(yù)取策略,使得計算和I/O充 分重疊;利用HPGFS的基于通用并行文件系統(tǒng)的MPI-I0接口提供全局文件鏡像及并行I/O 支持,避免數(shù)據(jù)分發(fā)和回收及節(jié)點間頻繁的數(shù)據(jù)交互,對I/O性能和并行流程進行優(yōu)化;使 用HPGFS的地理信息訪問和操作接口,簡化并行處理過程中地理信息的管理和轉(zhuǎn)換,此外, 并行模型中設(shè)計的數(shù)據(jù)劃分策略、動態(tài)調(diào)度策略等也實現(xiàn)固化在模板類中;最后,將編程模板類封裝成并行化編程模板庫,利用軟件設(shè)計模式對并行編程模 板庫進行可擴展設(shè)計,使其具有開放架構(gòu),該模板庫中設(shè)計一個編程模板類的父類,擴展 該父類可派生出多個并行化編程模板類,并對并行程序中的所有基本參數(shù)和私有參數(shù)進行 管理,將上述這些并行化編程模板類封裝到具有開放架構(gòu)的快速并行化編程模板庫,以庫 (lib)形式提供可快速進行遙感圖像處理算法并行化的通用編程開發(fā)包。3)繼承并行化編程模板,利用類繼承的編程思想,在用戶處理程序中繼承上述快 速并行化編程模板庫中指定的模板類,便可自動加載該模板類所實現(xiàn)的并行處理模型,即 加載遙感圖像并行處理流程,數(shù)據(jù)/任務(wù)劃分策略、數(shù)據(jù)通信模式、負載調(diào)度策略,隨后在 用戶程序中載入串行處理算法模塊,經(jīng)過編譯可自動將串行程序轉(zhuǎn)化為并行目標程序,運 行該并行目標程序,即可將這些算法模塊自動分配到多個計算結(jié)點,以及結(jié)點內(nèi)的多核處 理器上并發(fā)地執(zhí)行,并進行自動數(shù)據(jù)/任務(wù)劃分、自動數(shù)據(jù)通信交互、自動負載調(diào)度,從而 實現(xiàn)遙感處理算法的快速并行化。本發(fā)明的有益效果為遙感應(yīng)用領(lǐng)域技術(shù)人員,無需熟悉高性能計算平臺上基于 機群的并行計算模型、也無需具備MPI并行編程技術(shù)等與高性能并行計算相關(guān)的技術(shù)細 節(jié),只需要通過簡單的類繼承方法,繼承該模板庫中指定的遙感圖像并行處理模型,并加載 用戶自行開發(fā)的串行算法程序,便可實現(xiàn)遙感處理算法的快速并行化,并達到較高的并行 效率,從而大大提高大規(guī)模遙感數(shù)據(jù)的處理性能。
下面根據(jù)附圖對本發(fā)明作進一步詳細說明。圖1為本發(fā)明實施例所述的面向遙感圖像處理算法的快速并行化編程模板方法的示意圖;圖2為本發(fā)明一個并行化編程模板庫結(jié)構(gòu)示意圖;圖3為本發(fā)明中純數(shù)據(jù)并行計算模型的示意圖;圖4為本發(fā)明中全局信息計算并行模型示意圖;圖5為本發(fā)明中的并行編程模板類關(guān)系示意圖;圖6為本發(fā)明實施中純數(shù)據(jù)并行編程模板類的類圖;圖7為本發(fā)明實施過程示意圖;圖8為本發(fā)明實施結(jié)果并行算法主程序的程序目錄結(jié)構(gòu)。
具體實施例方式如圖1-8所示,本發(fā)明實施例所述的一種面向遙感圖像處理算法的快速并行化編 程模板方法,包括以下步驟1)提取三種典型遙感圖像并行處理模型根據(jù)算法的重復性計算特點歸為三類像素重復運算、局部區(qū)域重復運算、波段間 重復運算和全局信息類運算,并提煉出三種較為典型的并行計算模型,包括純數(shù)據(jù)并行模 型、波段相關(guān)數(shù)據(jù)并行模型、全局信息計算并行模型。純數(shù)據(jù)并行模型主要針對具有局部區(qū)域重復計算性的算法,其輸出圖像可由輸 入圖像中某個像素或局部區(qū)域內(nèi)像素的獨立運算得到,適合圖像運算,輻射/幾何校正,圖 像增強等算法。該模型的并行處理流程如圖3。主節(jié)點完成參數(shù)獲取、結(jié)果圖像范圍計算、 數(shù)據(jù)/計算任務(wù)劃分及節(jié)點間計算任務(wù)動態(tài)調(diào)度;從節(jié)點不斷從主節(jié)點獲取子任務(wù),并進 入由I/O數(shù)據(jù)讀取、多個核心處理算法功能、數(shù)據(jù)輸出操作等組成的多級流水線中,流水線 各級映射到多個線程中執(zhí)行,各線程通過共享環(huán)形緩沖區(qū)(buffer)在內(nèi)存空間交換數(shù)據(jù)。 該模型中利用多線程技術(shù)充分發(fā)揮內(nèi)核線程級并行,且使用數(shù)據(jù)預(yù)取策略,使I/O與計算 充分重疊。波段相關(guān)數(shù)據(jù)并行模型主要針對具有波段間重復計算特性的算法,既輸出圖像 的某像素或區(qū)域的計算由多個波段的共軛點或區(qū)域共同參與運算。這類算法的數(shù)據(jù)并行性 和計算的數(shù)據(jù)局部性也較好。適合圖像變換、圖像融合、波段配準等算法。該并行模型也采 用任務(wù)池并行主要并行處理流程與純數(shù)據(jù)并行模型大體相同,區(qū)別在于任務(wù)劃分時與波段 數(shù)無關(guān),在核心模塊處理數(shù)據(jù)塊時中多個波段對應(yīng)的數(shù)據(jù)塊一起參與計算。全局信息計算并行模型針對信息計算類遙感算法,并行計算流程中間或結(jié)尾中 涉及全局計算,如圖像分類、直方圖規(guī)定化等。全局信息計算并行模型的并行處理流程如 圖4,主節(jié)點完成參數(shù)獲取、數(shù)據(jù)/計算任務(wù)劃分、節(jié)點間的計算任務(wù)動態(tài)調(diào)度;從節(jié)點循環(huán) 從主節(jié)點獲取子任務(wù),并進入由I/O數(shù)據(jù)讀取、多個核心處理算法功能、計算結(jié)果回收等組 成的多級流水線中,流水線各級并發(fā)執(zhí)行;完畢后,所有計算節(jié)點同步對回收的計算結(jié)果進 行全局處理;最后若無隨后的計算處理則整個計算流程結(jié)束,否則,則啟動另一個流水線處 理階段,最終輸出計算結(jié)果信息或者結(jié)果圖像數(shù)據(jù)。2)構(gòu)建并行編程模板庫該并行編程模板庫的模板類設(shè)計如圖5所示。編程模板中抽象了一個編程模 板父類ImgProcessingParallel,數(shù)據(jù)類型ProcessingParam負責算法基本參數(shù)和私有參數(shù)的管理。通過對以上三種并行處理模型進行接口抽象設(shè)計,并繼承模板父類,得到純數(shù)據(jù)并行編程模板類ImgProcessingDataParallel,波段相關(guān)數(shù)據(jù)并行編程模板類 ImgPrοcessingBandRe 1 atedPara 11 e 1 和全局信息計算并行編程模板類 ImgProcessingGlo balParalIelNoImg0每個并行處理模型的各個基本并行處理步驟也被模板化為相應(yīng)模板類中的 操作接口(函數(shù)接口),整個并行算法流程也固化在主操作函數(shù)接口中。如純數(shù)據(jù) 并行編程模板類(如圖6),將模型并行算法流程中各個基本處理步驟模板化為模板 類 中 GetInitParam()、GetScopeOfDesImage()、SplitDesImage()、LoadBalance()、 GetScopeOfSrcBlock ()、ReadSrcBlock ()、BlockProcessing () ^ffriteDesBlock ()等操作接 口,并利用MPI和Pthread并行實現(xiàn)。而在主函數(shù)接口 ImgProcessing ()調(diào)用這些操作接 口(對應(yīng)并行處理模型中的基本處理步驟)實現(xiàn)并固化整個并行處理流程。此外,將并行 處理模型中的數(shù)據(jù)/任務(wù)劃分策略、動態(tài)調(diào)度策略也固化在模板類中。最后,將這些編程模 板類封裝打包,以庫(lib)形式提供通用并行化編程模板庫開發(fā)包。3)繼承并行編程模板類通過繼承編程模板庫中的并行編程模板類,即可加載指定的遙感圖像并行處理模 型,從而實現(xiàn)遙感處理算法的快速并行化,其具體快速并行化實施流程如圖7所示。首先,要根據(jù)具體算法明確提出所需的外部參數(shù),這些參數(shù)包括被處理對象的 輸入輸出結(jié)果路徑、圖像大小,以及其他需要從外部傳入的參數(shù)等,并行程序完成后系 統(tǒng)將自動根據(jù)這些參數(shù)生成為該并行算法生成XML參數(shù)文件。其次,根據(jù)經(jīng)驗選定需 要繼承的并行模板類。再次,按圖8中的并行算法主程序的程序目錄結(jié)構(gòu)構(gòu)建和編寫用 戶程序,并在ImgProcessingParallellmp.h中申明要使用的并行編程模板,即實現(xiàn)類 ImgProcessingParallellmp繼承選定的編程模板類。而后,加載用戶核心功能函數(shù),即在 ImgProcessingParallellmp. cpp中重載BlockProcessing方法,并在i亥方法中i周用用戶編 寫的串行核心算法功能函數(shù)。最后,進行聯(lián)合編譯、執(zhí)行。遵循這一流程即可快速實現(xiàn)一個 并行效率較高的并行處理算法。若用戶算法需要繼承全局信息計算并行編程模板類,則還需要重載全局計算 (GlobalComputing),加載用戶自定義的全局計算算法。若用戶需要進一步提高并行效率, 則可以重載SplitDesImage操作接口或LoadBalance操作接口,調(diào)用自定義的數(shù)據(jù)任務(wù)劃 分和負載均策略。按以上步驟,設(shè)計了一套面向遙感圖像處理算法的并行編程模板庫,主要是適用 于數(shù)據(jù)并行性較好的處理算法。該模板庫基于的MPI并行計算環(huán)境,主要是指基于商業(yè)多 核機群平臺,由MPI并行計算、PVFS2、或Luster等并行文件系統(tǒng)等組成。該模板庫已經(jīng)實 現(xiàn)了幾十個遙感圖像處理算法的快速并行化,且加速比接近線性,并行效率高。
權(quán)利要求
一種面向遙感圖像處理算法的快速并行化編程模板方法,其特征在于包括以下步驟1)提取遙感圖像并行處理模型,根據(jù)計算與數(shù)據(jù)的局部相關(guān)性,如局部相關(guān)、波段間相關(guān)或全局相關(guān),分析這種重復計算特性并進行算法分類,在算法分類的基礎(chǔ)上,為每類算法歸納并定義出公共的并行遙感圖像處理算法流程、結(jié)點間數(shù)據(jù)通信和交互方式,并為其設(shè)計通用的數(shù)據(jù)/任務(wù)劃分策略和節(jié)點間動態(tài)調(diào)度策略,最終提煉出相應(yīng)的遙感圖像并行處理模型;2)構(gòu)建快速并行化編程模板庫,首先,使用軟件設(shè)計模式對上述遙感圖像并行處理模型進行接口抽象設(shè)計為并行編程模板類;而模型中并行處理流程的各個基本并行處理步驟被抽象為模板類中相應(yīng)的函數(shù)接口;并行處理流程被映射為編程模板類中多個函數(shù)接口的調(diào)用流程和邏輯,并被固化到模板類的主函數(shù)操作接口中,其次,利用MPI和Pthread多線程技術(shù)對編程模板類中的各個操作接口進行并行實現(xiàn),其中MPI實現(xiàn)多計算結(jié)點間的并行計算和通信,Pthread多線程實現(xiàn)計算結(jié)點內(nèi)的多核并行處理,最后,將編程模板類封裝成并行化編程模板庫,對其進行可擴展設(shè)計,使其具有開放架構(gòu),其中設(shè)計一個編程模板類的父類,擴展該父類可派生出多個并行化編程模板類;并對并行程序中的所有基本參數(shù)和私有參數(shù)進行管理;3)繼承并行化編程模板,利用類繼承的編程思想,在用戶處理程序中繼承上述快速并行化編程模板庫中指定的模板類,便可自動加載該模板類所實現(xiàn)的并行處理模型,即加載遙感圖像并行處理流程,數(shù)據(jù)/任務(wù)劃分策略、數(shù)據(jù)通信模式、負載調(diào)度策略,隨后在用戶程序中載入串行處理算法模塊,經(jīng)過編譯可自動將串行程序轉(zhuǎn)化為并行目標程序,運行該并行目標程序,即可將這些算法模塊自動分配到多個計算結(jié)點,以及結(jié)點內(nèi)的多核處理器上并發(fā)地執(zhí)行,并進行自動數(shù)據(jù)/任務(wù)劃分、自動數(shù)據(jù)通信交互、自動負載調(diào)度,從而實現(xiàn)遙感處理算法的快速并行化。
2.根據(jù)權(quán)利要求1所述的面向遙感圖像處理算法的快速并行化編程模板方法,其特征 在于在最終提煉出相應(yīng)的遙感圖像并行處理模型中,其數(shù)據(jù)/任務(wù)劃分策略在結(jié)點間數(shù) 據(jù)劃分的基礎(chǔ)上,可針對多核架構(gòu)進行二次劃分,充分利用多核并行性;其并行算法處理流 程上,采用基于并行文件系統(tǒng)的MPI-I0并行接口提高I/O性能,并充分利用I/O預(yù)取策略 調(diào)整并行流程,使并行I/O和計算充分重疊,對模型進行優(yōu)化。
全文摘要
本發(fā)明涉及一種面向遙感圖像處理算法的快速并行化編程模板方法,包括以下步驟1)提取遙感圖像并行處理模型,2)構(gòu)建快速并行化編程模板庫使用軟件設(shè)計模式對上述遙感圖像并行處理模型中并行處理流程的基本處理步驟進行接口抽象設(shè)計;利用MPI和Pthread多線程技術(shù)對編程模板類中的各個操作接口進行并行實現(xiàn);將編程模板類封裝成并行化編程模板庫,3)繼承并行化編程模板。本發(fā)明的有益效果為遙感應(yīng)用領(lǐng)域技術(shù)人員只需要通過簡單的類繼承方法,繼承該模板庫中指定的遙感圖像并行處理模型,并加載用戶自行開發(fā)的串行算法程序,便可實現(xiàn)遙感處理算法的快速并行化,并達到較高的并行效率,從而大大提高大規(guī)模遙感數(shù)據(jù)的處理性能。
文檔編號G01S7/48GK101799762SQ20101014076
公開日2010年8月11日 申請日期2010年4月7日 優(yōu)先權(quán)日2010年4月7日
發(fā)明者劉定生, 劉鵬, 李景山, 王妍穎, 趙靈軍, 馬艷 申請人:中國科學院對地觀測與數(shù)字地球科學中心