CN111766623B - 一种基于mpi进程拓扑的地震波场三维正演模拟方法 - Google Patents
一种基于mpi进程拓扑的地震波场三维正演模拟方法 Download PDFInfo
- Publication number
- CN111766623B CN111766623B CN202010449212.3A CN202010449212A CN111766623B CN 111766623 B CN111766623 B CN 111766623B CN 202010449212 A CN202010449212 A CN 202010449212A CN 111766623 B CN111766623 B CN 111766623B
- Authority
- CN
- China
- Prior art keywords
- mpi
- parameters
- forward modeling
- group
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 339
- 238000004891 communication Methods 0.000 claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 22
- 230000027455 binding Effects 0.000 claims description 13
- 238000009739 binding Methods 0.000 claims description 13
- 238000005422 blasting Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 9
- 238000004088 simulation Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
- G01V1/282—Application of seismic models, synthetic seismograms
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/60—Analysis
- G01V2210/67—Wave propagation modeling
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Acoustics & Sound (AREA)
- Environmental & Geological Engineering (AREA)
- Geology (AREA)
- General Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Geophysics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于MPI进程拓扑的地震波场三维正演模拟方法,包括:获取MPI进程拓扑参数和所有任务的三维正演模拟参数,每一所述任务对应一炮三维正演模拟;基于所述MPI进程拓扑参数将所有并行进程分组,每个进程组包括一个或多个进程,并为每一所述进程组创建通信域;将所有任务分组,再为每一所述进程组分配一组任务;每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数依次执行对应任务组中的每一任务,并输出对应的执行结果,直至对应任务组中所有任务执行完毕。本发明采用多层级的细粒度并行优化方式进行三维正演模拟,能够满足三维正演模拟对海量内存的需求,提高计算效率和可扩展性,并保证了文件系统的稳定性。
Description
技术领域
本发明涉及勘探地球物理技术领域,尤其涉及一种基于MPI进程拓扑的地震波场三维正演模拟方法。
背景技术
在勘探地球物理中,正演模拟用于模拟地震波在地下介质的传播情况,它是逆时偏移和波形反演等技术的基础。三维正演模拟用于模拟多震源(即多炮)情况下地震波在三维地下介质中的传播情况,在三维情况下,模拟花费的时间非常长,通常采用集群或超级计算机进行。正演模拟是地震勘探的基础,它的效率直接决定了地震勘探的效率,特别是对于上千平方公里的三维工区,其计算量非常庞大,而超级计算机的发展有利的驱动了地震勘探的发展。针对多炮情况下的三维正演模拟方法,现有技术通常采用的数值模拟方法,通常是采用炮间任务并行,每炮对应一个信息传递接口(Message Passing Interface,简称MPI)进程,每个MPI进程独立计算,最终输出独立的炮记录文件,但是至少具有以下缺点
(1)对于范围较大的三维区块,内存不能满足三维正演模拟的需求
三维正演模拟对内存的需求取决于要模拟的三维模型的大小,随着模型的增大,对内存的需求不断扩大。以声介质为例,当模型大小为1000x1000x1000时,至少需要15G的内存,对于复杂介质,如弹性介质和各项异性介质,需要的内存往往都在声介质的3倍以上,甚至达到10倍。当前的集群或超级计算机的单节点内存通常都在128GB以下,内存大小几乎不能满足需求。如果模型大小进一步扩大,内存需求则远远无法满足。
(2)计算效率低、成本高
通常的三维正演模拟方法仅仅进行了粗粒度的炮间任务并行,有的会在炮内加入共享存储并行编程(Open Multi-Processing,简称OpenMP)多线程并行,这种粗粒度的处理方法,完全没有发挥集群或超级计算机的硬件潜力,从而导致计算效率低、成本高。
(3)对集群文件系统压力大
每个进程分别进行一炮的正演模拟,分别进行三维模型读入和炮记录输出,如果数据量达到几十GB,数百个进程同时进行I/O操作时,容易造成文件系统压力过大,导致程序崩溃,同时影响集群或超级计算机的稳定性。
发明内容
本发明目的在于,提供一种基于MPI进程拓扑的地震波场三维正演模拟方法,采用多层级的细粒度并行优化方式进行三维正演模拟,能够满足三维正演模拟对海量内存的需求,提高计算效率和可扩展性,并保证了文件系统的稳定性。
本发明实施例提供了一种基于MPI进程拓扑的地震波场三维正演模拟方法,包括以下步骤:
获取MPI进程拓扑参数和所有任务的三维正演模拟参数,每一所述任务对应一炮三维正演模拟,所述三维正演模拟参数是指用于求解三维正演模拟的参数,所述MPI进程拓扑参数是指进行单炮三维正演模拟求解所需的并行计算进程的配置参数;
基于所述MPI进程拓扑参数将所有并行进程分组,每个进程组包括一个或多个进程,并为每一所述进程组创建通信域;
将所有任务分组,再为每一所述进程组分配一组任务;
每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数依次执行对应任务组中的每一任务,并输出对应的执行结果,直至对应任务组中所有任务执行完毕。
进一步的,所述三维正演模拟参数包括三维模型相关参数、放炮参数、震源参数、检波点参数、时间积分参数、结果输出控制参数、有限差分参数。
进一步的,所述MPI进程拓扑参数包括进程维度和每一进程维度对应的进程数。
进一步的,所述方法还包括:
在获取MPI进程拓扑参数和所有任务的三维正演模拟参数过程后,提交作业到计算机时,进行线程绑定。
进一步的,所述方法还包括,根据内存需求为每个进程组对应设置预设数量的节点,每个进程组在执行每个任务时,根据计算需求从所述预设数量的节点中选取一个或多个节点执行所述任务。
进一步的,每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数执行对应任务组中的每一任务,并输出对应的执行结果,包括:
根据所述MPI进程拓扑参数,计算每个进程需要处理的区域,构建每个进程的有限差分参数;
通过MPI-IO构建每个进程当前任务的速度场信息;
设定时间循环和对应的时间步,在所述时间循环开始前初始化持续通信请求,将需要发送的缓冲区地址和请求绑定;
进入第一次时间步,执行时间步内的操作,所述时间步内的操作包括:
根据震源子波的波形曲线,更新震源处的波场;
更新PML区域的波场,所述PML区域的波场用于叠加在原始波场之上,去除边界反射;
发起进程间异步通信,交换不同进程相邻计算区域边界处的波场;
在所述异步通信的基础上进行有限差分计算,计算内部区域波场;
待异步通信完成后,计算进程间相邻区域的波场;
采用更新的PML区域的波场对边界处的原始波场进行修正,去除边界反射;
以交互指针的形式,进行波场交换;
进入下一时间步,执行所述时间步内的操作;
所述时间循环结束后,通过MPI-IO并行输出炮记录。
进一步的,若MPI进程拓扑为二维MPI进程拓扑,所述通过MPI-IO构建每个进程当前任务的速度场信息,包括:
将每个进程组中x方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
进一步的,若MPI进程拓扑为二维MPI进程拓扑,所述通过MPI-IO并行输出炮记录,包括:
先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引为0的进程,然后将进程组内所有x方向进程索引为0的进程同时进行MPI-IO集合输出操作。
进一步的,若MPI进程拓扑为三维MPI进程拓扑,所述通过MPI-IO构建每个进程当前任务的速度场信息,包括:
将每个进程组中x方向进程索引为零且z方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
进一步的,若MPI进程拓扑为三维MPI进程拓扑,所述通过MPI-IO并行输出炮记录,包括:
先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引和z方向进程索引同时为0的进程,然后进程组内所有同时满足x方向和z方向进程索引为0的进程进行MPI-IO集合输出操作。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于MPI进程拓扑的地震波场三维正演模拟方法可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
(1)满足了三维正演模拟对海量内存的需求
本发明采用炮内数据并行,多节点模拟一炮,可以利用的内存为多个节点内存之和,如果三维模型进一步扩大,只需增加使用的节点数即可,满足了三维正演模拟对海量内存的需求。
(2)提高了计算效率和可扩展性
本发明采用多层级的细粒度并行优化方法,实现了炮间任务并行,炮内数据并行,进程间通信和计算重叠,单进程通过OpenMP多线程加速,同时考虑CPU的架构特性等多种并行优化手段,充分挖掘了集群或超级计算机的硬件潜力,经过优化后计算效率大幅提升,运行时间显著减少,可以高效的进行三维正演模拟,并且具有较好的扩展性。
(3)保证了文件系统的稳定性
本发明采用炮间任务并行和炮内数据并行,每炮任务只有部分进程进行I/O操作,避免了仅仅采用炮间任务并行时所有进程同时进行I/O操作,减少了同时进行I/O的进程数,同时采用并行输入输出(MPI-IO)操作进行并行读写,其本身对文件系统较为友好,在具有较高读写效率的同时,可以保持文件系统的稳定。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明实施例提供的基于MPI进程拓扑的地震波场三维正演模拟方法流程图;
图2为本发明实施例提供的要模拟的三维地质模型示意图;
图3为本发明实施例提供的三维正演模拟某一炮的模拟炮记录示意图;
图4为本发明实施例提供的优化前后加速比对比图示意图;
图5为本发明实施例提供的优化前后运行时间对比图示意图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于MPI进程拓扑的地震波场三维正演模拟方法的具体实施方式及其功效,详细说明如后。
本发明实施例提供了一种基于MPI进程拓扑的地震波场三维正演模拟方法,如图1所示,包括以下步骤:
步骤S1、获取MPI进程拓扑参数和所有任务的三维正演模拟参数,每一所述任务对应一炮三维正演模拟,所述三维正演模拟参数是指用于求解三维正演模拟的参数,所述MPI进程拓扑参数是指进行单炮三维正演模拟求解所需的并行计算进程的配置参数;
步骤S2、基于所述MPI进程拓扑参数将所有并行进程分组,每个进程组包括一个或多个进程,并为每一所述进程组创建通信域,所述通信域用于后续求解过程中的通信和并行I/O操作;
步骤S3、将所有任务分组,再为每一所述进程组分配一组任务;
步骤S4、每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数依次执行对应任务组中的每一任务,并输出对应的执行结果,直至对应任务组中所有任务执行完毕。
需要说明的是,在步骤S1之前,可先配置好MPI进程拓扑参数和所有任务的三维正演模拟参数得到对应的配置文件,所述方法还包括:步骤S10、在获取MPI进程拓扑参数和所有任务的三维正演模拟参数过程后,提交作业到计算机时,进行线程绑定。通过进行线程绑定,可以减少多线程切换的开销,提高计算的效率。步骤S1通过从配置文件中解析参数,获取得到获取MPI进程拓扑参数和所有任务的三维正演模拟参数。
所述步骤S1中,作为示例,三维正演模拟参数包括三维模型相关参数、放炮参数、震源参数、检波点参数、时间积分参数、结果输出控制参数、有限差分参数。MPI进程拓扑参数包括进程维度和每一进程维度对应的进程数,以二维MPI进程拓扑为例,具体包括x和y两个方向的进程数,它控制着三维模型在x方向和y方向如何剖分,三维模型总共被剖分为x*y份,每个进程计算一份。
作为一种示例,所述方法还包括:步骤S20、根据内存需求为每个进程组对应设置预设数量的节点,每个进程组在执行每个任务时,根据计算需求从所述预设数量的节点中选取一个或多个节点执行所述任务。
需要说明的是,现有技术中采用单进程进行一炮正演模拟,可以利用的最大内存为一个节点的内存上限,本发明实施例采用炮内数据并行,多节点模拟一炮,可以利用的内存为多个节点内存之和。如果三维模型进一步扩大,只需增加使用的节点数,即可满足三维正演模拟对海量内存的需求。
对于步骤S3,可以创建一个任务管理器负责定义总的任务数,一个任务对应一炮三维正演模拟。任务管理器还用于任务的分组和分发,每个进程组被分配了一组任务,每个进程组内的所有进程每次并行完成一炮模拟,直到被分配的任务数执行完毕。
作为示例,步骤S4中,每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数执行对应任务组中的每一任务,并输出对应的执行结果,包括:
步骤S41、根据所述MPI进程拓扑参数,计算每个进程需要处理的区域,构建每个进程的有限差分参数;
步骤S42、通过MPI-IO构建每个进程当前任务的速度场信息;
步骤S43、设定时间循环和对应的时间步,在所述时间循环开始前初始化持续通信请求(request),将需要发送的缓冲区地址和请求绑定,减少后续重复建立通信的开销;
步骤S44、进入第一次时间步,执行时间步内的操作,所述时间步内操作包括:
步骤S401、根据震源子波的波形曲线,更新震源处的波场;
步骤S402、更新完全匹配层(Perfectly Matched Layer,简称PML)区域的波场,所述PML区域的波场用于叠加在原始波场之上,去除边界反射;
步骤S403、发起进程间异步通信,交换不同进程相邻计算区域边界处的波场;
步骤S405、在所述异步通信的基础上进行有限差分计算,计算内部区域波场;
其中,在进行有限差分计算的同时,异步通信已经启动,实现了通信与计算的重叠。异步通信启动后,有限差分的模板计算首先计算内部区域波场,因为此时异步通信还没有完成。
步骤S406、待异步通信完成后,计算进程间相邻区域的波场;
步骤S407、采用更新的PML区域的波场对边界处的原始波场进行修正,去除边界反射;
步骤S408、以交互指针的形式,进行波场交换;
步骤S45、进入下一时间步,执行所述时间步内的操作;
步骤S46、所述时间循环结束后,通过MPI-IO并行输出炮记录。
作为一种示例,若MPI进程拓扑为二维MPI进程拓扑,所述步骤S42包括:
步骤S421、将每个进程组中x方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
步骤S46中,所述通过MPI-IO并行输出炮记录,包括:
步骤S461、先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引为0的进程,然后将进程组内所有x方向进程索引为0的进程同时进行MPI-IO集合输出操作。
作为另一种示例,若MPI进程拓扑为三维MPI进程拓扑,所述步骤S42包括:
步骤S43、将每个进程组中x方向进程索引为零且z方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
步骤S46中,所述通过MPI-IO并行输出炮记录,包括:
步骤S462、先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引和z方向进程索引同时为0的进程,然后进程组内所有同时满足x方向和z方向进程索引为0的进程进行MPI-IO集合输出操作。
以下结合一具体实施例对本发明实施例所述方法进行进一步说明,需要说明的是,本实施例中MPI进程拓扑为二维MPI进程拓扑,图2示出了需要模拟的三维地质模型示意图,图3示出了三维正演模拟某一炮的模拟炮记录示意图,执行过程具体包括:
步骤S100、配置求解参数:
首先在配置文件configure_2x2.txt中配置所有任务的三维正演模拟参数和MPI进程拓扑参数。其中,GEOLOGY表示三维模型相关参数、SHOT表示放炮参数、SOURCE表示震源参数、RECEIVER表示检波点参数、TIME_INTEGRATE表示时间积分参数、FIELD_OUTPUT表示结果输出控制参数、FDM表示有限差分参数,上述参数均为三维正演模拟参数。
CARTESIAN_TOPOLOGY表示MPI进程拓扑参数,在本实施例中每炮模拟由4个进程进行,模型在x方向被分割成2份,在y方向被分割成2份,在放炮参数中可以看到一共需要进行模拟的总炮数为3,即总共有3个任务,每炮的名字分别是s0、s1、s2。
步骤S200、提交并行计算作业:
在编写提交作业脚本文件(即步骤S100中配置为文件)时,通过进行线程绑定,减少多线程切换的开销,提高计算的效率。
编写运行脚本run_file_2x2.sh,提交作业方式:yhrun-N 3-n 12-p TH_HPC./run_file_2x2.sh。yhrun和其后面的参数为超级计算机提交作业的方式,本实施例中使用了3个节点,每个节点启动4个进程,总共12个进程。脚本run_file_2x2.sh中指定了要提交的配置文件configure_2x2.txt,以及MPI进程和线程绑定配置。本实例使用的超级计算机每个节点的配置为64核心,64个核心被分给4个进程,每个进程绑定16个线程,因此根据上面的作业提交脚本,通过MPI进程和线程绑定后,减少了线程切换的开销,第一个对应的16个线程被绑定到编号为0-15的中央处理器内核(cpu core),以此类推,完成所有线程绑定。
步骤S300、从所述配置文件中解析配置参数:
各进程从配置文件中解析得到求解参数,用于后续计算,具体包括:三维模型场参数、放炮参数、震源参数、检波点参数、时间积分参数、结果输出控制参数、有限差分参数、MPI进程拓扑参数等。
步骤S400、创建MPI通信域:
通过配置参数中的MPI拓扑参数对所有并行进程进行分组,为每一进程组创建通信域。用于后续求解过程中的通信和I/O操作。本实施例中,每个进程组由4个进程组成,总共申请了12个进程,可以分为3个进程组,每4个进程组创建一新的通信域,负责1炮独立的计算。
步骤S500、创建任务管理器和任务分发:
在开始求解三维正演模拟前,程序首先创建任务管理器进行后续任务分发,本实施例中共有3炮任务,总共有3个进程组,每个进程组包括4个进程。任务管理器为每个进程组分配1炮任务,全部任务结束后,退出程序。
步骤S600、执行进程组对应的任务组中的每一求解任务,具体包括:
步骤S601、构建每个进程的有限差分参数:
每个进程根据前述MPI进程拓扑参数的设置情况,计算本进程需要处理的区域。在本实施例中,要进行模拟的三维模型大小为1001*1001*301,PML边界厚度x、y、z方向均为15,需要进行模拟的三维模型大小为1031*1031*331总共进行3次模拟,每个任务由4个进程并行求解,每个进程内采用16线程并行加速。因此每个进程要处理的网格大小为516*516*331,515*516*331,516*515*331和515*515*331。
步骤S602、通过MPI-IO构建每个进程当前任务的速度场信息:
全局的模型大小为1001*1001*301,每个进程组中x方向进程索引为零的进程同时进行MPI-IO集合操作,获取各自速度场,然后广播给y方向进程索引相同的组内其他进程。每个进程获取到的速度场大小和后续要处理的网格大小相匹配。
步骤S603、时间循环开始前初始化持续通信request:
初始化持续通信request,将要发送的缓冲区地址和request绑定,减少后续重复建立通信的开销。
步骤S604、进入第一次时间步,执行时间步内的操作:
时间步内的操作包括:
步骤S401、根据震源子波的波形曲线,更新震源处的波场;
步骤S402、更新PML区域的波场,所述PML区域的波场用于叠加在原始波场之上,去除边界反射;
步骤S403、发起进程间异步通信,交换不同进程相邻计算区域边界处的波场;
步骤S405、在所述异步通信的基础上进行有限差分计算,计算内部区域波场;
其中,在进行有限差分计算的同时,异步通信已经启动,实现了通信与计算的重叠。异步通信启动后,有限差分的模板计算首先计算内部区域波场,因为此时异步通信还没有完成。
步骤S406、待异步通信完成后,计算进程间相邻区域的波场;
步骤S407、采用更新的PML区域的波场对边界处的原始波场进行修正,去除边界反射;
步骤S408、以交互指针的形式,进行波场交换;
步骤S605、进入下一时间步,执行所述时间步内的操作,直到时间循环结束;
步骤S606、时间循环结束后,MPI-IO输出炮记录;
当所有时间步计算完成后,通过MPI-IO并行输出炮记录,减少对文件系统的压力,同时保证较高的效率。首先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引为0的进程,然后进程组内所有x方向进程索引为0的进程同时进行MPI-IO集合输出操作。
在本例中由每个进程组中的0号进程和1号进程负责MPI-IO操作。
步骤S607、进入下一任务执行步骤S600中的操作,直到任务结束。
在本例中总共3炮,即3个任务,总共3个进程组,每个进程组分配1炮,因此只循环一次,模拟完成后,程序退出。但可以理解的是,若进程组分配M炮任务,M为大于等于2的整数,则需要循环执行M次后再退出。
通过本发明实施例优化前后的加速比对比图如图4所示,优化前后的运行时间对比图如图5所示。
本发明实施例采用细粒度的多层级并行优化,综合利用了任务并行、数据并行、多线程并行、MPI-IO、持续性通信、线程绑定等多种手段实现高效可扩展的三维正演模拟求解。在开始进行三维正演模拟前,通过合理分解待求解的问题,以此设定配置参数。将要求解的三维正演模拟问题按照炮号分解为不同的任务,有多少炮需要模拟就有多少个任务。本发明实施例在炮间正演模拟采用任务并行,每炮的模拟相互不影响。本发明实施例还解决了三维正演模拟对海量内存的需求的问题,通过分解每炮的任务实现将每炮的任务分解实现。具体是通过MPI进程拓扑技术,将全部进程分为不同的进程组,每个进程组内的进程实现炮内数据并行,为此需要设置每炮正演模拟的拓扑进程数a和b,每炮模拟所需的总进程为a*b。完成任务分解后,每个进程组获取自己要模拟的配置参数和三维模型分别进行模拟。此外,在模拟过程中,为了提高计算效率,挖掘硬件潜力,本发明实施例还采用了持续性通信对通信和计算进行重叠,同时减少通信建立和销毁的开销;采用多线程技术加速进程内的计算效率,采用MPI-IO在提高I/O效率的同时降低对文件系统的压力,采用线程绑定技术,减少了线程切换的开销。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (9)
1.一种基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,包括以下步骤:
获取MPI进程拓扑参数和所有任务的三维正演模拟参数,每一所述任务对应一炮三维正演模拟,所述三维正演模拟参数是指用于求解三维正演模拟的参数,所述MPI进程拓扑参数是指进行单炮三维正演模拟求解所需的并行计算进程的配置参数;基于所述MPI进程拓扑参数将所有并行进程分组,每个进程组包括一个或多个进程,并为每一所述进程组创建通信域;
将所有任务分组,再为每一所述进程组分配一组任务;
每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数依次执行对应任务组中的每一任务,并输出对应的执行结果,直至对应任务组中所有任务执行完毕;
每一所述进程组基于对应任务组中的每一任务的三维正演模拟参数执行对应任务组中的每一任务,并输出对应的执行结果,包括:
根据所述MPI进程拓扑参数,计算每个进程需要处理的区域,构建每个进程的有限差分参数;
通过MPI-IO构建每个进程当前任务的速度场信息;
设定时间循环和对应的时间步,在所述时间循环开始前初始化持续通信请求,将需要发送的缓冲区地址和请求绑定;
进入第一次时间步,执行时间步内的操作,所述时间步内的操作包括:
根据震源子波的波形曲线,更新震源处的波场;
更新PML区域的波场,所述PML区域的波场用于叠加在原始波场之上,去除边界反射;
发起进程间异步通信,交换不同进程相邻计算区域边界处的波场;
在所述异步通信的基础上进行有限差分计算,计算内部区域波场;
待异步通信完成后,计算进程间相邻区域的波场;
采用更新的PML区域的波场对边界处的原始波场进行修正,去除边界反射;
以交互指针的形式,进行波场交换;
进入下一时间步,执行所述时间步内的操作;
所述时间循环结束后,通过MPI-IO并行输出炮记录。
2.根据权利要求1所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
所述三维正演模拟参数包括三维模型相关参数、放炮参数、震源参数、检波点参数、时间积分参数、结果输出控制参数、有限差分参数。
3.根据权利要求2所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
所述MPI进程拓扑参数包括进程维度和每一进程维度对应的进程数。
4.根据权利要求1所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,还包括:
在获取MPI进程拓扑参数和所有任务的三维正演模拟参数过程后,提交作业到计算机时,进行线程绑定。
5.根据权利要求1所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
所述方法还包括,根据内存需求为每个进程组对应设置预设数量的节点,每个进程组在执行每个任务时,根据计算需求从所述预设数量的节点中选取一个或多个节点执行所述任务。
6.根据权利要求5所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
若MPI进程拓扑为二维MPI进程拓扑,所述通过MPI-IO构建每个进程当前任务的速度场信息,包括:
将每个进程组中x方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
7.根据权利要求6所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
若MPI进程拓扑为二维MPI进程拓扑,所述通过MPI-IO并行输出炮记录,包括:
先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引为0的进程,然后将进程组内所有x方向进程索引为0的进程同时进行MPI-IO集合输出操作。
8.根据权利要求5所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
若MPI进程拓扑为三维MPI进程拓扑,所述通过MPI-IO构建每个进程当前任务的速度场信息,包括:
将每个进程组中x方向进程索引为零且z方向进程索引为零的进程同时进行MPI-IO集合操作,获取速度场,然后广播给y方向进程索引相同的组内其他进程。
9.根据权利要求8所述的基于MPI进程拓扑的地震波场三维正演模拟方法,其特征在于,
若MPI进程拓扑为三维MPI进程拓扑,所述通过MPI-IO并行输出炮记录,包括:
先由进程组内y方向进程索引相同的进程将炮记录发送给x方向进程索引和z方向进程索引同时为0的进程,然后进程组内所有同时满足x方向和z方向进程索引为0的进程进行MPI-IO集合输出操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449212.3A CN111766623B (zh) | 2020-05-25 | 2020-05-25 | 一种基于mpi进程拓扑的地震波场三维正演模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449212.3A CN111766623B (zh) | 2020-05-25 | 2020-05-25 | 一种基于mpi进程拓扑的地震波场三维正演模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111766623A CN111766623A (zh) | 2020-10-13 |
CN111766623B true CN111766623B (zh) | 2023-01-31 |
Family
ID=72720700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010449212.3A Active CN111766623B (zh) | 2020-05-25 | 2020-05-25 | 一种基于mpi进程拓扑的地震波场三维正演模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111766623B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094915B (zh) * | 2021-04-21 | 2022-05-27 | 中国海洋大学 | 一种海流感生磁场计算方法及系统 |
CN113960663A (zh) * | 2021-10-25 | 2022-01-21 | 中国地质大学(北京) | 基于并行计算的三维各向异性衰减正演模拟方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250102A (zh) * | 2015-06-12 | 2016-12-21 | 中国石油化工股份有限公司 | 交错网格有限差分正演模拟优化的方法 |
CN106646593A (zh) * | 2016-08-30 | 2017-05-10 | 国家超级计算天津中心 | 一种跨节点并行的三维起伏地表声波正演模拟方法 |
CN106842320A (zh) * | 2017-01-19 | 2017-06-13 | 北京大学 | Gpu并行三维地震波场生成方法和系统 |
CN107561585A (zh) * | 2017-09-19 | 2018-01-09 | 北京大学 | 一种多核多节点并行三维地震波场生成方法和系统 |
WO2019234469A1 (en) * | 2018-06-08 | 2019-12-12 | Total Sa | Method for generating an image of a subsurface of an area of interest from seismic data |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2810526A1 (en) * | 2010-09-20 | 2012-03-29 | Chevron U.S.A. Inc. | System and method for generating images of subsurface structures |
US10591638B2 (en) * | 2013-03-06 | 2020-03-17 | Exxonmobil Upstream Research Company | Inversion of geophysical data on computer system having parallel processors |
CN104050359B (zh) * | 2014-05-30 | 2016-10-05 | 中国石油大学(华东) | 一种基于三维观测系统排列片数据分割的正演模拟方法 |
AU2015363241A1 (en) * | 2014-12-18 | 2017-06-29 | Exxonmobil Upstream Research Company | Scalable scheduling of parallel iterative seismic jobs |
-
2020
- 2020-05-25 CN CN202010449212.3A patent/CN111766623B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250102A (zh) * | 2015-06-12 | 2016-12-21 | 中国石油化工股份有限公司 | 交错网格有限差分正演模拟优化的方法 |
CN106646593A (zh) * | 2016-08-30 | 2017-05-10 | 国家超级计算天津中心 | 一种跨节点并行的三维起伏地表声波正演模拟方法 |
CN106842320A (zh) * | 2017-01-19 | 2017-06-13 | 北京大学 | Gpu并行三维地震波场生成方法和系统 |
CN107561585A (zh) * | 2017-09-19 | 2018-01-09 | 北京大学 | 一种多核多节点并行三维地震波场生成方法和系统 |
WO2019234469A1 (en) * | 2018-06-08 | 2019-12-12 | Total Sa | Method for generating an image of a subsurface of an area of interest from seismic data |
Non-Patent Citations (4)
Title |
---|
三维波动方程正演的三级并行加速;唐佳等;《石油地球物理勘探》;20161031;第1049-1054页 * |
基于GPU和CPU协同并行的三维各向异性介质地震波场正演模拟;刘春成等;《地质科技情报》;20190930;第240-246页 * |
基于GPU集群的大规模三维有限差分正演模拟并行策略;廉西猛等;《物探与化探》;20150630;第616-620页 * |
基于MPI的三维波动方程有限元法并行正演模拟;王月英;《石油物探》;20090525(第03期);第221-227页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111766623A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6921951B2 (ja) | ニューラルネットワーク命令セットアーキテクチャ | |
CN111766623B (zh) | 一种基于mpi进程拓扑的地震波场三维正演模拟方法 | |
CN103119471A (zh) | 用于生成地下构造的图像的系统和方法 | |
US11163092B2 (en) | Scalable scheduling of parallel iterative seismic jobs | |
EP2738675B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
Karavaev et al. | A technology of 3D elastic wave propagation simulation using hybrid supercomputers | |
Shterenlikht et al. | Fortran 2008 coarrays | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
Vaughan et al. | Enabling tractable exploration of the performance of adaptive mesh refinement | |
CN106662665B (zh) | 用于更快速的交错网格处理的重新排序的插值和卷积 | |
Hao et al. | Testing fine-grained parallelism for the admm on a factor-graph | |
Assis et al. | Distributed-memory load balancing with cyclic token-based work-stealing applied to reverse time migration | |
WO2013033651A1 (en) | Full elastic wave equation for 3d data processing on gpgpu | |
CN106646593B (zh) | 一种跨节点并行的三维起伏地表声波正演模拟方法 | |
CN110162804B (zh) | 基于cpu加速的波场正演模拟优化方法 | |
Fehling | Algorithms for massively parallel generic hp-adaptive finite element methods | |
Gurhem et al. | Parallel and distributed task-based Kirchhoff seismic pre-stack depth migration application | |
RU2815465C1 (ru) | Система полудетерминированного моделирования трещиноватости на основе беспорядочной матрицы | |
Mosher et al. | Scalable parallel seismic processing | |
Paya-Monet et al. | Performance and Scalability Modelling of Quantum Control Systems | |
Srivastava et al. | Parallel 2D and 3D acoustic modeling application for hybrid computing platform of PARAM Yuva II | |
Kyriakopoulos et al. | Hierarchical dynamic workload scheduling on heterogeneous clusters for grid search of inverse problems | |
US20220129436A1 (en) | Symbolic validation of neuromorphic hardware | |
Pham et al. | Optimizing Agent-Based Simulations for the GPU | |
CN112731533A (zh) | 基于有限元的逆时偏移方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |