2020年4月 物 探 装 备 第30卷 第2期
一种基于并行计算技术提高VibProHD 特征信号
转储速度的方法*
李红远** 王井富 门 哲 于敏杰 任艳永
(东方地球物理公司采集技术中心,河北涿州 072750)
李红远,王井富,门哲,于敏杰,任艳永.一种基于并行计算技术提高VibProHD 特征信号转储速度的方法.物探装备,2020,30(2):116-118
摘要 基于多核多线程计算机解决了单线程串行VibPro HD 可控震源特征信号转储速度慢的问题,为并行计算技术提高转储速度的方法提供了指导和借鉴。在Window 平台下编写了VibPro HD 特征信号转储的串行计算和并行计算方法,并在高档微机上进行测试对比。试验结果表明,并行计算可充分利用多核CPU 的性能,显著提高数据转储的速度,同时该方法的实现也为其他耗时的地震数据处理提供一种思路。
关键词 串行计算 并行计算 特征信号转储
Li Hongyuan ,Wang Jingfu ,Men Zhe ,Yu Minjie and Ren Y anyong .A method to improve VibPro HD characteristic signal dump speed based on parallel computing .EGP ,2020,30(2): 116-118
Abstract A multi-core multi-threading computer solves the problem of slow dump speed of single-thread VibPro HD characteristic signal , and provides guidance and reference for the method of parallel computing technology to improve dump speed . The serial and parallel calculation method of VibPro HD characteristic signal dump is written under the window platform , and the test comparison is carried out on the high-grade microcomputer . Experimental results show that parallel computing can make full use of the performance of multi-core CPU and significantly improve the speed of data dump . At the same time , the implementation of this method also provides a way of thinking for other time-consuming seismic data processing .
Key words serial computing ,parallel computing ,characteristic signal dump
0 引言
可控震源特征信号在可控震源质控、处理上压制谐波提高成像质量等方面发挥了越来越重要的作用。在实际生产中,VibProHD 箱体记录的可控震源特征信号需要和VSR 文件结合,生成处理系统能够使用的数据。将这两种信息结合的过程,DAT 文件数量多,结果转储为SEG-Y 的速度受程序架构和计算机运
thread技术行环境的影响。
目前微机多为多核多线程配置,单线程串行运行不能充分发挥处理器的性能。以往微机是通过提高C PU 频率来提高性能,CPU 频率达到3 GHz 后,技术发展遇到瓶颈。计算机厂商朝多核多线程的方向发展,通过增加CPU 核数,来提升芯片的总频率[1]。基于单线程串行方式的软件不能够充分利用多核处理器所带来的性能提升。要充分利用多核的优势,采用多线程并行计算的思维设计程序。目前VS2010程序编译器
─────────
* 本文研究由国家科技重大专项(2017ZX05018-003)资助。
** 李红远,男,1982年出生,高级工程师。2006年毕业于长江大学勘查技术与工程专业,现从事地震采集方法研究和可控震源质控研究。
为并行计算提供了良好支持,使得并行计算的VibPro
HD 特征信号转储程序成为可能。通过在微机上编写的单线程串行和基于并行计算的VibPro HD 特征信号转储程序的测试对比,表明基于并行计算的特征信号转储程序占有明显的优势,处理速度显著提高。
1 方法描述及程序设计
1.1 并行计算方法描述
并行计算(parallel computing )是指将一个总任务分解成多个子任务,分配给不同的任务处理单元。各个处理单元之间相互协同,并行地执行子任务,达到加速完成任务的目的。并行计算几个必备条件:
(1)各处理单元在逻辑上是并行的,并且能够互相通信;
(2)需要解决的任务具有并行能力,即可以划分为多个子任务;
(3)具备并行运行的编程环境,具体实现并行算
第30卷第2期李红远等:一种基于并行计算技术提高VibProHD特征信号转储速度的方法 117
法并运行[2]。
文中并行计算是在多核多线程的微机上进行的。为解决串行计算上在单线程单核上的限制,分解转储任务,使用多线程技术充分利用多核并行计算,达到加速完成任务的目的。根据VibPro HD箱体产生的特征信号具有单个振次单个文件、转储过程中具有特征信号重复解析类似过程的特点,并行计算在VibPro HD特征信号转储程序设计上变得简单而有效。
1.2 并行计算中DAT文件和VSR文件解析
可控震源在震动过程中输出的特征信号(参考信号、重锤信号、平板信号、力信号)被以特定格式记录下来。VibPro HD箱体输出的特征信号是后缀为DAT的文件,每个振次产生一个文件。其内容包括记录号、采样率、样点数、激发时间、道数、每道的样点值。
DAT解析是转储过程中一个非常重要的步骤,也关系到转储后的数据能否被应用。DAT数据中包括三种特征信号:参考信号、重锤信号、平板信号。力信号需要将重锤信号和平板信号进行相加。因此解析DAT文件有以下步骤和要求:
(1)解析DAT文件中的激发日期、激发时间和震源编号,并将激发日期和激发时间转成要求的格式;
(2)解析参考信号、重锤信号和平板信号;
(3)将去除直流漂移后的重锤信号、平板信号的对应样点值进行相加,得到力信号。
VSR(Vibrator Signature Recording)文件由G3i仪器生成,用来记录震源箱体生成的特征信号和仪器生成单炮记录对应关系的表格,其导出格式为Excel。VSR文件内容包括文件号、线号、点号、扫描索引号、震源编号、激发日期、激发时间、坐标、高程及GPS 时间。
读取VSR文件并放到电子表格中,和DAT文件解析并行执行。
1.3 试验程序设计
为了在不同软、硬件环境下进行试验,利用VS2010和QT4.7.4开发工具使用C++编写了专门进行转储的程序,如图1所示。该程序可以对DAT数据和VSR数据进行多线程读取,输出道头信息中包括文件号、线号、点号、坐标、高程和GPS时间信息的SEG-Y。同时可从DAT数据中读取PSS信息,输出PSS文本信息。试验中选择的DAT文件数量为2000个,VSR 文件7983行。
在程序运行的过程中,DAT文件的解析具有重复性。若为串行运行,其为耗时的关键所在。因此,利用多线程并行思想设计程序,优化DAT文件解析任务管理。
图1 程序运行界面
特征信号转储的核心是将DA T文件的任务分解,如图2所示;然后多线程同时执行这些任务;最后收集、合并各个线程的处理结果。同时,和VSR线程解析结果的激发时间、震源编号进行关联,将文件号、线号、点号、坐标、高程和GPS时间一起输出到目标结果,从而尽最大地利用处理器的多核多线程的特性,达到加速转储的目的。输出结果的顺序,按照VSR文件的先后顺序进行输出;可以有针对性的选择VSR范围作为输入,输出结果的顺序就是按照VSR范围的先后顺序。
图2程序设计流程
2 试验结果分析
2.1 试验结果
在联想ThinkStation P410机器上进行试验,机器有16个逻辑处理器,处理器型号Intel(R)Xeon(R
)
118 物探装备2020年
*******************。在该机器上分别进行串行和并行转储测试及对比,并记录了它们各自处理所耗的时间,测试结果如图3所示。
图中灰柱子为单线程串行转储耗时1188 s,并行处理在使用两线程时为651 s,速度提升近2倍,耗时缩短最为明显。并行处理耗时随着线程数量的增加而降低,线程数量为16时,整体的耗时为169 s,转储效率提高了7倍。
图3 不同线程数量下转储耗时对比2.2 结果分析
理论上并行处理当使用16线程时,效率应该是单线程串行效率的16倍左右。从程序设计来看,DAT解析线程和VSR解析线程使用了并行处理。DAT数据随着线程数的增加,每个DAT数据解析线程分配的任务数量在减少。因此,DAT数据解析线程完成解析的时间在减少,耗时为T1;而VSR数据解析线程,任务单一,耗时固定,耗时为T2。当T1大于T2时,增加线程数量,可以提升整体的转储效率;当T1小于等于T2时,增加线程数量整体的转储效率提升不明显。因此优化VSR文件的读取,降低T2时间,是下一步提升整体转储速度的关键。
试验结果表明,在测试机器上多线程并行理数处目大于2时,并行的优势显现。随着处理器核数的增加,并行处理的优势越来越明显。多核多线程是目前微机硬件发展的大趋势,并行处理程序也会越来越占优势。在测试机器上,当使用16线程时,16核CPU 使用率均接近100 %,处理器性能发挥的淋漓尽致,如图4所示。
图4 使用16线程时CPU使用情况3 结束语
试验结果表明,并行计算能够发挥多核多线程设备的性能,同时也显示提高数据整体转储的速度。多核多线程是计算机硬件发展大趋势,在这一大背景下,基于并行计算的特征信号转储程序会发挥出越来越大的优势[3]。
(1)多核多线程是计算机硬件发展的主流趋势,使用并行多线程技术可以提升VibPro HD特征信号转储速度,耗时改善明显。
(2)在逻辑处理器较少时,能做并行处理且相对耗时长的任务对总体任务的完成速度影响较大;当逻辑处理器达到一定数量时,任务单一、不能多处理器同时工作的任务将成为总任务完成速度的关键因素。
(3)并行计算程序设计的思维不仅可以改善数据转储的速度,同时也为其它耗时的地震数据处理提供一种思路。
参考文献
[1] 黄文海著.Java多线程编程实战指南(设计模式篇)[M].北京:电
子工业出版社,2015.10:44-55.
[2] 朱葛俊,张力,盛昀瑶.多核系统的多线程并行计算分析[J].南
京工业职业技术学院学报.2009,(02):51-53.
[3] 周兴铭.多线程技术的现状与前景展望[J].计算机工程与科学,1
999(04):3-5.
收稿日期:2018-10-16
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论