[發明專利]一種針對地震數據塊的并行循環方法在審
| 申請號: | 201310462138.9 | 申請日: | 2013-09-30 |
| 公開(公告)號: | CN104516717A | 公開(公告)日: | 2015-04-15 |
| 發明(設計)人: | 洪承煜;楊尚琴;陳浩;岳承琪;王昀;吳邊 | 申請(專利權)人: | 中國石油化工股份有限公司;中國石油化工股份有限公司石油物探技術研究院 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京思創畢升專利事務所 11218 | 代理人: | 郭韞 |
| 地址: | 100728 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 針對 地震 數據 并行 循環 方法 | ||
技術領域
本發明屬于計算機科學領域中的并行計算領域,具體涉及一種針對地震數據塊的并行循環方法。
背景技術
在并行計算領域中,針對地震數據塊的數據級并行,一般都會存在循環算法,而循環算法通常也是并行的熱點。對于這種并行熱點,目前的實現方式有:(1)使用制導語句(OpenMP等),它的使用簡單,但會對每個并行循環進行一次創建和銷毀,會消耗一定的時間;(2)使用線程庫(Windows?Threads、Pthread等)的一般方法是:①把循環所在的程序塊封裝在一個新函數中;②在新函數的循環中使用線程同步原語實現線程同步;③聲明新函數形參:如循環次數及其它新函數執行需要的參數;④創建線程,并把新函數綁定在線程執行函數入口;⑤初始化線程,并給程序執行函數指定實參;⑥啟動線程執行;⑦等待線程計算完成。這種方式控制復雜,需要充分理解線程同步、線程創建、線程初始化、線程控制的專業知識,不利于應用開發人員把注意力集中在應用開發上。
本申請要解決的技術問題是透明化復雜的線程控制和同步,設計一種模板化的針對地震數據塊的循環算法的并行方法。
發明內容
本發明的目的在于解決上述現有技術中存在的難題,提供一種針對地震數據塊的并行循環方法,既可以提供靈活的線程控制,也可以封裝線程同步、線程創建、線程初始化、線程控制各種專業知識,讓并行循環開發人員只把注意力集中在應用上。它的使用簡單,可大幅度的降低并行循環的開發時間和開發復雜度。
本發明是通過以下技術方案實現的:
一種針對地震數據塊的并行循環方法,包括:
(1)封裝線程控制、同步原語;
(2)循環算法的地震數據塊分發控制線程模板化;
(3)循環算法的特定地震數據塊計算線程模板化。
步驟(2)和步驟(3)之間沒有先后順序的關系,只是在排版上的順序。所述地震數據塊指可被循環算法計算所需的地震數據集,比如:N個地震道數據;所述特定地震數據塊指在運行時相應計算線程從控制線程分發中得到的地震數據塊。它是控制線程中所有地震數據塊中的一部分。
所述步驟(1)包括:
①一次性創建計算線程,它的目的是減少線程多次創建和銷毀的系統消耗。它通過線程庫的創建線程函數接口實現;
②地震數據分發完成。當地震數據分發完成后,它通過線程庫的互斥鎖和條件變量實現對各個計算線程的通知,讓計算線程啟動計算,偽代碼如下;
上鎖;
設置所有計算線程數據準備好狀態;
通知所有計算線程可以計算;
解鎖;
③等待所有針對被分發的地震數據塊的計算線程計算完成。它通過線程庫的互斥鎖和條件變量實現等待所有計算線程計算完成,偽代碼如下;
上鎖;
等待所有計算線程計算完成;
解鎖;
④通知所有計算線程停止計算。它通過線程庫的互斥鎖和條件變量實現通知所有計算線程停止計算,偽代碼如下;
上鎖;
設置所有計算線程停止計算狀態;
通知所有計算線程停止計算;
解鎖;
⑤等待所有計算線程退出計算函數。它通過線程庫的互斥鎖和條件變量等待所有計算線程退出計算函數,偽代碼如下;
上鎖;
等待所有計算線程退出;
解鎖;
⑥獲取當前計算線程ID。它通過線程庫的線程標識符獲取函數實現;
⑦等待地震數據分發完成。它通過線程庫的互斥鎖和條件變量等待地震數據分發完成,偽代碼如下;
上鎖;
等待地震數據分發完成;
解鎖;
⑧獲取當前計算線程是否需要停止計算狀態。狀態值記錄在數組中;
⑨通知控制線程當前計算線程計算完成。它通過線程庫的互斥鎖和條件變量通知控制線程當前計算線程計算完成,偽代碼如下;
上鎖;
設置當前線程ID的計算線程計算完成狀態;
最后一個計算完成的計算線程通知控制線程計算完成;
解鎖;
⑩通知控制線程當前計算線程退出計算函數。它通過線程庫的互斥鎖和條件變量通知控制線程當前計算線程退出計算函數,偽代碼如下;
上鎖;
設置當前線程ID的計算線程退出計算函數狀態;
最后一個退出計算函數的計算線程通知控制線程計算完成;
解鎖;
(11)啟動所有計算線程。它通過線程庫的喚醒阻塞線程函數接口啟動所有計算線程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國石油化工股份有限公司;中國石油化工股份有限公司石油物探技術研究院;,未經中國石油化工股份有限公司;中國石油化工股份有限公司石油物探技術研究院;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310462138.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:對于復制的數據表的表屬性管理
- 下一篇:將不同的定點二進制數相乘
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





