岳欽崟,李 虎
(中國科學院國家空間科學中心,北京 100190)
遙感圖像地物識別在實際應(yīng)用中要求能夠進行快速識別[1-2],開展面向耕地、林地、草地、居民地、河流坑塘等典型地類特征識別[3-6],研發(fā)對典型地類的高性能遙感圖像地類識別并行模型構(gòu)建技術(shù),為自然災(zāi)害監(jiān)測、氣候變化研究、農(nóng)林資源監(jiān)測、地震環(huán)境調(diào)查、陸地植被調(diào)查、森林及水資源調(diào)查等工作的典型地物識別、產(chǎn)品生產(chǎn)以及業(yè)務(wù)系統(tǒng)運行提供技術(shù)支撐和方法指導,對提升衛(wèi)星遙感數(shù)據(jù)應(yīng)用廣度與深度具有重要的指導意義和示范作用[7]。典型地物識別算法所面臨的主要問題是遙感圖像數(shù)據(jù)量大和耗時耗資源,不能滿足業(yè)務(wù)應(yīng)用的快速識別要求;另外,地物識別算法實現(xiàn)形式和依賴庫差異性也帶來了業(yè)務(wù)系統(tǒng)集成的困難。
并行編程是高性能計算機技術(shù)的重要手段[8-9]。目前兩種最重要的并行編程模型是數(shù)據(jù)并行和消息傳遞。數(shù)據(jù)并行是將相同的操作同時作用于不同的數(shù)據(jù)。消息傳遞并行模型即各個并行執(zhí)行的部分之間通過傳遞消息來交換信息、同步操作、控制執(zhí)行。消息傳遞是面向分布式內(nèi)存的,因此更適用于多節(jié)點集群并行機種。
MPI,Message Passing Interface,“消息傳遞接口”協(xié)議,是一種語言無關(guān)的通訊協(xié)議,定義了一組具有可移植性的編程接口,用于實現(xiàn)并行計算[10-13]。MPI提供了一套消息傳遞并行編程環(huán)境和函數(shù)庫規(guī)范,是國內(nèi)外高性能計算系統(tǒng)中最廣泛使用的并行編程環(huán)境,也已成為國際上一種并行程序的標準。它致力于提供高通信性能、較好的程序可移植性以及強大功能的并行開發(fā)運行環(huán)境。
MPI提供了一系列的消息傳遞接口,包括協(xié)議和語法,以期實現(xiàn)高性能、大規(guī)?;涂梢浦残?,是當今高性能計算的主要模型。MPI模型處于OSI參考模型的第五層或以上,其具體實現(xiàn)可通過傳輸層的套接字或TCP類來達到大部分層的功能。MPI涉及的主要概念有:進程組、通信器、進程序號、消息、MPI對象、MPI聯(lián)接器等。這些組成了MPI并行運行環(huán)境體系。
MPICH[14-16]是一種高性能和可移植的消息傳遞接口標準MPI的具體實現(xiàn)[6],由美國阿貢實驗室與密西西比州立大學共同完成。在通信模塊中,不同節(jié)點進程間的通信通過通信子建立,相同通信子中的不同進程使用進程號加以區(qū)分。文中的并行框架采用MPICH實現(xiàn)。
任務(wù)的工作分解是并行化程序設(shè)計的關(guān)鍵環(huán)節(jié)。工作分解是對目標任務(wù)算法處理進行分析,將之分解為若干相對獨立的部分或操作,進而選擇適當編程模型將這些相對獨立的部分分配到多個處理單元執(zhí)行。
工作分解的手段一般可分為任務(wù)分解和數(shù)據(jù)分解。任務(wù)分解是將一個處理流程按操作的相關(guān)性或依賴性分解為若干可以同時執(zhí)行的子任務(wù),需要分析子任務(wù)間的相關(guān)性或依賴性,即子任務(wù)接口數(shù)據(jù)讀寫順序,需要處理好子任務(wù)間輸入輸出的同步關(guān)系。數(shù)據(jù)分解是將一個較大的待處理數(shù)據(jù)集劃分為若干子集,對不同的子集數(shù)據(jù)成員實施相同的運算或操作。另外還有一種常用的工作分解方法是流水線方式,它仿照流水線的操作將一個任務(wù)流程按拓撲關(guān)系分解為若干緊密相連的部件任務(wù)階段,從而提高每個階段工作單元的運行效率,但是該設(shè)計更為復雜,難度也更大。
根據(jù)功能和任務(wù)分解,可以得到基于數(shù)據(jù)并行和任務(wù)并行兩種并行設(shè)計方式。針對遙感圖像處理和地物識別應(yīng)用場景,結(jié)合MPI消息并行模型,文中進行了遙感圖像處理流程、任務(wù)并行、數(shù)據(jù)并行的分析以及并行化架構(gòu)的設(shè)計。
遙感圖像處理任務(wù)并行性分析就是要從遙感圖像處理串行處理流程中提取出可并行部分,并根據(jù)任務(wù)間依賴關(guān)系完成子任務(wù)間同步處理。最終通過MPI消息并行環(huán)境實現(xiàn)計算節(jié)點的負載均衡及可擴展,該遙感圖像處理并行化模型可有效提高海量遙感圖像數(shù)據(jù)的處理能力。
遙感圖像處理任務(wù)流程主要分遙感圖像預(yù)處理和遙感圖像信息提取兩個層次。遙感圖像預(yù)處理層的輸入輸出均是遙感圖像,雖然處理的數(shù)據(jù)量大,但由于局部數(shù)據(jù)之間的相關(guān)性較小,也較少涉及人工干預(yù),因此并行化程度較高。信息提取層輸入是遙感圖像,輸出則是地物識別分類描述信息,目前也主要以人工目視解譯為主。
遙感圖像預(yù)處理又可以細分為:輻射校正、幾何校正、圖像融合、圖像鑲嵌、圖像裁剪、大氣校正等。任務(wù)劃分可得到預(yù)處理層內(nèi)部的子任務(wù)并行。
遙感圖像處理通常涉及大量的圖像文件數(shù)據(jù)塊處理。通過多節(jié)點集群并行化模型處理基于本地遙感圖像處理文件粒度的預(yù)處理并行和信息提取并行。預(yù)處理下數(shù)據(jù)塊的獨立性也為預(yù)處理子任務(wù)并行提供了依據(jù)。
根據(jù)遙感圖像處理并行化層次分析以及底層算法透明性的考慮,將并行化架構(gòu)劃分為預(yù)處理層和信息提取層,并行處理包括預(yù)處理層和信息提取層之間的并行和同步、預(yù)處理層的數(shù)據(jù)并行和同步。
(1)預(yù)處理層與信息提取層的并行關(guān)系;預(yù)處理層作為信息提取層的輸入,兩層之間的并行中的數(shù)據(jù)同步關(guān)系屬于經(jīng)典生產(chǎn)者-消費者模式,通過MPI消息傳遞機制處理好二者之間的同步關(guān)系,確保數(shù)據(jù)的完整性與正確性。
(2)預(yù)處理層的數(shù)據(jù)塊并行和子處理之間的并行同步;預(yù)處理層的輸入輸出均為圖像數(shù)據(jù),并且預(yù)處理操作下遙感圖像文件內(nèi)部數(shù)據(jù)塊之間和文件塊之間都具有相互獨立性,可充分通過并行提高處理效率。子任務(wù)間的處理并行通過MPI消息傳遞機制處理好流程同步關(guān)系,確保數(shù)據(jù)的完整性與正確性。
(3)信息提取層的文件塊并行和子處理之間的并行同步。
圖1為基于遙感圖像處理流程并行框架,預(yù)處理層和信息提取層通過MPI消息傳遞實現(xiàn)子任務(wù)之間并行以及預(yù)處理層和信息提取層之間的并行執(zhí)行和同步。該框架模式對預(yù)處理算法及信息提取算法具有透明性,整個并行處理框架適用于異構(gòu)編程。
圖1 遙感圖像處理任務(wù)并行化架構(gòu)示意圖
高性能遙感圖像地類識別并行處理系統(tǒng)的核心是
MPI消息并行框架和典型地類識別模型插件式架構(gòu)模型。MPI消息并行框架為高性能遙感圖像地類識別并行處理系統(tǒng)的多節(jié)點多進程的并行性以及節(jié)點負載均衡調(diào)度;插件式編程架構(gòu)為高性能遙感圖像地類識別并行處理系統(tǒng)的靈活性,通過配置文件動態(tài)指定待進行處理的算法模型。
MPI消息并行框架的高性能并行處理的系統(tǒng)層次結(jié)構(gòu),MPI消息傳遞的消息中間件模型可提供松耦合的面向遙感圖像分類識別算法服務(wù),通過分布式并行技術(shù)和可擴展性實現(xiàn)處理節(jié)點的負載均衡及高效的海量遙感圖像數(shù)據(jù)處理能力。
高性能遙感圖像地類識別并行處理系統(tǒng)主要包含并行中間件配置模塊、并行中間件控制調(diào)度模塊、典型地類識別算法結(jié)果展示模塊。
并行中間件配置模塊涵蓋了中間件路徑配置、中間件參數(shù)列表配置、圖像數(shù)據(jù)輸入配置、結(jié)果數(shù)據(jù)輸出配置四個部分。
并行中間件控制調(diào)度模塊包括負載均衡、任務(wù)調(diào)度和任務(wù)控制三個部分。
高性能遙感圖像地類識別并行處理系統(tǒng)的組成結(jié)構(gòu)如圖2所示。
圖2 高性能遙感圖像地類識別并行處理系統(tǒng)組成結(jié)構(gòu)
中間件路徑配置用來指定待執(zhí)行的典型地類識別算法可執(zhí)行插件的路徑,中間件參數(shù)列表配置用來指定待執(zhí)行的典型地類識別算法可執(zhí)行插件的參數(shù)列表,圖像數(shù)據(jù)輸入配置用來指定典型地類識別算法可執(zhí)行插件的輸入文件路徑,結(jié)果數(shù)據(jù)輸出配置用來指定典型地類識別算法可執(zhí)行插件的處理結(jié)果輸出文件路徑。
并行中間件控制模塊中負載均衡、任務(wù)調(diào)度和任務(wù)控制通過MPI編程模型指定待執(zhí)行任務(wù)的節(jié)點資源和進程資源,通過消息收發(fā)實現(xiàn)節(jié)點和進程的任務(wù)調(diào)度和控制。
并行中間件控制調(diào)度模塊是高性能遙感圖像地類識別并行處理系統(tǒng)的并行核心。該模塊的工作內(nèi)容包括工作節(jié)點負載均衡、進程任務(wù)調(diào)度和任務(wù)控制。該模塊在主節(jié)點根據(jù)并行處理平臺調(diào)用信息,分配主節(jié)點進程集和各從節(jié)點進程集;讀取平臺待執(zhí)行任務(wù)信息;主節(jié)點根據(jù)待執(zhí)行任務(wù)參數(shù)信息分析待處理圖像處理數(shù)據(jù)信息,參考從節(jié)點進程信息,向不同節(jié)點分配任務(wù)以非阻塞方式發(fā)送待執(zhí)行任務(wù)消息;從節(jié)點阻塞方式接收待執(zhí)行任務(wù)消息并調(diào)用圖像處理算法插件,執(zhí)行完成后向主節(jié)點進程反饋執(zhí)行結(jié)果并退出;主節(jié)點根據(jù)反饋結(jié)果統(tǒng)計任務(wù)處理結(jié)果。詳細流程如圖3所示。
圖3 并行系統(tǒng)任務(wù)調(diào)度及消息協(xié)同模塊
各節(jié)點及任務(wù)進程間的協(xié)同關(guān)系如圖4所示。首先由客戶端發(fā)起并行中間件服務(wù)請求,高性能并行處理系統(tǒng)根據(jù)客戶端任務(wù)請求安排節(jié)點及進程資源。主進程通過配置文件分發(fā)讀取后與各從進程進行握手協(xié)商,并開始執(zhí)行任務(wù)。主進程根據(jù)配置文件讀取輸入路徑下的文件數(shù)及可調(diào)用的資源數(shù)量進行任務(wù)安排與調(diào)度,根據(jù)調(diào)度算法得到任務(wù)調(diào)度配置后向各從進程資源發(fā)送配置讀取結(jié)果,從節(jié)點收到主進程的配置讀取成功信息后向主進程反饋確認信息完成握手,雙方確認后主進程向各從進程發(fā)送安排好的任務(wù)數(shù)目和任務(wù)信息,從進程收到消息后根據(jù)調(diào)度內(nèi)容合配置內(nèi)容調(diào)用本地圖像識別算法插件處理分配的圖像任務(wù),在完成任務(wù)后向主進程反饋任務(wù)執(zhí)行情況,主進程收到任務(wù)執(zhí)行處理情況后向客戶端反饋執(zhí)行情況。
從遙感圖像典型地類特征識別的業(yè)務(wù)化要求出發(fā),分別分析了典型地物識別業(yè)務(wù)系統(tǒng)的可并行性和MPI消息并行協(xié)議標準及其實現(xiàn)MPICH的結(jié)構(gòu),在此基礎(chǔ)上將地物識別業(yè)務(wù)過程按照粒度差別和處理環(huán)境差異劃分為預(yù)處理層和信息提取層,進一步細分為獨立的子任務(wù)集合并明確它們之間的同步關(guān)系。根據(jù)分析得到的處理流程并行性、數(shù)據(jù)并行性、任務(wù)并行性和并行處理框架,參照MPI消息并行模型實現(xiàn)了基于MPICH的高性能遙感圖像地類識別并行處理系統(tǒng)。該系統(tǒng)分為并行中間件配置模塊、并行中間件控制調(diào)度模塊和典型地類識別算法結(jié)果展示模塊,通過中間件配置方式和插件式實現(xiàn)了任務(wù)動態(tài)可配置、節(jié)點進程資源的負載均衡和異構(gòu)編程的支持。文中詳細介紹了并行系統(tǒng)任務(wù)調(diào)度及消息協(xié)同模塊以及節(jié)點與任務(wù)協(xié)同關(guān)系流程。