基于Java在時(shí)移地震油藏監(jiān)測的集群技術(shù)研究
出處:劉其成1,2 陳小宏1 發(fā)布于:2011-08-24 21:56:59
對于高性能計(jì)算不斷增長的需求和計(jì)算技術(shù)的持續(xù)發(fā)展 ,促進(jìn)了計(jì)算機(jī)集群技術(shù)的發(fā)展和應(yīng)用。計(jì)算機(jī)集群系統(tǒng)具有系統(tǒng)建設(shè)、維護(hù)和升級成本低 ,可擴(kuò)展性好 ,易維護(hù) ,易升級 ,計(jì)算性能強(qiáng)以及通用和跨平臺(tái)的并行計(jì)算軟件開發(fā)環(huán)境 (PVM和MPI等 )等優(yōu)點(diǎn)。本文概述了計(jì)算機(jī)集群技術(shù)的概念、技術(shù)基礎(chǔ)、并行軟件開發(fā)環(huán)境和Beowulf集群 ;論述了石油工業(yè)對高性能計(jì)算的需求 ;
一、時(shí)移地震油藏監(jiān)測技術(shù)與并行計(jì)算
時(shí)移地震油藏監(jiān)測技術(shù)是在油藏生產(chǎn)過程中,在同一油氣田不同的時(shí)間重復(fù)進(jìn)行地震測量,地震響應(yīng)隨時(shí)間的變化可以表征油藏性質(zhì)的變化。通過特殊的四維地震處理技術(shù),差異分析技術(shù)和計(jì)算機(jī)可視化技術(shù)來描述油藏內(nèi)部物性參數(shù)的變化和追蹤流體前緣。隨著油田勘探開發(fā)的深入,資料的數(shù)據(jù)量和處理量越來越大,資料要進(jìn)行大規(guī)模并行處理已成為人們的共識(shí)。在同等情況下,時(shí)移地震油藏監(jiān)測要處理的數(shù)據(jù)量是一般勘探方法的三倍。所以,時(shí)移地震油藏監(jiān)測中高性能的計(jì)算變得越來越重要,并行處理的要求更加迫切。
時(shí)移地震油藏監(jiān)測正演模擬通常由聲波方程或彈性波方程的有限差分?jǐn)?shù)值模型近似其縱波方程。對于有限差分的并行實(shí)現(xiàn),可以采用數(shù)據(jù)并行來實(shí)現(xiàn)并行計(jì)算。即將問題空間分成同樣大小的子區(qū),分別由不同的集群節(jié)點(diǎn)完成對它們的計(jì)算。分區(qū)的前提是對于每個(gè)網(wǎng)格的計(jì)算操作都是相同的。分區(qū)的原則是在微機(jī)集群中均勻分配任務(wù)和數(shù)據(jù)。
時(shí)移地震油藏監(jiān)測資料處理要經(jīng)過面元重置、互均衡處理、一致性分析、差異分析等許多環(huán)節(jié)。這些環(huán)節(jié)中涉及各種變換以及相關(guān)分析等數(shù)學(xué)運(yùn)算,它們本身可以進(jìn)行并行計(jì)算,其變換域的數(shù)據(jù)往往也適合并行處理。
二、時(shí)移地震資料采集
重復(fù)采集的地震資料間存在的誤差主要由以下原因造成:采集參數(shù)、潮汐、潛水面、環(huán)境噪音、物理環(huán)境變化、記錄儀器、不同震源類型、近地表速度和影響等。例如,震源和接收器位置等的微小變化都會(huì)對時(shí)移地震數(shù)據(jù)產(chǎn)生非常不利的影響。研究表明,通過降低拖纜羽狀化,改進(jìn)海底和陸上采集設(shè)計(jì)以及安置性檢波器等,可以減小某些不利的采集效應(yīng)。因此時(shí)移地震資料需要采用特別的采集技術(shù),將時(shí)移地震數(shù)據(jù)的信噪比提高到。
當(dāng)然,某些采集效應(yīng),如潛水面變化等,不能依靠采集設(shè)計(jì)來解決,而應(yīng)在時(shí)移地震數(shù)據(jù)處理階段予以去除。
三、時(shí)移地震資料處理
時(shí)移地震數(shù)據(jù)是間隔性采集和處理的,兩次采集很難保證完全一致。這就決定了時(shí)移地震監(jiān)測除了在采集上下大功夫,使得由于各種非地質(zhì)因素引起的不一致降低到限度外,還必須進(jìn)行時(shí)移地震資料歸一化處理。
時(shí)移地震歸一化處理的原則是,在理想條件下,在非油氣藏部分,由于沒有流體流動(dòng)的變化,兩次不同時(shí)間采集的地震數(shù)據(jù)應(yīng)該一致,時(shí)間、振幅、速度、頻率和相位應(yīng)該相同,而地震信號(hào)變化是油氣藏部分由于抽油生產(chǎn)或注氣注水等引起的。實(shí)際數(shù)據(jù)的間隔性導(dǎo)致了地震剖面上非油氣藏部分地震波的到達(dá)時(shí)間、振幅、速度、頻率、相位等地震屬性也發(fā)生變化。為了獲得真正由于油氣藏部分油氣水變化引起的地震屬性差異,對非油氣藏部分時(shí)移地震數(shù)據(jù)進(jìn)行歸一化校正,使其盡可能保持剖面一致,剩下油氣藏部分的差異則可解釋為由于油藏內(nèi)部流體運(yùn)動(dòng)引起的變化。為了實(shí)現(xiàn)這一目的,在歸一化處理過程中必須進(jìn)行一致性處理。
四、計(jì)算機(jī)集群與Java技術(shù)
Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。現(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯,就可以在各種系統(tǒng)中運(yùn)行。
為解決網(wǎng)絡(luò)計(jì)算平臺(tái)異構(gòu)性問題,目前的趨勢是分布技術(shù)和并行技術(shù)的結(jié)合。集群系統(tǒng)將多臺(tái)計(jì)算機(jī)通過高速局域網(wǎng)相互連接起來,配備一定的并行支撐軟件,形成一個(gè)松散耦合的并行計(jì)算環(huán)境,協(xié)同地并行求解同一個(gè)問題。隨著網(wǎng)絡(luò)和低檔計(jì)算機(jī)的性能不斷提高而價(jià)格不斷下降,使用一組在結(jié)構(gòu)和性能上互異的計(jì)算機(jī)組成集群進(jìn)行網(wǎng)絡(luò)并行計(jì)算已成為當(dāng)前超級計(jì)算的重要發(fā)展方向。
典型的集群并行計(jì)算編程環(huán)境有消息傳遞界面MPI、并行虛擬機(jī)PVM和數(shù)據(jù)并行編程語言HFP.另外,Java技術(shù)在并行計(jì)算方面有著獨(dú)特的特點(diǎn):①Java具有平臺(tái)獨(dú)立性,它支持在分布計(jì)算機(jī)網(wǎng)絡(luò)上的計(jì)算,每臺(tái)計(jì)算機(jī)可以使用不同的平臺(tái),Java可以作為底層平臺(tái)在微機(jī)集群上進(jìn)行高性能計(jì)算。②Java除了支持以Java遠(yuǎn)程方法調(diào)用(RMI)為基礎(chǔ)的Java分布對象模型,還支持通用的CORBA模型。③Java支持并行編程模型,有的模型被包括在Java開發(fā)工具(JDK)中(如Java線程API),有的是JDK之外的(如JavaSpace);另外,還有MPI和PVM的Java實(shí)現(xiàn)--JMPI和JPVM.④Java可以進(jìn)行基于Web的并行計(jì)算。
Java的引入給分布式并行計(jì)算系統(tǒng)的實(shí)現(xiàn)帶來了一些新特點(diǎn)。Java是面向網(wǎng)絡(luò)的跨平臺(tái)語言, 移植性、網(wǎng)絡(luò)應(yīng)用和安全問題是該語言本身的特征。對分布式問題,Java在語義上提供了更為簡潔清晰的描述。用Java來構(gòu)造系統(tǒng),在實(shí)現(xiàn)上更符合網(wǎng)絡(luò)的特點(diǎn)。
五、Java并發(fā)處理技術(shù)
Java,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet.
Java在語言級通過使用線程來支持并發(fā)處理機(jī)制。在Java之前的大多數(shù)編程語言只能通過直接訪問操作系統(tǒng)的特定庫,才能實(shí)現(xiàn)并發(fā)處理。這種方式的缺點(diǎn)是,一方面使對并發(fā)處理變得非常困難,另一方面使得移植到其他平臺(tái)成了一件不可能的事情。Java不僅在語言級實(shí)現(xiàn)了和平臺(tái)無關(guān)的并發(fā)處理支持,而且還讓編程變得非常簡單。
Java并發(fā)處理機(jī)制的是java.lang.Thread類。通過這個(gè)類我們可以啟動(dòng)、中斷、喚醒、減慢、加速和終止一個(gè)線程。此外,Java語言中還提供其他有用的方式,例如Runnable接口等,幫助我們使用這種類。另外在基類java.lang.Object類里也提供了一些方法用來支持線程的使用。此外,Java語言中還有synchronized和volatile兩個(gè)關(guān)鍵字用于支持并發(fā)處理,所有這些都是語言本身不可分割的一部分。
在Java語言中有兩種創(chuàng)建一個(gè)新線程的方式。其中比較簡單的一種方式是通過從Thread類派生一個(gè)子類,然后通過創(chuàng)建該子類的實(shí)例創(chuàng)建新線程。創(chuàng)建了一個(gè)實(shí)例以后,再調(diào)用它的start()方法,這時(shí)將會(huì)導(dǎo)致從系統(tǒng)中分離出一個(gè)新的線程,并且新線程里的run()方法開始有機(jī)會(huì)執(zhí)行。需要傳給新線程的參數(shù)不能通過run()方法傳遞,而是通過派生的Thread類的子類的構(gòu)浩函數(shù)來傳遞。種方法使用的是繼承方式,而Java又只支持單重繼承,因此創(chuàng)建線程就需要有第二種變通的方式來避免直接繼承Thread類。不過為了讓系統(tǒng)知道要執(zhí)行什么操作,新的線程需要有一個(gè)提供了run()方法的類,這個(gè)類可以通過實(shí)現(xiàn)Runnable接口的方式達(dá)到要求。Runnable接口標(biāo)志著這個(gè)類是一個(gè)提供run()方法的類,這樣線程就可以調(diào)用它。在創(chuàng)建一個(gè)線程的時(shí)候就可以將這個(gè)類的實(shí)例傳給Thread類的構(gòu)造方法。通過這種方式,就可以將一個(gè)線程指定到可以繼承任意類的一個(gè)類中。
六、Jini技術(shù)和JavaSpace技術(shù)
Jini是分布式系統(tǒng)體系結(jié)構(gòu)的一種,它利用Java構(gòu)建分布式系統(tǒng)的中間件。Jini的基礎(chǔ)是Socket和遠(yuǎn)程方法調(diào)用(RMI)的分布式計(jì)算機(jī)制。我們可以借助于Jini,創(chuàng)造出一個(gè)富有彈性、容易管理且可隨時(shí)隨地使用各種服務(wù)的網(wǎng)絡(luò)計(jì)算環(huán)境。
Jini的體系結(jié)構(gòu)是由基礎(chǔ)建設(shè)(infrastructure)、程序設(shè)計(jì)模型(programming model)、服務(wù)(services)三方面所構(gòu)成。
Jini基礎(chǔ)建設(shè)的包含以下幾個(gè)部分:(1)Discovery Protocol:提供了如何讓網(wǎng)絡(luò)上任何種類的資源加入聯(lián)盟的方式。(2)eXtended RMI:Jini的元件彼此溝通時(shí)所使用的機(jī)制。(3)Distributed Security:定義了Jini 聯(lián)盟成員的使用權(quán)限。(4)Lookup Service:用來展現(xiàn)聯(lián)盟中的所有成員,以及幫助使用者尋找網(wǎng)絡(luò)資源,或者負(fù)責(zé)提供聯(lián)盟中的資源給使用者使用。
Jini提供一些分布式的程序設(shè)計(jì)模型,而Jini的基礎(chǔ)構(gòu)造,就是利用這些模型來組合。模型所提供的界面(Interface)包括以下幾個(gè)類型:Leasing Interface:負(fù)責(zé)管理對象被使用的時(shí)間。面向?qū)ο蟮模╫bject-oriented)界面。負(fù)責(zé)管理分布式事務(wù)處理(transaction),如roll back、roll forward等。Events Interface:在分布式計(jì)算的環(huán)境中,必須確保程序執(zhí)行的先后順序,利用事件的觀念可以幫助我們解決這個(gè)問題。
有了Jini的架構(gòu)以及程序設(shè)計(jì)模型后,我們可以利用這些技術(shù)來設(shè)計(jì)管理網(wǎng)絡(luò)資源的服務(wù),以促進(jìn)分布式計(jì)算的發(fā)展。
JavaSpaces是用Jini所發(fā)展的技術(shù),并且通過RMI進(jìn)行網(wǎng)絡(luò)通訊,一般應(yīng)用在N層(n-tiers)架構(gòu)的中間層(middle tiers)。JavaSpaces雖然能提供需求者與供應(yīng)者之間查詢與溝通的機(jī)制,但它并不是資料庫,而是以簡單的messaging system為基礎(chǔ),進(jìn)而提供更強(qiáng)大的功能。
Jini提供了在分布式環(huán)境中尋找(look-up)、注冊(registration)、租借(leasing)等功能。而JavaSpaces則負(fù)責(zé)管理分布式對象的處理程序(processing)、共享(sharing)、以及流通(migration)等。因此Jini與JavaSpaces彼此存在著相互合作的關(guān)系。簡單地說,JavaSpaces就好像網(wǎng)絡(luò)上的一個(gè)市場,它提供一個(gè)簡單、快速、統(tǒng)一的界面,讓網(wǎng)絡(luò)上分布的資源可以被分享、協(xié)調(diào)與流通。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52









