摘 要: 隨著地球物理數(shù)據(jù)處理計算量的快速增加,使得單機運算已難以滿足其計算需求。采用并行計算技術(shù)來提高處理速度是主要發(fā)展方向。為了解決地球物理數(shù)據(jù)處理中的大規(guī)模計算問題,提出基于工作站集群的并行系統(tǒng)架構(gòu),采用JPPF的網(wǎng)格計算框架,構(gòu)建地球物理并行計算平臺。JPPF易于使用、代碼開源,利用其在并行任務(wù)管理和負(fù)載均衡方面的優(yōu)勢,設(shè)計并實現(xiàn)了一個2.5維可控源音頻大地電磁正演并行系統(tǒng)。在實驗中對頻率并行和非并行的計算效率進(jìn)行了對比。實驗結(jié)果表明在并行計算平臺硬件一定的情況下,隨著頻點個數(shù)的增多,該系統(tǒng)能夠較為明顯地提高計算效率。
關(guān)鍵詞: 地球物理; 網(wǎng)格計算; 工作站集群; 正演模型計算; 可控音頻源大地電磁
中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)02?0018?04
Study on parallel computation platform in geophysics
ZHANG Wei1, 2, YANG Jin1
(1. School of Geophysics and Information Technique, China University of Geosciences, Beijing 100083, China;
2. College of Computer, North China Institute of Science and Technology, Beijing 101601, China)
Abstract: Because of the quick increase of calculated amount for geophysics data processing, it is rather difficult for one single computer to meet various kinds of computational requirements. Currently, it is a main trend to adopt the parallel computation techniques to enhance the processing speed. In order to deal with the large scale of computation work in geophysical data processing, a parallel system architecture based on workstation clusters is put forward, and JPPF grid computation framework is adopted to construct a parallel computation platform for geophysics. JPPF has open source code, and is easy to use. It is quite convenient to take its advantages in parallel task management and load balance to design and implement a forward modeling parallel system for 2.5?D CSAMT. A contrast between parallel computation efficiency and serial computation efficiency was performed in an experiment. Its results show that the system can improve its computation efficiency obviously with the increase of frequency points under a certain hardware environment of parallel computing platform.
Keywords: geophysics; grid computation; workstation cluster; forward model calculation; controlled source audio?frequency magnetotellurics
0 引 言
隨著我國經(jīng)濟社會發(fā)展,能源、環(huán)境、地下水等一系列關(guān)乎國計民生的領(lǐng)域都有地球物理勘查的身影[1];同時隨著電子技術(shù)和信息技術(shù)的發(fā)展,使得重、磁、電、震、放射性、測井等傳統(tǒng)的地球物理方法不斷發(fā)展。其中一個重要特點就是地球物理數(shù)據(jù)的的精度越來越高,信息量也成幾何級數(shù)增長,例如地震波法勘探收集的數(shù)據(jù)通常都以TB計,在海洋勘探過程中收集到的數(shù)據(jù)容量更是會突破PB級別量[2]。同時各種反演算法也不斷推陳出新,其中大多數(shù)算法對于計算機的計算能力有較高要求,地球物理的數(shù)據(jù)處理對于計算機的計算效率提出了新的要求。為了提高地球物理數(shù)據(jù)處理的計算效率,人們主要從以下兩個方面著手去解決:
(1) 提高算法本身的改進(jìn)。在精度可控的情況下,對算法進(jìn)行改進(jìn),提高算法效率。
(2) 對于處理平臺的改進(jìn)。在硬件方面,不斷創(chuàng)造速度更快的計算機,提高主頻速度到多核心處理器;在軟件方面,探索并行計算的處理技術(shù),提高計算速度。
本文主要是在處理平臺層次,對處理軟件的并行性進(jìn)行研究,研究目標(biāo)是利用計算機集群系統(tǒng)和網(wǎng)格計算方法設(shè)計一個具有通用性特點,能夠適應(yīng)不同地球物理方法的數(shù)據(jù)處理的并行計算平臺。
1 地球物理數(shù)據(jù)處理現(xiàn)狀
對于地球物理數(shù)據(jù)處理而言,隨著儀器精度和操作便捷性的提升,野外采集數(shù)據(jù)的規(guī)模動輒數(shù)十GB,加之各種正反演算法也不斷演化,使得地球物理數(shù)據(jù)處理的計算量已經(jīng)超出了單臺PC機的計算能力。而我國計算機的發(fā)展現(xiàn)狀以及固體礦產(chǎn)和工程地球物理勘探的投資也不足以廣泛使用高速的大規(guī)模并行計算機[3]。
目前地球物理數(shù)據(jù)處理的軟件基本上還處于單臺計算機運行的狀態(tài),處理軟件大多是儀器設(shè)備自帶,也有第三方公司開發(fā)的優(yōu)秀處理軟件。然而這些軟件通常僅限于單機運行,這主要是由于地球物理數(shù)據(jù)處理本身就很復(fù)雜,如果在去考慮并行計算和分布式的問題,就會使處理軟件本身的設(shè)計面臨巨大的挑戰(zhàn),而且在地球物理數(shù)據(jù)處理軟件內(nèi)部再集成并行運算會形成高度耦合的系統(tǒng),這樣高度耦合的軟件系統(tǒng)從軟件工程的角度來看會給軟件系統(tǒng)后期的運行和維護(hù)帶來巨大的風(fēng)險和挑戰(zhàn),嚴(yán)重的耦合甚至?xí)?dǎo)致整個系統(tǒng)的失敗。因此,必須將地球物理數(shù)據(jù)處理軟件和并行計算平臺進(jìn)行解耦,正確的系統(tǒng)架構(gòu)如圖1所示。
圖1 地球物理數(shù)據(jù)并行處理架構(gòu)
如何能夠在保證運算速度提升的情況下,又可以最大限度的利用現(xiàn)有計算資源便成為一個擺在地球物理工作者面前一個亟待解決的問題?;谟嬎銠C集群系統(tǒng)的網(wǎng)格計算從一定程度上解決了這個投入與產(chǎn)出的平衡問題。
2 并行計算機系統(tǒng)在地球物理數(shù)據(jù)處理中的應(yīng)用
目前并行計算機系統(tǒng)主要有三大趨勢,對稱多處理機(Symmetric Multiprocessor,SMP),大規(guī)模并行處理機(Massively Parallel Processor,MPP)和工作站集群(COW)[4]。對稱多處理機系統(tǒng)(SMP)通常使用商用處理器,其采用對稱式的處理器布局和共享存儲器系統(tǒng),通過高速的總線將處理器和存儲器相連,但由于采用共享存儲器,系統(tǒng)中的處理器數(shù)目不得超過64個[5]。例如Sun公司的Enterprise服務(wù)器。
大規(guī)模并行處理機(MPP)一般是指由成百上千個分布式處理機用高速網(wǎng)絡(luò)連接而成的超大型計算機系統(tǒng)。MPP的可擴展性很好,通常采用專用的商用處理器,計算速度一般為千億次量級,例如我國的曙光系列超計算機。工作站集群,也被稱為“非正式的超級計算機”[6],通常是指將具有較高性能的PC機通過獨立、專門的網(wǎng)絡(luò)進(jìn)行連接,例如Ethernet,F(xiàn)DDI,ATM等,從而形成一個在物理空間上相互獨立,但通過專門的軟件系統(tǒng)連接后卻又在邏輯上相互統(tǒng)一的計算平臺。
對于地球物理數(shù)據(jù)處理而言,能夠?qū)F(xiàn)有實驗室中的高性能工作站互聯(lián),充分發(fā)揮其計算效能是最經(jīng)濟、最便捷的手段。因此研究工作的目標(biāo)就是設(shè)計一個將若干個普通計算機通過Ethernet進(jìn)行互聯(lián)接后,從系統(tǒng)架構(gòu)上形成一個工作站集群,再通過網(wǎng)格計算平臺的集中調(diào)度,使其成為一個具備地球物理數(shù)據(jù)處理功能的并行計算平臺。
集成的計算與資源環(huán)境則稱為網(wǎng)格[7]。網(wǎng)格計算技術(shù)則通過將各個計算節(jié)點上的計算資源、存儲資源、通信資源進(jìn)行整合從而形成一個虛擬的、并行的計算平臺。網(wǎng)格計算中允許節(jié)點具有高度的自治能力,各個節(jié)點資源配置基本不具有對稱性,因此往往需要一定的資源共享和負(fù)載平衡機制。網(wǎng)格計算消除了資源的孤島,可以最大化地使用節(jié)點的資源,使得網(wǎng)格內(nèi)的閑置資源得以充分利用。網(wǎng)格計算系統(tǒng)主要包括:節(jié)點、系統(tǒng)軟件和網(wǎng)格應(yīng)用軟件。在工作站集群的架構(gòu)下,網(wǎng)格節(jié)點通常是指計算資源、存儲資源、網(wǎng)絡(luò)資源等相互獨立的完整的計算機系統(tǒng),例如PC機、高性能的服務(wù)器,甚至可以使用一臺智能手機,如圖2所示。
圖2 集群模式下的網(wǎng)格計算節(jié)點的拓?fù)浣Y(jié)構(gòu)
系統(tǒng)軟件則是指對網(wǎng)格計算系統(tǒng)中的各種資源進(jìn)行調(diào)配、各個節(jié)點的負(fù)載進(jìn)行均衡的管理軟件,而且這種軟件應(yīng)當(dāng)具有相當(dāng)?shù)目缙脚_特性,這樣才能夠保證其在各種異構(gòu)網(wǎng)格節(jié)點上正常工作。網(wǎng)格應(yīng)用軟件則是面向某一個特定的應(yīng)用領(lǐng)域而專門研發(fā)的軟件,例如水利、石油、能源、飛機制造等對大規(guī)模計算和數(shù)據(jù)處理具有需求的行業(yè)。網(wǎng)格計算框架對于地球物理數(shù)據(jù)處理軟件而言是完全透明的,其在功能上專注于網(wǎng)格計算中涉及到的計算任務(wù)的劃分、任務(wù)的分配、計算結(jié)果的收集、計算節(jié)點的管理、冗余計算、異常處理等機制。
3 網(wǎng)格計算框架的實現(xiàn)與選擇
Java語言具有與生俱來的跨平臺特性,因此對于需要在異構(gòu)系統(tǒng)上運行的網(wǎng)格計算框架,優(yōu)先考慮Java語言實現(xiàn)的網(wǎng)格計算框架。JPPF是一個完全采用Java語言編寫,開源的網(wǎng)格計算框架[8]。JPPF不僅可以方便地構(gòu)建網(wǎng)格計算的平臺,而且還支持J2EE集成,從而將網(wǎng)格計算框架內(nèi)資源向分布式應(yīng)用開放。
JPPF的網(wǎng)格計算的邏輯結(jié)構(gòu)如圖3所示[9]。
圖3 JPPF框架的基本邏輯結(jié)構(gòu)
Clinet是網(wǎng)格計算資源的入口點,計算任務(wù)通過Client提交到網(wǎng)格進(jìn)行計算,并通過Client查看最終的計算結(jié)果。Server是整個網(wǎng)格計算的調(diào)度中心,它負(fù)責(zé)接收Client提交的計算任務(wù),并將任務(wù)分解成獨立的計算單元,隨后根據(jù)調(diào)度算法將計算單元分配到各個Node。Node完成計算任務(wù)后會將計算結(jié)果返回給Server,Server整理計算任務(wù)后再返回給Client。Node是計算資源節(jié)點,在JPPF框架下對于Node沒有明確的軟硬件要求,只要能運行Java程序就可以,因此Node甚至可以使一臺智能手機。Client與Node之間沒有直接聯(lián)系,相互均處于黑盒狀態(tài)。Server對提交的任務(wù)全權(quán)負(fù)責(zé),提供負(fù)載均衡、錯誤恢復(fù)、安全保障、計算任務(wù)傳輸、計算結(jié)果反饋等一系列核心功能。
JPPF還可以進(jìn)行多級方式的擴展,即將多個JPPF Server進(jìn)行相互連接,從而形成一個龐大的網(wǎng)格計算資源,拓?fù)浣Y(jié)構(gòu)如圖4所示。在這種拓?fù)浣Y(jié)構(gòu)中,發(fā)起連接的ServerA被視為一個Client,而被連接的ServerB被視為一個Node。對于單個Server其理論上可以連接3 000個Node,而在n個Server的拓?fù)浣Y(jié)構(gòu)中,整個網(wǎng)格計算資源中的Node可以達(dá)到3 000 n個。因此采用這種方式后整個網(wǎng)格計算的資源從邏輯上講是沒有上限的。
圖4 經(jīng)過級聯(lián)后的JPPF網(wǎng)格的邏輯結(jié)構(gòu)
4 架構(gòu)設(shè)計
由于JPPF提供了網(wǎng)格計算中可擴展性、負(fù)載平衡、錯誤恢復(fù)等一系列核心功能,因此對于地球物理數(shù)據(jù)處理軟件而言,只需要將大規(guī)模計算任務(wù)分解后提交給JPPF計算就可以,整個JPPF對于地球物理數(shù)據(jù)處理軟件而言是透明的。圖5所示為一種基于JPPF的地球物理網(wǎng)格計算系統(tǒng)的架構(gòu)。
圖5 基于JPPF的地球物理網(wǎng)格計算系統(tǒng)
整個地球物理數(shù)據(jù)并行計算系統(tǒng)主要分為兩大部分:地球物理數(shù)據(jù)處理框架和JPPF框架。野外采集的數(shù)據(jù)根據(jù)數(shù)據(jù)類型、地球物理方法類別、儀器的設(shè)備種類等不同條件進(jìn)行數(shù)據(jù)的預(yù)處理和歸一化。處理后的數(shù)據(jù)存入數(shù)據(jù)庫或文件系統(tǒng),這里統(tǒng)一稱之為“持久化存儲系統(tǒng)”。接下來,根據(jù)數(shù)據(jù)處理的具體要求和項目的實際需要,選擇合適的地球物理正反演方法,并對算法中的用到的各種矩陣、參數(shù)等進(jìn)行初始化。之后就可以根據(jù)預(yù)處理好的數(shù)據(jù)和算法進(jìn)行并行算法的任務(wù)分解,并經(jīng)過Client提交給MainServer進(jìn)行網(wǎng)格計算。
在網(wǎng)格計算框架的拓?fù)浣Y(jié)構(gòu)設(shè)計上,采用了星形級聯(lián)的方式,所有的并行計算任務(wù)都統(tǒng)一發(fā)送到MainServer進(jìn)行調(diào)度和分配。由于網(wǎng)絡(luò)基礎(chǔ)條件的限制,為了防止網(wǎng)絡(luò)擁塞的頻繁發(fā)生,通常采取在物理空間上相近的計算機,采用1臺計算機為Server,5~10臺為Node的子網(wǎng)格配置方式。所有子網(wǎng)格中Server均連接到MainServer,作為邏輯上Node節(jié)點。從而實現(xiàn)并行計算任務(wù)的逐級分解。當(dāng)Node完成計算工作后,計算結(jié)果也會通過逐級組合的形式,匯總到MainServer形成一個與原始并行任務(wù)對應(yīng)的計算結(jié)果,再通過JPPFClient返回給地球物理數(shù)據(jù)處理框架。
5 實驗結(jié)果及分析
基于上述設(shè)計結(jié)果,進(jìn)行了驗證性實驗。實驗環(huán)境采用1個Server,1個Client,5個Node構(gòu)成JPPF網(wǎng)格計算平臺。計算機配置如下:處理器為(英特爾)Intel[?] CoreTM 2 Duo CPU T8300 2.40 GHz,內(nèi)存為512 MB。地球物理數(shù)據(jù)處理框架采用Java語言編寫,實現(xiàn)了水平地形條件下2.5維可控源音頻大地電磁CSAMT有限單元正演算法[10?11],經(jīng)過改進(jìn)后的并行算法流程如圖6所示。
圖6 CSAMT 2.5維正演并行計算程序流程圖
對于上述算法,存在3種粒度的并行性:按照頻率進(jìn)行、按照波數(shù)進(jìn)行、按照單元進(jìn)行。以F個頻點、L個波數(shù)、N個單元的程序為例設(shè)計算單元矩陣的運行時間為U s(為使問題簡化,其他計算任務(wù)時間可忽略不計),則總計算時間T=F×L×N×U。在最理想的條件下,假設(shè)所有并行的任務(wù)同時開始,同時結(jié)束,即假設(shè)JPPF的并行計算能力無限大,可以同時進(jìn)行無窮多個并行任務(wù),則在不同粒度的并行效率分析如表1所示??梢姴⑿行宰詈玫牡?中方法運行時間最短,而第1中方法則屬于串行算法。針對上述并行性分析,在對JPPF的并行任務(wù)分解時就涉及到8中不同的維度進(jìn)行,考慮到實驗環(huán)境的網(wǎng)絡(luò)基礎(chǔ)條件和實際的計算機配置,實驗用的任務(wù)分配策略采用第5種,即僅在頻率域進(jìn)行并行計算任務(wù)的劃分。
表1 CSAMT 2.5維有限單元正演算法并行性分析
實驗中采用計算了均勻半空間中的TE模式的視電阻率,頻點采用從1~8 192 Hz的范圍取值,根據(jù)頻點個數(shù)由程序自動等間隔劃分。實驗結(jié)果如圖7所示。
圖7 CSAMT 2.5維正演模型頻點并行與非并行算法比較
由圖7分析可知,隨著頻點個數(shù)的增加頻率并行計算時間和非并行計算時間的差距逐漸增大,網(wǎng)格計算平臺的優(yōu)勢逐漸顯現(xiàn)。但同時也發(fā)現(xiàn)并行計算的時間與對照表中的理想情況存在較大差距,這主要是因為網(wǎng)格計算框架中Server和Client的通信質(zhì)量嚴(yán)重依賴于基礎(chǔ)網(wǎng)絡(luò)的通信,當(dāng)并行任務(wù)較小時,網(wǎng)絡(luò)通信的代價會高于并行計算帶來的收益;當(dāng)并行任務(wù)增多,則會帶來網(wǎng)絡(luò)通信的擁塞問題,這也會對并行計算的效率產(chǎn)生影響。因此,對于一個硬件條件固定的網(wǎng)格計算平臺而言,并行任務(wù)的數(shù)量存在一個閾值,當(dāng)超過或低于這個閾值時網(wǎng)格計算的效率都會降低,只有在此閾值附近時才能使網(wǎng)格計算平臺發(fā)揮最大的計算效率。
6 結(jié) 語
采用工作站集群的并行系統(tǒng)結(jié)構(gòu),利用開源的JPPF網(wǎng)格計算框架,實現(xiàn)了一個地球物理并行計算平臺。實驗結(jié)果顯示,利用JPPF的并行計算平臺能夠顯著提高CSAMT 2.5維正演程序的計算效率。但是,對于不同的地球物理算法,并行性任務(wù)的劃分有很大不同,在下一步的研究工作中,將研究地球物理算法并行任務(wù)的自動識別與劃分。
參考文獻(xiàn)
[1] 徐觀來.地球物理勘探技術(shù)發(fā)展現(xiàn)狀與實際應(yīng)用研究[J].科技創(chuàng)新與應(yīng)用,2014(8):35.
[2] 李敏.高性能并行計算機的發(fā)展及其在石油勘探中的應(yīng)用[J].科技導(dǎo)報,2014(2):80?83.
[3] 陳金窗,戴光明.微機網(wǎng)絡(luò)并行計算及2.5維CSAMT正演的并行實現(xiàn)[J].物探化探計算技術(shù),1997(2):8?12.
[4] 劉羽,王家映.地球物理數(shù)據(jù)處理與并行計算[J].桂林工學(xué)院學(xué)報,2004(4):412?416.
[5] 牛小鵬,李清寶,曾光裕.SMP對稱多處理機系統(tǒng)中交叉開關(guān)的設(shè)計與實現(xiàn)[J].信息工程大學(xué)學(xué)報,2009(2):191?194.
[6] 武耀輝,崔永謙,時健民,等.工作站集群系統(tǒng)的建立與應(yīng)用[J].中國石油勘探,2002(2):57?59.
[7] 都志輝,陳渝,劉鵬.網(wǎng)格計算[M].北京:清華大學(xué)出版社,2002.
[8] 許力,牟曉光,馬云存.JPPF在構(gòu)建高性能ETL過程中的應(yīng)用[J].計算機應(yīng)用,2008(z2):223?225.
[9] Anon. A first taste of JPPF [EB/OL]. [2014?05?01]. http://www.jppf.org/doc/v3/index.php?title=A_first_taste_of_JPPF.
[10] 葛偉男.2.5?D CSAMT有限元正演模擬[D].長沙:中南大學(xué),2012.
[11] 馮萬杰.可控源音頻磁場測深法2.5D正演計算[D].長沙:中南大學(xué),2012.