欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法

文檔序號:6374567閱讀:303來源:國知局
專利名稱:一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,技術(shù)應(yīng)用領(lǐng)域為遙感影像數(shù)據(jù)并行處理等。
背景技術(shù)
隨著對地觀測技術(shù)的長足進(jìn)步,遙感影像數(shù) 據(jù)日益增長,遙感影像處理呈現(xiàn)出數(shù)據(jù)密集和計算密集的特點,現(xiàn)有的遙感影像處理串行算法模式和傳統(tǒng)硬件平臺已成為性能瓶頸,完全不能滿足海量遙感數(shù)據(jù)快速處理的需求。以集群為代表的高性能計算設(shè)備的普及為遙感影像高效處理提供了契機,為了有效利用集群等高性能設(shè)備,迫切需要研發(fā)遙感影像處理并行算法。然而當(dāng)前研發(fā)的遙感影像處理并行算法在I/o部分存在兩方面問題I)由于遙感影像數(shù)據(jù)存儲格式繁多,要求所研發(fā)的遙感影像處理并行算法應(yīng)能支持多種常用的遙感影像數(shù)據(jù)格式;2)如果不能提升大規(guī)模遙感影像數(shù)據(jù)的I/O效率,將直接影響并行算法實際應(yīng)用的性能。目前在遙感影像數(shù)據(jù)處理領(lǐng)域廣泛使用GDAL (Geospatial Data AbstractionLibrary,地理空間數(shù)據(jù)抽象庫)來讀取遙感影像數(shù)據(jù),該庫提供了一個統(tǒng)一的標(biāo)準(zhǔn)接口來讀寫近75種格式的遙感影像數(shù)據(jù),具有效率高、可擴展性好等優(yōu)點。如果GDAL能被用于遙感影像處理并行算法的研發(fā),那么將解決遙感影像數(shù)據(jù)存儲格式繁多問題。然而在研發(fā)遙感影像處理并行算法過程中發(fā)現(xiàn),GDAL存在適用性差的問題。當(dāng)前大多數(shù)遙感影像處理算法都可采用簡單規(guī)則數(shù)據(jù)劃分的并行策略來進(jìn)行并行化,常用的數(shù)據(jù)劃分方式有按行劃分、按列劃分和按塊劃分,上述三種數(shù)據(jù)劃分方式有各自優(yōu)勢,需根據(jù)算法特點和數(shù)據(jù)特點來選擇。作為遙感影像處理并行算法的I/o庫,需支持上述三種基本數(shù)據(jù)劃分方式。然而,GDAL只支持按行數(shù)據(jù)劃分,當(dāng)多個進(jìn)程使用GDAL按列或按塊并行讀寫某一遙感影像數(shù)據(jù)文件時,效率很低(遠(yuǎn)遠(yuǎn)低于按行數(shù)據(jù)劃分),結(jié)果的正確性也得不到保證。GDAL按列或按塊并行讀寫遙感影像文件效率低下且出錯的原因在于產(chǎn)生了大量非連續(xù)的數(shù)據(jù)讀寫請求。從用戶視角看遙感影像文件應(yīng)該是二維的柵格,但從文件視角來看目前大部分的遙感影像文件是按行線性存儲的一維條帶,因此當(dāng)使用按列或按塊數(shù)據(jù)劃分方式對遙感影像文件進(jìn)行劃分時,每個進(jìn)程需要訪問遙感影像文件多個相對較小、非連續(xù)的數(shù)據(jù)段。由于GDAL是建立在文件系統(tǒng)之上的應(yīng)用層I/O庫,而現(xiàn)有的文件系統(tǒng)一次數(shù)據(jù)讀寫請求只能訪問一段連續(xù)數(shù)據(jù),因此每個進(jìn)程使用GDAL都將產(chǎn)生大量的小型數(shù)據(jù)讀寫請求,導(dǎo)致性能急劇下降。此外,各個進(jìn)程訪問的數(shù)據(jù)不連續(xù),并且可能跨越較大的數(shù)據(jù)塊,使得GDAL的加鎖機制出現(xiàn)困難,最終導(dǎo)致結(jié)果錯誤。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,該方法建立在GDAL庫基礎(chǔ)上,通過構(gòu)建一個遙感影像數(shù)據(jù)重分布模塊,將大量非連續(xù)的小型數(shù)據(jù)讀寫請求聚合成少量連續(xù)的大型數(shù)據(jù)讀寫請求,從而提高了 GDAL按列或按塊并行讀寫某一遙感影像數(shù)據(jù)文件的效率,同時也保證了結(jié)果的正確性,解決了 GDAL在遙感影像處理并行算法研發(fā)中適用性差的問題。本發(fā)明的技術(shù)解決方案為一種在集群環(huán)境中對遙感影像文件數(shù)據(jù)進(jìn)行高效并行存取的方法,步驟如下(I)在集群環(huán)境中,使用消息傳遞(MPI)并行編程技術(shù),各個進(jìn)程將各自要讀寫的遙感影像數(shù)據(jù)塊的范圍信息發(fā)給主進(jìn)程,主進(jìn)程負(fù)責(zé)收集各個進(jìn)程的讀寫范圍信息。(2)主進(jìn)程根據(jù)所有進(jìn)程的讀寫范圍信息 判斷數(shù)據(jù)劃分方式,并根據(jù)數(shù)據(jù)劃分方式來確定各個進(jìn)程數(shù)據(jù)重分布的方式,并將數(shù)據(jù)重分布所需的信息發(fā)送給各個進(jìn)程。數(shù)據(jù)重分布的目的有兩個一個是將各個進(jìn)程由于按行或者按塊劃分導(dǎo)致的非連續(xù)讀寫請求變成連續(xù)讀寫請求,一個是將大量的小型讀寫請求聚合成少量的大型讀寫請求。如果是按行數(shù)據(jù)劃分,主進(jìn)程認(rèn)為所有進(jìn)程的讀寫請求已經(jīng)是連續(xù)的,如果進(jìn)程數(shù)目不多,即讀寫請求數(shù)目較少,沒有超過設(shè)定的閾值(進(jìn)程數(shù)目多少是相對的,該閾值依賴于集群環(huán)境,默認(rèn)值為小于32,用戶也可根據(jù)實際情況設(shè)置該值),主進(jìn)程認(rèn)為各個進(jìn)程不需要進(jìn)行數(shù)據(jù)重分布操作;如果進(jìn)程數(shù)目較多即已超過設(shè)定的閾值(進(jìn)程數(shù)目多少是相對的,該閾值依賴于集群環(huán)境,默認(rèn)值為大于32,用戶也可根據(jù)實際情況設(shè)置該值),即讀寫請求數(shù)目很多,主進(jìn)程認(rèn)為各個進(jìn)程需要執(zhí)行數(shù)據(jù)重分布操作;如果是按列或按塊數(shù)據(jù)劃分,主進(jìn)程認(rèn)為各個進(jìn)程應(yīng)該在存取遙感影像文件前先進(jìn)行數(shù)據(jù)重分布。為了使各個進(jìn)程獲得數(shù)據(jù)重分布的所需的信息,主進(jìn)程發(fā)送三組信息至各個進(jìn)程1)是否需要數(shù)據(jù)重分布;2)數(shù)據(jù)劃分方法(按行、按列、按塊);3)操作數(shù)據(jù)方式,讀操作和寫操作,簡稱讀寫。(3)各個進(jìn)程接收和解析主進(jìn)程發(fā)來的數(shù)據(jù)重分布信息。如果接收到的信息是不需要進(jìn)行數(shù)據(jù)重分布,那么各個進(jìn)程使用GDAL庫的RasterlO函數(shù)直接按原來按行數(shù)據(jù)劃分方式來讀寫。(4)如果各個進(jìn)程接收到的信息是需要進(jìn)行數(shù)據(jù)重分布,并且原來的數(shù)據(jù)劃分方式是按行數(shù)據(jù)劃分,那么采用如下數(shù)據(jù)重分布策略。下面以讀遙感影像文件數(shù)據(jù)為例,解釋按行數(shù)據(jù)劃分使用數(shù)據(jù)重分布的方案(第一種數(shù)據(jù)重分布方法)。假設(shè)有2η個進(jìn)程(P[I],P[2],一PDn]),這些進(jìn)程以按行劃分的方式將遙感影像文件劃分成2η個數(shù)據(jù)塊(Block[I] ,Block[2],-Block[2n]),各個進(jìn)程如果直接去讀需要產(chǎn)生2n個讀請求(P[l]讀Block[l],P[2]讀Block[2]等)。為了減少讀請求數(shù)目,采用兩步操作。第一步,奇數(shù)號進(jìn)程首先生成一個臨時緩沖區(qū),然后一次讀取兩個數(shù)據(jù)塊到該臨時緩沖區(qū),即P[2k-1]調(diào)用GDAL庫的RasterlO函數(shù)讀取數(shù)據(jù)塊Block[2k_l]和Block[2k],由于這兩個數(shù)據(jù)塊合并后在文件中是連續(xù)分布的,所以只需要一次讀請求操作;第二步,奇數(shù)號進(jìn)程P[2k-1]與相鄰偶數(shù)號進(jìn)程P[2k]通信,P[2k-1]將臨時緩沖區(qū)的連續(xù)數(shù)據(jù)分成兩個數(shù)據(jù)塊Block[2k-l]和Block[2k],并將數(shù)據(jù)塊Block[2k]以消息傳遞的方式發(fā)送至進(jìn)程P [2k]。通過上述兩步操作,這樣讀請求數(shù)目可以降為原來的一半。對于各個進(jìn)程按行寫也是如此,第一步是奇數(shù)號進(jìn)程P[2k_l]生成臨時緩沖區(qū),偶數(shù)號進(jìn)程即P[2k]將數(shù)據(jù)塊Block[2k]以消息傳遞的方式發(fā)送至進(jìn)程P[2k-l],P[2k-l]將Block[2k]和Block[2k-l]合并成連續(xù)數(shù)據(jù),并放置到臨時緩沖區(qū);第二步是P[2k_l]調(diào)用GDAL庫的RasterlO函數(shù)將臨時緩沖區(qū)中的數(shù)據(jù)連續(xù)寫進(jìn)影像文件,由于臨時緩沖區(qū)中的數(shù)據(jù)是連續(xù)的,所以可以一次寫入,這樣寫請求次數(shù)也可降低為原來一半。(5)如果各個進(jìn)程接收到的信息是需要進(jìn)行數(shù)據(jù)重分布,并且原來的數(shù)據(jù)劃分方式是按列或按塊數(shù)據(jù)劃分,那么采用如下數(shù)據(jù)重分布策略。下面以讀遙感影像文件數(shù)據(jù)為例,解 釋按塊數(shù)據(jù)劃分使用數(shù)據(jù)重分布的方案(按列劃分可以看成是按塊劃分的一種特例)(第二種數(shù)據(jù)重分布方法)。假設(shè)有mXn個進(jìn)程(P[l][l],P[l][2],…P[l][n],P[2][l],…P[m] [η]),這些進(jìn)程以按塊劃分的方式將遙感影像文件劃分成 mXn 個數(shù)據(jù)塊(Block[l] [I],Block[l] [2], ...Block[l] [n],Block[2],…Block[m] [η]),各個進(jìn)程如果直接去讀要產(chǎn)生mXn個讀請求(P[l] [I]讀Block[l],P[m][n]讀Block[m][n]等)。為了減少讀請求數(shù)目,采用兩步操作。第一步,每一行最左端的進(jìn)程P [ * ] [I]先生成一個臨時緩沖區(qū),然后P [ * ] [I]調(diào)用GDAL庫的RasterlO函數(shù)讀取數(shù)據(jù)塊Block[ * ] [I], Block[ * ] [2],…Block[ * ] [η],由于這些數(shù)據(jù)塊合并后在文件中是連續(xù)分布的,因此只需一次讀請求操作即可將這些數(shù)據(jù)塊讀到臨時緩沖區(qū)中;第二步,Pt * ][1]將其臨時緩沖區(qū)中的連續(xù)數(shù)據(jù)分成各個數(shù)據(jù)塊Block[ * ][1],Block[ * ][2],…Block[ * ] [η],并將這些數(shù)據(jù)塊以消息傳遞的方式發(fā)送至進(jìn)程P[ * ],Pt * ][2],-P[ * ][n];通過這種數(shù)據(jù)重分布方案,讀請求數(shù)目將從原來的mXn降低為m。對于各個進(jìn)程按列或按塊寫遙感影像文件數(shù)據(jù)也是如此,第一步是每一行最左端的進(jìn)程P[ * ][1]先生成一個臨時緩沖區(qū),然后每一行各個進(jìn)程?[ * ][l],p[ * ][2]r··P[ * ] [η]將自己的數(shù)據(jù)塊 Block [ * ] [I], Block [ * ] [2], ... Block [ * ] [n]以消息傳遞的方式發(fā)送至進(jìn)程Ρ[ * ] [I],Pt * ] [I]合并這些數(shù)據(jù)塊,生成連續(xù)數(shù)據(jù),并放置到臨時緩沖區(qū);第二步P[ * ][1]調(diào)用GDAL庫的RasterlO函數(shù)將臨時緩沖區(qū)的連續(xù)數(shù)據(jù)寫入遙感影像文件,由于臨時緩沖區(qū)中的數(shù)據(jù)是連續(xù)的,所以可以一次寫入;通過這種數(shù)據(jù)重分布方案,寫請求數(shù)目從原來的mXn降低為m。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于(I)目前在遙感影像數(shù)據(jù)處理中廣泛使用GDAL庫來讀寫遙感影像文件,但是多進(jìn)程使用GDAL按列或按塊并行讀寫遙感影像文件會得到錯誤的結(jié)果,而按行讀寫能保證結(jié)果正確。本發(fā)明在GDAL基礎(chǔ)上構(gòu)建了一個數(shù)據(jù)重分布模塊,能自動將按列或按塊并行讀寫轉(zhuǎn)化成按行并行讀寫,從而保證了結(jié)果的正確性。通過使用本發(fā)明,GDAL庫可被用于遙感影像處理并行算法的研發(fā),從而解決了遙感影像數(shù)據(jù)存儲格式繁多的問題。(2)多進(jìn)程使用GDAL按列或按塊并行讀寫遙感影像文件會產(chǎn)生大量非連續(xù)的I/O請求,從而大大降低了讀寫速度。本發(fā)明構(gòu)建的數(shù)據(jù)重分布模塊通過通信的手段將大量非連續(xù)的小型讀寫請求聚合成少量連續(xù)的大型讀寫請求,從而提高了并行讀寫遙感影像文件的效率。通過使用本發(fā)明,遙感影像處理并行算法使用GDAL庫并行讀寫遙感影像文件的效率將大大提升。


