并行正演数值模拟自优化方法及系统转让专利

申请号 : CN201810961879.4

文献号 : CN110858149A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨尚琴洪承煜许自龙王小青王婷婷

申请人 : 中国石油化工股份有限公司中国石油化工股份有限公司石油物探技术研究院

摘要 :

公开了一种并行正演数值模拟自优化方法及系统。该方法包括:确定多种调优方法与多种优化方法;在多种调优方法与多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。本发明通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,令正演数值模拟应用于纷繁复杂的异构计算硬件,减少了软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。

权利要求 :

1.一种并行正演数值模拟自优化方法,其特征在于,包括:

确定多种调优方法与多种优化方法;

在所述多种调优方法与所述多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;

根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。

2.根据权利要求1所述并行正演数值模拟自优化方法,其中,所述针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。

3.根据权利要求1所述的并行正演数值模拟自优化方法,其中,所述针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。

4.根据权利要求1所述的并行正演数值模拟自优化方法,其中,根据所述目标程序运行环境的属性,选择多种优化方法的至少一种。

5.根据权利要求1所述的并行正演数值模拟自优化方法,其中,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。

6.一种并行正演数值模拟自优化系统,其特征在于,该系统包括:存储器,存储有计算机可执行指令;

处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:确定多种调优方法与多种优化方法;

在所述多种调优方法与所述多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;

根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。

7.根据权利要求6所述并行正演数值模拟自优化系统,其中,所述针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。

8.根据权利要求6所述的并行正演数值模拟自优化系统,其中,所述针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。

9.根据权利要求6所述的并行正演数值模拟自优化系统,其中,根据所述目标程序运行环境的属性,选择多种优化方法的至少一种。

10.根据权利要求6所述的并行正演数值模拟自优化系统,其中,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。

说明书 :

并行正演数值模拟自优化方法及系统

技术领域

[0001] 本发明涉及石油地球物理勘探技术领域,更具体地,涉及一种并行正演数值模拟自优化方法及系统。

背景技术

[0002] 当前,以正演模拟等为代表的地震处理技术对高性能计算机的计算和数据处理能力有很高的要求,但软件应用方面仍面临很大的挑战,如何快速有效的开发基于大规模异构集群的石油物探软件是当前面临的最大难题,在实际生产中需要对正演模拟的计算核心在通用多核处理器平台和GPU平台上做并行化调优,因此,如何组合多种不同的优化方式以便捷的达到可移植的高性能也是一个研究的内容。因此,有必要开发一种并行正演数值模拟自优化方法及系统。
[0003] 公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。

发明内容

[0004] 本发明提出了一种并行正演数值模拟自优化方法及系统,其能够通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,减少软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。
[0005] 根据本发明的一方面,提出了一种并行正演数值模拟自优化方法。所述方法可以包括:确定多种调优方法与多种优化方法;在所述多种调优方法与所述多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。
[0006] 优选地,所述针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。
[0007] 优选地,所述针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。
[0008] 优选地,根据所述目标程序运行环境的属性,选择多种优化方法的至少一种。
[0009] 优选地,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。
[0010] 根据本发明的另一方面,提出了一种并行正演数值模拟自优化系统,其特征在于,该系统包括:存储器,存储有计算机可执行指令;处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:确定多种调优方法与多种优化方法;在所述多种调优方法与所述多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。
[0011] 优选地,所述针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。
[0012] 优选地,所述针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。
[0013] 优选地,根据所述目标程序运行环境的属性,选择多种优化方法的至少一种。
[0014] 优选地,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。
[0015] 其有益效果在于:通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,令正演数值模拟应用于纷繁复杂的异构计算硬件,减少了软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。
[0016] 本发明具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。

附图说明

[0017] 通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
[0018] 图1示出了根据本发明的并行正演数值模拟自优化方法的步骤的流程图。

具体实施方式

