• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于多核CPU加速DLIS測井?dāng)?shù)據(jù)解碼方法

      2019-10-21 12:00:10鐘華明曾少軍梁玉楠
      測井技術(shù) 2019年3期
      關(guān)鍵詞:數(shù)據(jù)格式解碼測井

      鐘華明,曾少軍,梁玉楠

      (中海石油(中國)有限公司湛江分公司,廣東湛江524057)

      0 引 言

      DLIS(Digital Log Interchange Standard)[1]格式是Schlumberger公司從1991年開始采用的一種全新的測井?dāng)?shù)據(jù)記錄標(biāo)準(zhǔn),該標(biāo)準(zhǔn)得到了API(美國石油學(xué)會)的批準(zhǔn)和推薦使用。該數(shù)據(jù)格式具有與機(jī)器無關(guān)、自描述、語義可擴(kuò)展性以及面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)等特點(diǎn),便于高效處理大量的測井信息以及相關(guān)信息。但是DLIS測井?dāng)?shù)據(jù)格式使用統(tǒng)一的語言描述以及面向?qū)ο蟮臄?shù)據(jù)記錄方法,使其與las、wis等數(shù)據(jù)格式具有很大的區(qū)別,不能夠直接獲得文件數(shù)據(jù)。同時DLIS的設(shè)計(jì)格式使其與每一個字節(jié)都有具體含義的CLS和XTF格式有很大的區(qū)別。在做數(shù)據(jù)解碼的時采用DLIS解碼流程解碼,該方法采用串行解碼方式,解碼效率往往不高,當(dāng)文件達(dá)到百兆字節(jié)以上時,其數(shù)據(jù)量達(dá)到上千萬條,文件解碼時間超過了測井解釋人員可容忍的等待時間[1]。

      通過對RP66(Recommended practice 66)文檔進(jìn)行仔細(xì)閱讀和推理,理清DLIS的特點(diǎn)以及內(nèi)部結(jié)構(gòu),根據(jù)DLIS內(nèi)部結(jié)構(gòu)的特點(diǎn)分析可并行的結(jié)構(gòu),并利用目前普遍使用的多核處理器設(shè)計(jì)了合適的并行解碼算法。

      1 DLIS的特點(diǎn)

      面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)是DLIS的一大特色[2-4],DLIS采用對象數(shù)據(jù)結(jié)構(gòu)記錄測井信息,包含30多種明確的數(shù)據(jù)對象,例如數(shù)據(jù)道對象(Channel Object),幀對象(Frame Object),參數(shù)對象(Parameter Object),文件頭對象(File-Header Object),數(shù)據(jù)源對象(Origin Object)等,這些對象均為字典約束定義對象,具有固定的模板結(jié)構(gòu)屬性。這種面向?qū)ο笥涗洐C(jī)制,使信息記錄變得更加緊湊,一致性和關(guān)聯(lián)性更好。

      多幀類型是DLIS最顯著的特征。以往的測井?dāng)?shù)據(jù)格式,無論是LIS還是BIT一個文件都只能記錄一種采樣間隔的數(shù)據(jù),而DLIS可以將不同儀器所測得的不同采樣間隔的數(shù)據(jù)通過幀作為索引記錄到同一個文件中。

      DLIS使用27種數(shù)據(jù)代碼來定義和說明每一種數(shù)值,每種數(shù)據(jù)代碼都有明確的碼值、字節(jié)名稱、字節(jié)長度以及詳細(xì)的定義描述標(biāo)準(zhǔn)。因而可以直接使用數(shù)值代碼轉(zhuǎn)換程序來解碼數(shù)據(jù),克服了應(yīng)用平臺的限制。

      2 DLIS的結(jié)構(gòu)

      DLIS采用邏輯格式和物理格式2層格式對數(shù)據(jù)存儲的方式進(jìn)行說明[1]。邏輯格式是對測井相關(guān)信息以及曲線數(shù)據(jù)邏輯劃分進(jìn)行說明,物理格式說明測井?dāng)?shù)據(jù)存儲在物理文件中的比特流。

      2.1 邏輯格式

      邏輯格式可以細(xì)分為4部分:邏輯文件、邏輯記錄、邏輯記錄段以及可視記錄??梢曈涗浭沁壿嫺袷脚c物理格式之間的接口,每個可視記錄在物理媒介中映射到相應(yīng)的BIT流中,在邏輯格式中映射到所包含的邏輯記錄段,它可以包含1個或者多個邏輯記錄段。每個邏輯記錄段只包含在1個可視記錄中,它包含了邏輯記錄在物理存儲介質(zhì)中描述和實(shí)現(xiàn)所需的結(jié)構(gòu),用來在可視記錄中分離不同的邏輯記錄,同時邏輯記錄段是最小的加密邏輯結(jié)構(gòu)體。邏輯記錄將連續(xù)的、相關(guān)聯(lián)的信息包組織在一起,從語義上看,它有2種邏輯組織方式:EFLR(Explicitly-formatted Logical Record)和IFLR(Indirectly-formatted Logical Record)。EFLR是一種自我描述的邏輯記錄,邏輯記錄體的信息格式可以從記錄本身得到。IFLR這種邏輯格式一般記錄的是測井曲線數(shù)據(jù),記錄體的數(shù)據(jù)格式不能直接從記錄本身解碼得到,它必須關(guān)聯(lián)到相應(yīng)的EFLR,并利用相應(yīng)的數(shù)值轉(zhuǎn)換程序才能夠解碼所記錄內(nèi)容,兩者的關(guān)系見圖1。每個邏輯記錄可以包含1個或者多個邏輯記錄段,由邏輯記錄段的Predecessor屬性來判斷邏輯記錄的開始,由Successor屬性字段來判斷邏輯記錄的結(jié)束。每個DLIS中包含1個或者多個邏輯文件,每個邏輯文件包含了1個或者多個邏輯記錄,由邏輯記錄FILEHEADER對象標(biāo)識每個邏輯文件的開始位置。

      圖1 邏輯記錄格式關(guān)系

      2.2 物理格式

      物理格式是數(shù)據(jù)在物理媒介中存放和組織的方式,物理格式可以分為3個互不相關(guān)的部分:邏輯格式、不可見信封以及可見信封(見圖2)。

      圖2 物理記錄格式

      邏輯格式記錄的是可以應(yīng)用的數(shù)據(jù);不可見信封記錄是受到存儲機(jī)制控制的,它不能按常規(guī)的數(shù)據(jù)讀寫,它是存儲機(jī)制和應(yīng)用程序之間的控制接口,通過特殊的查詢程序進(jìn)行訪問??梢娦欧庥涗浀氖菙?shù)據(jù)傳遞的信息以及物理格式的定義,但是其記錄的數(shù)據(jù)不是邏輯記錄的一部分。存儲單元標(biāo)識SUL(Storage Unit Label)是由ASCII碼字符串組成的可見信封,它是DLIS數(shù)據(jù)文件的入口,定義了DLIS數(shù)據(jù)格式的版本號、存儲單元序列號等相關(guān)信息,用來標(biāo)識一個邏輯文件是否跨越多個存儲單元。

      3 并行算法設(shè)計(jì)

      3.1 多核CPU并行計(jì)算

      隨著計(jì)算機(jī)硬件的快速發(fā)展,多核處理器在PC機(jī)上的普及,多核和多線程已經(jīng)成為應(yīng)對處理器性能提升中遇到的瓶頸問題的一種可行的方法,多處理器和多核技術(shù)已經(jīng)得到了廣泛應(yīng)用[5-9]。但是多線程并發(fā)編程無論在性能分析還是調(diào)度優(yōu)化一直都存在很高的難度,使多核技術(shù)沒有得到更好的應(yīng)用。針對這個問題,微軟公司的Visual Studio從2010版開始加大了對并行編程的支持,同時引入了Concurrency Visualizer分析工具,在一定的程度上降低了并行性能的分析難度,幫助開發(fā)者分析可并行執(zhí)行的代碼,能夠較好地滿足多核并行計(jì)算編程的要求。

      3.2 DLIS并行設(shè)計(jì)

      每個DLIS包含大量獨(dú)立存儲的EFLR和IFLR記錄。EFLR和IFLR都是以對象獨(dú)立分離存儲,因此,在設(shè)計(jì)算法的時候,可以對每個EFLR和IFLR進(jìn)行并行計(jì)算;但實(shí)驗(yàn)發(fā)現(xiàn)加速比并不明顯。這是因?yàn)椴煌腅FLR或者IFLR其內(nèi)部的數(shù)據(jù)所對應(yīng)的數(shù)據(jù)格式不同,在數(shù)據(jù)解編前,需要映射到相應(yīng)的數(shù)據(jù)表示碼,增加了并行通訊的任務(wù)量,使解編效率無法提升;同時DLIS的數(shù)據(jù)體主要使用IFLR來存儲,IFLR含有大量的數(shù)據(jù),而且數(shù)據(jù)的表示碼不同,IFLR的解碼速度直接制約了DLIS解編效率。

      IFLR邏輯記錄中保存EFLR記錄FRAME對象中所包含的曲線列表在某一個采樣點(diǎn)的數(shù)據(jù)記錄;每條曲線在同一采樣點(diǎn)有一維或者多維采樣記錄,即包含一個或者多個采樣數(shù)據(jù)。同一條曲線所有采樣數(shù)據(jù)的數(shù)據(jù)表示碼是相同的,其表示碼和維數(shù)可以從EFLR記錄CHANNEL對象中獲取。為了減少程序間的調(diào)用及通訊,加快并行解編速度,對IFLR記錄按照曲線拆分,對拆分的曲線并行解碼;結(jié)果表明,這種方式實(shí)現(xiàn)的并行解碼能夠獲得較好的加速比。

      圖3 算法流程圖

      圖3為DLIS并行解碼流程圖,根據(jù)EFLR和IFLR這2類邏輯記錄中,分離出曲線數(shù)據(jù)體,對曲線數(shù)據(jù)體進(jìn)行劃分并映射到CPU的運(yùn)算核中,實(shí)現(xiàn)并行解碼。

      4 DLIS解碼算法實(shí)現(xiàn)

      在解編之前,首先根據(jù)FRAME對象曲線列表等相關(guān)信息對每條曲線數(shù)據(jù)進(jìn)行分離,然后根據(jù)CHANNEL對象對每條曲線數(shù)據(jù)進(jìn)行歸并后并行解碼。DLIS并行解碼采用Visual Studio并行模式庫(PPL)中的parallel_for_each方法實(shí)現(xiàn)。算法實(shí)現(xiàn)描述見圖4。

      圖4 DLIS解編算法描述

      5 結(jié)果分析

      實(shí)驗(yàn)環(huán)境為Intel core(TM)i7-4710MQ 2.56 GHz CPU,選擇9個不同大小的DLIS文件來測試所設(shè)計(jì)的并行算法,文件大小從幾兆到200多兆之間,并將該算法運(yùn)行結(jié)果與易朝建、黃政在磁帶數(shù)據(jù)格式解編方法中提出的DLIS串行解編方法運(yùn)行結(jié)果進(jìn)行對比。

      其加速比計(jì)算采用式(1)進(jìn)行計(jì)算,結(jié)果見表1。

      (1)

      式中,sp為加速比;Δtp為本程序運(yùn)行時間;Δty為易朝建所建立的算法程序所運(yùn)行時間。

      圖5 加速比隨著文件大小變化

      從圖5中可見,當(dāng)文件小于5 MB時,多核CPU并行解編速度并不優(yōu)于串行解編速度,這是由于在并行解碼的過程中,需要消耗過多的通訊時間,抵消了并行運(yùn)算帶來的優(yōu)勢,降低了解碼效率。當(dāng)文件大于5 MB后,其解編的加速比隨著文件的大小不斷加大,當(dāng)文件大小趨200 MB時,加速比趨近2。

      表1 算法運(yùn)行加速比

      因此,當(dāng)文件很大的時候,并行解編速度比串行解編快近一倍,減少用戶等待時間。

      6 結(jié) 論

      基于多核CPU加速DLIS并行解碼方法在生產(chǎn)中的應(yīng)用結(jié)果表明,當(dāng)DLIS文件小于5 MB,采用串行解碼方式能夠獲得更快的解碼速度,優(yōu)于并行解碼;當(dāng)DLIS文件大小大于5 MB,多核CPU并行解碼方法遠(yuǎn)優(yōu)于串行解碼方法,并隨著DLIS文件大小增加,加速比快速增大,并趨于2。因此,當(dāng)DLIS文件較大時,采用基于多核CPU加速DLIS并行解碼方法能夠獲得較好的效果,在一定程度滿足用戶對解碼響應(yīng)的需求。

      猜你喜歡
      數(shù)據(jù)格式解碼測井
      本期廣告索引
      《解碼萬噸站》
      八扇區(qū)水泥膠結(jié)測井儀刻度及測井?dāng)?shù)據(jù)處理
      中國煤層氣(2021年5期)2021-03-02 05:53:12
      解碼eUCP2.0
      中國外匯(2019年19期)2019-11-26 00:57:32
      NAD C368解碼/放大器一體機(jī)
      Quad(國都)Vena解碼/放大器一體機(jī)
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
      電子測試(2018年1期)2018-04-18 11:52:49
      基于測井響應(yīng)評價煤巖結(jié)構(gòu)特征
      中國煤層氣(2015年4期)2015-08-22 03:28:01
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
      中石油首個全國測井行業(yè)標(biāo)準(zhǔn)發(fā)布
      江山市| 信阳市| 句容市| 咸丰县| 海城市| 江北区| 资中县| 乐山市| 洛浦县| 抚顺市| 乐山市| 盐池县| 贵定县| 平罗县| 昭觉县| 湖州市| 深泽县| 务川| 安丘市| 株洲市| 安国市| 聊城市| 周宁县| 方正县| 平阳县| 苍梧县| 临朐县| 辽宁省| 靖边县| 武隆县| 瑞昌市| 江陵县| 永和县| 合作市| 潍坊市| 牟定县| 彭山县| 大丰市| 阿瓦提县| 文登市| 平原县|