圖I為本發(fā)明方法的流程圖2為使用本發(fā)明方法與直接使用GDAL庫并行讀寫遙感影像文件的結(jié)果對比圖;其中(a)表示4個進(jìn)程直接使用GDAL按2X2分塊并行讀寫得到的結(jié)果;(b)是4個進(jìn)程使用本發(fā)明按塊并行讀寫遙感影像文件得到的結(jié)果;圖3為使用本發(fā)明與直接使用GDAL庫并行讀寫遙感影像文件的效率對比圖。
具體實施例方式下面結(jié)合如圖I所示的流程圖,4個進(jìn)程以按塊數(shù)據(jù)劃分方式(2X2)來并行寫寬24496像素、高17100像素、大小為I. 65G tiff格式的灰度遙感影像文件為例,說明本發(fā)明的具體實施方法I.各個進(jìn)程將各自要讀寫的遙感 影像數(shù)據(jù)塊范圍信息打包后發(fā)送至主進(jìn)程。數(shù)據(jù)包格式為〈進(jìn)程號,數(shù)據(jù)塊左上角坐標(biāo),寬,高 >,比如進(jìn)程4使用消息傳遞并行編程庫(MPI)將如下消息包發(fā)送給主進(jìn)程1,〈2,(12248,0),12248,8550〉。2.主進(jìn)程通過消息傳遞技術(shù)接收各個進(jìn)程發(fā)來的消息,判斷出數(shù)據(jù)劃分方式,并據(jù)此生成數(shù)據(jù)重分布的信息,打包后發(fā)送至所有進(jìn)程。數(shù)據(jù)包格式為〈進(jìn)程號,是否需要數(shù)據(jù)重分布,數(shù)據(jù)劃分方法,數(shù)據(jù)操作方式〉。如果主進(jìn)程判斷出是使用按行數(shù)據(jù)劃分方式,那么將進(jìn)一步判斷進(jìn)程數(shù)目有無超過設(shè)定的閾值,如果超過閾值,主進(jìn)程認(rèn)為應(yīng)該使用數(shù)據(jù)重分布策略,如果是按列或按塊數(shù)據(jù)劃分,那么直接判斷應(yīng)該使用數(shù)據(jù)重分布策略。比如此時主進(jìn)程判斷出是按2X2分塊來進(jìn)行數(shù)據(jù)劃分,這時主進(jìn)程認(rèn)為應(yīng)該使用數(shù)據(jù)重分布策略,并生成消息包發(fā)送給各個進(jìn)程,比如發(fā)送給進(jìn)程2的消息包為〈2,是,2X2按塊,寫〉。3.各個進(jìn)程收到主進(jìn)程傳來的關(guān)于數(shù)據(jù)重分布的消息包,并進(jìn)行解析。比如這時進(jìn)程2收到消息包為〈2,是,2X2按塊,寫〉。4.根據(jù)解析得到的消息,各個進(jìn)程執(zhí)行相應(yīng)的并行讀寫策略如果不需要數(shù)據(jù)重分布,那么各個進(jìn)程使用GDAL庫執(zhí)行按行并行讀寫操作;如果需要數(shù)據(jù)重分布,且是按行數(shù)據(jù)劃分的,則采用按第一種數(shù)據(jù)重分布方法,即奇數(shù)號進(jìn)程負(fù)責(zé)讀寫文件,偶數(shù)號進(jìn)程與左鄰奇數(shù)號進(jìn)程通信;如果是按列或按塊數(shù)據(jù)劃分,則采用按第二種數(shù)據(jù)重分布方法,即每一行最左端的進(jìn)程負(fù)責(zé)讀寫文件操作,其它進(jìn)程與本行最左端的進(jìn)程通信。比如進(jìn)程2解析數(shù)據(jù)包后得知它需要在讀寫文件前進(jìn)行數(shù)據(jù)重分布操作,而且根據(jù)2X2分塊數(shù)據(jù)劃分方式,進(jìn)程2會把它的數(shù)據(jù)發(fā)送至進(jìn)程I ;而進(jìn)程I根據(jù)解析后的消息生成一個臨時緩沖區(qū),存放自己的數(shù)據(jù)以及從進(jìn)程2接收的數(shù)據(jù),最后進(jìn)程I調(diào)用GDAL的RasterlO函數(shù)將緩沖區(qū)的數(shù)據(jù)寫入遙感影像文件。進(jìn)程4和進(jìn)程3的操作分別與進(jìn)程2和進(jìn)程I相似,由進(jìn)程3重組兩塊數(shù)據(jù),然后寫入遙感影像文件。對比分析實驗在集群環(huán)境上分別使用本發(fā)明方法和直接使用GDAL庫來并行讀寫遙感影像文件,來驗證兩種方式讀寫結(jié)果的正確性,圖2為對該遙感影像文件做聚合分析后的結(jié)果,其中(a)表示4個進(jìn)程直接使用GDAL按2X2分塊并行讀寫得到的結(jié)果,可以看到(a)中有三塊黑色矩形區(qū)域,這三塊區(qū)域代表空值,表示直接使用GDAL按塊并行讀寫會得到錯誤結(jié)果;(b)是4個進(jìn)程使用本發(fā)明按塊并行讀寫遙感影像文件得到的結(jié)果,顯示本發(fā)明得到的結(jié)果正確。為了驗證本發(fā)明方法是否能提升并行讀寫遙感影像文件的效率,實驗統(tǒng)計了在不同分塊情況下使用本發(fā)明方法并行讀寫遙感影像文件所花的時間。如圖3所示,本發(fā)明實驗使用的遙感影像數(shù)據(jù)文件寬24496像素、高17100像素,圖3的橫坐標(biāo)為分塊數(shù)目aXb,a表示按行劃分?jǐn)?shù)目,b表示按列劃分?jǐn)?shù)目。可以看出使用本發(fā)明方法讀寫遙感影像文件所花的時間遠(yuǎn)遠(yuǎn)小于直接使用GDAL的方法,從而也證明了本發(fā)明方法能大幅提升并行讀寫遙感影像文件的效率,具有較好的實用價值。本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。以上所述僅是本發(fā)明的優(yōu)選實施 方式,應(yīng)當(dāng)指出,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,其特征在于步驟如下 (1)在集群環(huán)境中,各個進(jìn)程將各自要讀寫的遙感影像數(shù)據(jù)塊的范圍信息發(fā)給主進(jìn)程,主進(jìn)程負(fù)責(zé)收集各個進(jìn)程讀寫遙感影像數(shù)據(jù)塊的范圍信息; (2)主進(jìn)程根據(jù)所有進(jìn)程讀寫遙感影像數(shù)據(jù)塊的范圍信息判斷數(shù)據(jù)劃分方式,并根據(jù)數(shù)據(jù)劃分方式來確定各個進(jìn)程數(shù)據(jù)重分布的方式,將數(shù)據(jù)重分布所需的信息發(fā)送給各個進(jìn)程;所述數(shù)據(jù)重分的信息包括三組,一是是否需要數(shù)據(jù)重分布;二是數(shù)據(jù)劃分方法,即按行、按列或按塊;三是操作數(shù)據(jù)方式,包括讀操作和寫操作,簡稱讀寫; (3)各個進(jìn)程接收和解析主進(jìn)程發(fā)來的數(shù)據(jù)重分布信息,如果接收到的信息是不需要進(jìn)行數(shù)據(jù)重分布,那么各個進(jìn)程使用GDAL庫的RasterlO函數(shù)直接按原來按行數(shù)據(jù)劃分方式來讀寫; (4)如果各個進(jìn)程接收到的信息是需要進(jìn)行數(shù)據(jù)重分布,并且是按行數(shù)據(jù)劃分,則數(shù)據(jù)重分布策略為奇數(shù)號進(jìn)程負(fù)責(zé)讀寫文件,偶數(shù)號進(jìn)程與左鄰奇數(shù)號進(jìn)程通信; (5)如果各個進(jìn)程接收到的信息是需要進(jìn)行數(shù)據(jù)重分布,并且原來的數(shù)據(jù)劃分方式是按列或按塊數(shù)據(jù)劃分,則數(shù)據(jù)重分布策略為每一行最左端的進(jìn)程負(fù)責(zé)讀寫文件操作,其它進(jìn)程與本行最左端的進(jìn)程通信。
2.根據(jù)權(quán)利要求I所述的在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,其特征在于所述步驟(2)中如果是按行數(shù)據(jù)劃分,且進(jìn)程數(shù)目不多即沒有超過設(shè)定的閾值,即讀寫請求數(shù)目較少,則主進(jìn)程認(rèn)為各個進(jìn)程不需要進(jìn)行數(shù)據(jù)重分布操作;如果進(jìn)程數(shù)目較多即讀寫請求數(shù)目很多,即已超過設(shè)定的閾值,則主進(jìn)程認(rèn)為各個進(jìn)程需要執(zhí)行數(shù)據(jù)重分布操作;如果是按列或按塊數(shù)據(jù)劃分,主進(jìn)程認(rèn)為各個進(jìn)程應(yīng)該在存取遙感影像文件前先進(jìn)行數(shù)據(jù)重分布。
3.根據(jù)權(quán)利要求I所述的在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,其特征在于所述步驟(4)中奇數(shù)號進(jìn)程負(fù)責(zé)讀寫文件,偶數(shù)號進(jìn)程與左鄰奇數(shù)號進(jìn)程通信的具體實現(xiàn)為 假設(shè)有2n個進(jìn)程,即P[l],P[2],…P [2n],這些進(jìn)程以按行劃分的方式將遙感影像文件劃分成2n個數(shù)據(jù)塊,即Block[l],Block[2],Block[2n];如果是讀請求,為了減少讀請求數(shù)目,采用兩步操作第一步,奇數(shù)號進(jìn)程首先生成一個臨時緩沖區(qū),然后一次讀取兩個數(shù)據(jù)塊到該臨時緩沖區(qū),即P[2k-1]調(diào)用GDAL庫的RasterlO函數(shù)讀取數(shù)據(jù)塊Block[2k-l]和Block[2k],由于這兩個數(shù)據(jù)塊合并后在文件中是連續(xù)分布的,所以只需要一次讀請求操作;第二步,奇數(shù)號進(jìn)程P[2k-1]與相鄰偶數(shù)號進(jìn)程P[2k]通信,P[2k-1]將臨時緩沖區(qū)的連續(xù)數(shù)據(jù)分成兩個數(shù)據(jù)塊Block[2k-l]和Block[2k],并將數(shù)據(jù)塊Block[2k]以消息傳遞的方式發(fā)送至進(jìn)程P[2k];通過上述兩步操作,讀請求數(shù)目能夠降為原來的一半; 對于各個進(jìn)程按行寫也是如此,第一步是奇數(shù)號進(jìn)程P[2k-1]生成臨時緩沖區(qū),偶數(shù)號進(jìn)程即P[2k]將數(shù)據(jù)塊Block[2k]以消息傳遞的方式發(fā)送至進(jìn)程P[2k-1],P[2k-1]將Block[2k]和Block[2k-l]合并成連續(xù)數(shù)據(jù),并放置到臨時緩沖區(qū);第二步是P[2k-1]調(diào)用GDAL庫的RasterlO函數(shù)將臨時緩沖區(qū)中的數(shù)據(jù)連續(xù)寫進(jìn)影像文件,由于臨時緩沖區(qū)中的數(shù)據(jù)是連續(xù)的,所以能夠一次寫入,這樣寫請求次數(shù)也能降低為原來一半。
4.根據(jù)權(quán)利要求I所述的在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,其特征在于所述步驟(5)中每一行最左端的進(jìn)程負(fù)責(zé)讀寫文件操作,其它進(jìn)程與本行最左端的進(jìn)程通信的具體實現(xiàn)為:假設(shè)有11^11個進(jìn)程,即?[1][1],?[1][2],…P[l][n],P[2][I],…P[m] [n],這些進(jìn)程以按塊劃分的方式將遙感影像文件劃分成mXn個數(shù)據(jù)塊,即Block[l] [I],Block[l] [2],…Block[l] [n],Block[2] [I],…Block[m] [n],對于讀請求,為了減少讀請求數(shù)目,采用兩步操作第一步,每一行最左端的進(jìn)程P [ * ][1]先生成一個臨時緩沖區(qū),然后P[ * ] [I]調(diào)用GDAL庫的RasterlO函數(shù)讀取數(shù)據(jù)塊Block[ * ] [I],Block[ * ][2],…Block[ * ][n],由于這些數(shù)據(jù)塊合并后在文件中是連續(xù)分布的,因此只需一次讀請求操作即可將這些數(shù)據(jù)塊讀到臨時緩沖區(qū)中;第二步,P[ * ] [I]將其臨時緩沖區(qū)中的連續(xù)數(shù)據(jù)分成各個數(shù)據(jù)塊Block[ * ] [I] ,Block[ * ] [2],…Block[ * ] [n],并將這些數(shù)據(jù)塊以消息傳遞的方式發(fā)送至進(jìn)程P[ * ] [I],Pt * ] [2],-P[ * ] [n];通過這種數(shù)據(jù)重分布方案,讀請求數(shù)目將從原來的mXn降低為m ; 對于各個進(jìn)程按列或按塊寫遙感影像文件數(shù)據(jù)也是如此,第一步是每一行最左端的進(jìn)程P[ * ][1]先生成一個臨時緩沖區(qū),然后每一行各個進(jìn)程?[ * ][1],P[ * ][2],…P[ * ] [n]將自己的數(shù)據(jù)塊 Block[ * ] [I], Block[ * ] [2],…Block[ * ] [n]以消息傳遞的方式發(fā)送至進(jìn)程P[ * ] [I],Pt * ] [I]合并這些數(shù)據(jù)塊,生成連續(xù)數(shù)據(jù),并放置到臨時 緩沖區(qū);第二步P[ * ][1]調(diào)用GDAL庫的RasterlO函數(shù)將臨時緩沖區(qū)的連續(xù)數(shù)據(jù)寫入遙感影像文件,由于臨時緩沖區(qū)中的數(shù)據(jù)是連續(xù)的,所以能夠一次寫入;通過這種數(shù)據(jù)重分布方案,寫請求數(shù)目從原來的mXn降低為m。
全文摘要
一種在集群環(huán)境中對遙感影像數(shù)據(jù)進(jìn)行高效并行存取的方法,在GDAL庫基礎(chǔ)上,通過構(gòu)建一個遙感影像數(shù)據(jù)重分布模塊,將大量非連續(xù)的小型數(shù)據(jù)讀寫請求聚合成少量連續(xù)的大型數(shù)據(jù)讀寫請求,提高了并行讀寫遙感影像文件的效率。技術(shù)方案為各進(jìn)程與主進(jìn)程通信確定數(shù)據(jù)重分布的方案;如果不需要數(shù)據(jù)重分布,各進(jìn)程直接按行讀寫數(shù)據(jù);如果需要且是按行數(shù)據(jù)劃分,那么奇數(shù)號進(jìn)程負(fù)責(zé)讀寫文件,偶數(shù)號進(jìn)程與左鄰奇數(shù)號進(jìn)程通信;如果需要且是按列或按塊數(shù)據(jù)劃分,每一行最左端的進(jìn)程負(fù)責(zé)讀寫文件操作,其它進(jìn)程與本行最左端的進(jìn)程通信。本發(fā)明克服了GDAL庫在按列或按塊并行讀寫遙感影像文件效率低下且出錯的問題,可被用于遙感影像處理并行算法的研發(fā)。
文檔編號G06F3/06GK102819407SQ201210278969
公開日2012年12月12日 申請日期2012年8月7日 優(yōu)先權(quán)日2012年8月7日
發(fā)明者占利軍, 秦承志 申請人:中國科學(xué)院地理科學(xué)與資源研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
清涧县| 梓潼县| 永登县| 汉川市| 依安县| 海口市| 莫力| 库尔勒市| 资阳市| 紫金县| 阿勒泰市| 建昌县| 陵川县| 桦南县| 永寿县| 株洲县| 棋牌| 湖南省| 天峨县| 日土县| 互助| 合山市| 通山县| 横峰县| 汝阳县| 涟源市| 会同县| 湖北省| 东至县| 沽源县| 石棉县| 虎林市| 河间市| 枞阳县| 微博| 高雄市| 克山县| 包头市| 新疆| 绥芬河市| 姜堰市|