何宗斌,張 宮,樊 鶴 (油氣資源與勘探技術(shù)教育部重點實驗室(長江大學),湖北荊州434023)
一種基于并行計算技術(shù)提高測井數(shù)據(jù)處理速度的方法
何宗斌,張 宮,樊 鶴 (油氣資源與勘探技術(shù)教育部重點實驗室(長江大學),湖北荊州434023)
基于多核處理器普及的背景,針對成像測井數(shù)據(jù)處理速度慢的問題,介紹了利用并行計算技術(shù)提高成像測井數(shù)據(jù)處理速度的方法。首次將并行計算技術(shù)應用于成像測井數(shù)據(jù)處理中,在Windows平臺下編寫了核磁數(shù)據(jù)反演的并行計算方法以及對應的串行計算方法,并在多個不同處理器的微機上對2種方法進行了對比。試驗結(jié)果表明,在多核心處理器計算機上,并行計算能夠充分利用CPU的效率,顯著提高了數(shù)據(jù)處理的速度。同時,該方法的實現(xiàn)也為其他耗時型石油勘探數(shù)據(jù)處理提供了一種提高處理速度的新思路。
并行計算;數(shù)據(jù)處理;多核;多線程
成像測井技術(shù)是新型的測井技術(shù),近年來發(fā)展很快,在測井解釋方面起到了舉足輕重的作用。實際生產(chǎn)工作中發(fā)現(xiàn),由于成像測井數(shù)據(jù)量大、處理模型復雜等原因,導致處理速度較慢,嚴重制約了成像測井技術(shù)的應用。該問題廣泛存在于聲波成像測井技術(shù)、電成像測井技術(shù)以及核磁共振成像測井技術(shù)等領域。
筆者在編寫測井數(shù)據(jù)處理程序的過程中觀察到,目前大多數(shù)處理程序都是單線程串行程序,在配有雙核心處理器的微機上執(zhí)行時不能充分發(fā)揮處理器的性能,在多核心處理器上這種性能浪費更為明顯。分析后認為,長久以來處理器提高性能是通過增加CPU頻率的方法,但是當單核心CPU的頻率發(fā)展到3GHz之后,再往上發(fā)展就遇到了技術(shù)瓶頸。單核心CPU的發(fā)展已經(jīng)到達一個頻率極限,硬件廠商不得不轉(zhuǎn)向多核心CPU發(fā)展,在一顆芯片中加入2個甚至多個運算核心,通過核心的增加,來提高芯片總的頻率。當處理器通過增加運算核心來提高性能時,由于受到其架構(gòu)的影響,先前開發(fā)的軟件并不能充分利用多個處理核心所帶來的性能的提升,甚至有的時候性能還有所下降[1]。要想充分利用多核心處理器的優(yōu)勢,必須以分塊的思維設計程序、以多線程并行的形式來編寫處理軟件。目前多數(shù)新版本的程序編譯器為并行計算提供了良好的支持,使得編寫并行計算的測井處理程序成為可能。筆者以核磁共振T2譜反演處理為例,在微機上編寫了基于并行計算的反演程序以及普通的單線程反演程序,并在多臺不同配置的微機上進行了測試。測試結(jié)果表明,多核心處理器上,基于并行計算的處理程序占有明顯的優(yōu)勢,處理速度得到了顯著提高。
并行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程。通常并行計算問題有以下特征:將工作分離成離散部分,隨時并及時執(zhí)行多個程序指令,多計算資源下解決問題的耗時要少于單個計算資源下的耗時。由于并行計算是將一個工作任務進行分解以并發(fā)執(zhí)行,因此,任何一個支持并行計算的軟件開發(fā)與運行平臺都必須解決這些并發(fā)執(zhí)行的子任務之間的相互協(xié)作問題[2]。該次研究所提的并行計算主要是指在公用儲存器空間的多核心處理器的微機上,為了解決串行程序只使用單核心進行工作的限制,把處理任務分割,利用多線程并行技術(shù)充分使用多核心處理器,從而達到加速處理速度的效果。通常情況下,測井數(shù)據(jù)處理的一個顯著特征是按深度點重復進行類似的計算過程。正是測井數(shù)據(jù)處理的這一特點,為并行計算任務的分割奠定了有利的基礎,使得并行計算測井處理程序設計變得簡單而有效。
T2譜反演是核磁共振測井數(shù)據(jù)處理中一個非常重要的步驟,也是進行儲層參數(shù)計算和油氣水識別的前提條件。T2譜反演算法歸根到底是一個求解超定線性方程最優(yōu)非負解的問題。通常該方程會非常大,需要利用矩陣分解或迭代的方法來進行求解。目前主要的方法有奇異值分解法、模平滑法和迭代法,這幾種算法都存在計算速度慢的問題。為此,筆者在原有的“改進型截斷奇異值分解法(SVD)反演算法”基礎上,利用多線程并行計算思想重新設計程序,編寫了并行計算的T2譜反演算法。
目前主流的編程語言都為多線程并行計算的實現(xiàn)提供了便利的支持。為了方便在不同機器上進行試驗,筆者編寫了專門用于進行反演測試的程序(如圖1)。該程序可以對WIS數(shù)據(jù)(一種保存測井數(shù)據(jù)的二進制數(shù)據(jù)格式)進行讀寫[3],在此基礎上編寫了并行T2譜反演算法和常規(guī)串行T2譜反演程序。試驗程序中,選擇了MRILP型核磁數(shù)據(jù)作為樣本,處理井段為3856~4094m,共計238m,采樣間隔為0.1m,A組回波數(shù)目為500個。
圖1 測試程序界面及運行結(jié)果
并行計算成像測井數(shù)據(jù)處理流程(如圖2)的核心任務是進行任務分割,然后多線程同時執(zhí)行這些任務,最后把處理結(jié)果組合起來。在某些情況下,不能對某些算法進行很好地任務分割,這時可以根據(jù)測井數(shù)據(jù)按深度點處理的特點,在深度方向上對處理進行分割,從而盡可能大地利用處理器的多核心性能,達到加速處理的效果。
筆者在12臺不同配置的微機上對串行和并行處理程序進行了測試及對比,并記錄了它們各自處理所耗費的時間,測試結(jié)果如圖3所示。
目前主流配置的計算機多為雙核或四核,在單核心處理器上測試時,并行時間要略大于串行處理時間,并行的優(yōu)勢并不明顯。例如:在主頻為1.995GHz的微機上,串行處理耗時66.025s,并行處理耗時70.082s,并行速度反而變慢。然而在雙核處理器情況下,例如:在主頻為1.828GHz的微機上,串行耗時為70.031s,并行處理耗時為35.605s,速度提高近2倍。當在雙核以上處理器上測試時,并行的優(yōu)勢更加突出。例如:在主頻為2.8GHz,邏輯核心數(shù)為12的處理器上,串行處理耗時為33.924s,并行處理耗時僅為3.246s,處理效率提高十多倍。
由以上結(jié)果可以看出,對于單核心處理器,并行計算不但不能加速數(shù)據(jù)處理,反而降低了數(shù)據(jù)處理速度。原因是單核心處理器多線程并行,由于只有一個處理器核心,使得線程按分片進行處理,增加了額外的調(diào)度負擔。對于主頻相同的多核心處理器,隨著核心數(shù)的增加,處理效率提高。核心數(shù)目相同的情況下,處理效率和處理器的主頻成正比。
圖2 程序設計流程及并行計算流程
圖3 多核心處理器在不同計算模式下T2譜反演處理時間對比
試驗結(jié)果還表明,當處理器邏輯核心數(shù)目大于2時,并行處理優(yōu)勢開始顯現(xiàn),隨著處理器邏輯核心的增多,并行處理的優(yōu)勢越來越明顯。多核心處理器是目前計算機硬件的發(fā)展趨勢,因此并行處理程序必然會越來越占優(yōu)勢。
另外,在測試過程中明顯發(fā)現(xiàn),當運行串行程序時,雙核CPU的使用率在50%左右,四核CPU的使用率在25%左右;當運行并行程序時,雙核CPU和四核CPU的使用率均接近100%,充分發(fā)揮了處理器的潛能(圖4)。
圖4 運行串行程序和并行程序時CPU的使用率
試驗結(jié)果表明,對于擁有多核心處理器的微機而言,并行計算程序能夠充分利用CPU,從而顯著提高整體處理速度。多核心處理器是以后計算機硬件的發(fā)展方向,在這一背景下,并行計算測井處理程序會發(fā)揮出越來越大的優(yōu)勢。
1)目前,大多數(shù)主流處理器都是雙核或多核心處理器,因此傳統(tǒng)的串行測井數(shù)據(jù)處理程序不能很好地發(fā)揮多核心處理器的優(yōu)勢。改用并行計算的算法,能夠極大地提高測井數(shù)據(jù)處理速度。
2)利用并行計算程序改寫測井處理算法能夠顯著提高測井數(shù)據(jù)處理速度,對耗時的成像測井數(shù)據(jù)處理有極大的幫助。
3)并行計算程序設計的思想不但可以用于改善測井數(shù)據(jù)處理速度,同時也為石油勘探領域其他耗時的數(shù)據(jù)處理提供了一種新的思路。
[1]劉鋼,郭晗,王振吉.基于Java的多核多線程編程技術(shù)[J].吉林建筑工程學院學報,2009,26(6):78~79.
[2]朱葛俊,張力,盛昀瑤.多核系統(tǒng)的多線程并行計算分析[J].南京工業(yè)職業(yè)技術(shù)學院學報,2009,9(2):51~53.
[3]張宮,何宗斌,樊鶴.WIS測井數(shù)據(jù)格式中二維數(shù)據(jù)的解析與轉(zhuǎn)儲[J].科學技術(shù)與工程,2011,11(16):3775~3778.
[編輯] 龍 舟
76 A Method of Improving Processing Speed of Image Logging Data Based on Parallel Computing Technology
HE Zong-bin,ZHANG Gong,F(xiàn)AN He
(First Authors Address:Key Laboratory of Exploration Technologies for Oil and Gas Resources(Yangtze University),Ministry of Education,Jingzhou434023,Hubei,China)
Base on the current popularization of multicore processor,in allusion to the problem of slow speed of image logging data process,the parallel computing technology was introduced to improve the image log data processing speed.It was the first time to use the parallel computing technology in the image logging data processing.A parallel computingmethod of nuclear magnetic data inversion and corresponding serial calculating method were developed on the window platform,and they were compared on some microcomputers with different processors.The results show that on the computer with multi-core processors,parallel computing could make full use of CPU for obviously improving the data processing speed.Meanwhile,it provides a new idea for other consumptive petroleum exploration data processing.
parallel computing;data process;multi-core;multithread
book=255,ebook=255
P631.84
A
1000-9752(2012)07-0076-04
2012-03-20
國家科技重大專項(2011ZX05005-06)。
何宗斌(1965-),男,1986年大學畢業(yè),博士,副教授,現(xiàn)從事核磁共振測井、脈沖中子測井數(shù)據(jù)處理及測井數(shù)據(jù)格式研究工作。