[0019] 下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
[0020] 图1示出了根据本发明的并行正演数值模拟自优化方法的步骤的流程图。
[0021] 在该实施例中,根据本发明的并行正演数值模拟自优化方法可以包括:步骤101,确定多种调优方法与多种优化方法;步骤102,在多种调优方法与多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;步骤103,根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。
[0022] 在一个示例中,针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。
[0023] 在一个示例中,针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。
[0024] 在一个示例中,根据目标程序运行环境的属性,选择多种优化方法的至少一种。
[0025] 在一个示例中,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。
[0026] 具体地,根据本发明的并行正演数值模拟自优化方法可以包括:确定多种调优方法与多种优化方法,其中,多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优,多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化;在多种调优方法与多种优化方法中,分别选择至少一种,通过脚本文件生成不同的优化组合对应的优化配置文件,其中,根据目标程序运行环境的属性,选择多种优化方法的至少一种,例如,目标程序运行环境为多核CPU,优化方法则选择Pthread多线程优化;目标程序运行环境包含性能良好的GPU环境,则可以选择CUDA并行化或OpenCL并行化;目标程序运行环境既有多核CPU又包含性能良好的GPU环境,则可以选择OpenCL并行化,其中,性能良好的GPU环境为GPU的单精度浮点性能峰值达到1.26TFLOPS,TFLOPS表示每秒浮点运算次数。根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为目标程序的最佳优化方法。
[0027] 其中,脚本文件为:
[0028]
[0029] 可以对不同的目标程序重复上述步骤,获得不同的目标程序对应的最佳优化方法。
[0030] 本方法通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,令正演数值模拟应用于纷繁复杂的异构计算硬件,减少了软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。
[0031] 应用示例
[0032] 为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。
[0033] 运行环境为Tesla K20m,就二维弹性波正演数值模拟方法使用OpenCL优化下,对于自优化组合的一组实施例的实验数据如下所述。其中,单位每步计算时间即每个时间片计算需要的时间数(单位:毫秒);Msample/s即每秒钟可以计算多少M(10的6次方)的网格点数;每秒帧数(FPS)即每秒计算的时间片数,也即每秒输出的波场快照数。
[0034] 1)在USE_CONST=0,USE_LDS=0,USE_DDEN=0,Zero_COPY=0的情况下,实验数据如表1所示。其中,USE_CONST=0表示未开启空间局部性调优;USE_LDS=0表示未开启时间局部性调优;USE_DDEN=0表示未开启减少同步调优;Zero_COPY=0表示未开启零复制调优。
[0035] 表1
[0036]模型长度 模型深度 网格点数 FPS 单步时间 Msample/s
640 480 307200 297.48 3.361570526 91.385856
800 600 480000 207.62 4.816491667 99.6576
1280 800 1024000 108.99 9.175153684 111.60576
1600 900 1440000 80.45 12.4300808 115.848
1920 1080 2073600 57.92 17.26519337 120.102912
3200 1800 5760000 22.4 44.64285714 129.024
3840 2160 8294400 15.69 63.73486297 130.139136
[0037] 2)在USE_CONST=0,USE_LDS=0,USE_DDEN=0,Zero_COPY=1的情况下,实验数据如表2所示。其中,USE_CONST=0表示未开启空间局部性调优;USE_LDS=0表示未开启时间局部性调优;USE_DDEN=0表示未开启减少同步调优;Zero_COPY=1表示开启零复制调优。
[0038] 表2
[0039]
[0040]
[0041] 综上所述,本发明通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,令正演数值模拟应用于纷繁复杂的异构计算硬件,减少了软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。
[0042] 本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
[0043] 根据本发明的并行正演数值模拟自优化系统,其特征在于,该系统包括:存储器,存储有计算机可执行指令;处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:确定多种调优方法与多种优化方法;在多种调优方法与多种优化方法中,分别选择至少一种调优方法和至少一种优化方法,生成不同的优化组合对应的优化配置文件;根据每一个优化配置文件运行目标程序,记录不同优化组合对应的优化配置文件的实际运行时间,确定实际运行时间最短的优化配置文件对应的优化组合为最佳优化方法。
[0044] 在一个示例中,针对二维弹性波正演数值模拟核心算法的多种调优方法包括:空间局部性调优、时间局部性调优、零复制调优、减少同步调优、边界重划调优、线程和处理器绑定调优。
[0045] 在一个示例中,针对二维弹性波正演数值模拟算法的多种优化方法包括:Pthread多线程优化、CUDA的并行化、OpenCL并行化。
[0046] 在一个示例中,根据目标程序运行环境的属性,选择多种优化方法的至少一种。
[0047] 在一个示例中,还包括:针对多种调优方法与多种优化方法,通过脚本文件生成不同的优化组合对应的优化配置文件。
[0048] 本系统通过进行多种方式的并行调优,对不同优化参数的搜索及整合,获得程序的最佳优化组合,提高代码的可移植性,消除平台无关性,令正演数值模拟应用于纷繁复杂的异构计算硬件,减少了软件研发与维护的开销成本,从而更好地指导地震资料的采集、处理及解释工作。
[0049] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。