Job pool-based full waveform inversion parallel job management method and system

The parallel operation management system for full waveform inversion based on the job pool solves the problems of inter-node communication and damaged gun identification in the existing technology, and realizes efficient and stable parallel computing of full waveform inversion, which is suitable for three-dimensional actual work areas.

CN116149832BActive Publication Date: 2026-04-14CHINA PETROLEUM & CHEMICAL CORP +1
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-22
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

Existing parallel operation management schemes for full waveform inversion are interconnected between nodes, do not support dynamic addition or removal, and cannot identify damaged guns, resulting in low computational efficiency and making them difficult to apply to actual 3D work areas, especially in heterogeneous equipment clusters where efficiency is limited.

Method used

A parallel job management system based on a job pool is adopted. Through the node management module, process management module, and shot data management module, the system realizes automatic job allocation, load balancing, dynamic addition and removal of nodes, and identification and deletion of damaged shots, thereby improving computational stability and efficiency.

Benefits of technology

It achieves automatic on-demand allocation and load balancing of full waveform inversion operations, improves computing efficiency and stability, supports efficient parallel computing of heterogeneous equipment clusters, and is suitable for three-dimensional actual work areas.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure HDA0003365891970000011
    Figure HDA0003365891970000011
  • Figure HDA0003365891970000021
    Figure HDA0003365891970000021
  • Figure HDA0003365891970000031
    Figure HDA0003365891970000031
Patent Text Reader

Abstract

The present application relates to the technical field of petroleum geophysical exploration, and particularly relates to a full waveform inversion parallel operation management method and system based on a job pool. The method comprises the following steps: step 1, parameter setting and loading node; step 2, initializing the state of each node and the state of each job; step 3, each node automatically takes a job and starts process calculation; step 4, calculating average time and starting process management; step 5, calculating and updating the state of the node; step 6, calculating and updating the shot calculation state; and step 7, calculating inversion velocity and residual. The full waveform inversion parallel operation management method and system based on the job pool greatly improve the stability of full waveform inversion calculation, and further promote the industrialization and commercialization of full waveform inversion.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of petroleum geophysical exploration technology, and in particular to a method and system for managing parallel operations based on full waveform inversion using a work pool. Background Technology

[0002] Full waveform inversion is a method based on the forward modeling technique of the full wave equation. It matches the forward modeled wavefield with the observed wavefield and uses the minimization of data residuals as the objective function to invert geophysical parameters from seismic data.

[0003] Full waveform inversion utilizes the entire seismic record waveform, which includes not only the kinematic characteristics of the seismic wave record (such as the arrival time and wave velocity of the phases) but also the dynamic characteristics of the seismic waves (such as the vibration direction, amplitude, period, and phase of the phases). Full waveform inversion not only utilizes the reflected wave information in the seismic data, but also critical reflected waves and scattered waves become effective waves in the velocity model.

[0004] The full waveform inversion method using seismic reflection waveforms is currently the most accurate seismic inversion method in theory. It can make full use of the full waveform information of seismic waves, such as travel time, amplitude, frequency and phase, and is an effective means to establish high-precision velocity models.

[0005] Nowadays, full waveform inversion has evolved from two-dimensional to three-dimensional, from single-parameter to multi-parameter, from isotropic media to attenuated media, anisotropic and other complex media, from full waveform inversion of reflected seismic waves to inversion of various special waveforms such as plane waves and first arrival waves, and from independent inversion of multiple shots to super-shot coded inversion. The computational load has gradually increased, and the dependence on computer performance has become increasingly higher. Geophysicists have begun to use parallel computing strategies such as CPU / GPU to improve inversion efficiency.

[0006] Currently, parallel computing is widely used in seismic exploration because the data collected in seismic exploration is organized in the form of bundles, shots, lines, and traces, which have good parallelism. At the same time, the finite difference and finite element methods used in seismic exploration themselves have good parallelism. Therefore, parallel computing has been widely used in seismic exploration.

[0007] Currently, most publicly available parallel job management solutions for full waveform inversion are implemented using MPI technology. However, in the implementation of parallel full waveform inversion technology, using a parallel job management solution based solely on MPI has several shortcomings:

[0008] 1) Nodes communicate and are interconnected, but dynamic addition or removal of nodes is not supported. If one node fails, the entire computation will fail immediately.

[0009] 2) Poor adaptability to heterogeneous devices. The efficiency of nodes in a heterogeneous computer cluster is inconsistent. Using MPI parallelism will cause the overall computing efficiency to be dragged down by the slowest node.

[0010] 3) Damaged guns cannot be identified. Unlike model data, actual data often has irregularities and abnormal data, which will cause some guns to be unable to calculate gradients, resulting in the overall calculation being in a continuous waiting state.

[0011] This means that parallel computing for full waveform inversion can only be applied to model data and is difficult to apply to actual 3D work areas. Parallel methods based solely on MPI technology can no longer meet the stability requirements of full waveform inversion, and their bottleneck effect on efficiency improvement has become increasingly apparent.

[0012] The full waveform inversion method is currently the most accurate seismic inversion method in theory, but it has a huge computational load and a long running cycle, making it difficult to apply to real data. Especially in three-dimensional cases, improving the efficiency and stability of parallel computing is crucial.

[0013] This invention, through in-depth analysis of the principles and processes of full waveform inversion, addresses the shortcomings of parallel methods based solely on MPI technology. It aims to propose a full waveform inversion job management system based on a job pool, with each shot as a unit. This system enables automatic on-demand allocation and load balancing of full waveform inversion jobs, ensures independent operation of each node, allows for dynamic addition and removal of nodes, and effectively identifies and removes damaged shots. This improves the efficiency and stability of full waveform inversion, ultimately realizing the industrialization and commercialization of parallel computing methods for full waveform inversion. Summary of the Invention

[0014] The purpose of this invention is to address the shortcomings of existing technologies by providing a method and system for managing parallel operations based on a job pool with full waveform inversion at the gun level.

[0015] The technical solution is as follows:

[0016] The full waveform inversion parallel job management system based on the job pool includes an input module, an internal execution module, and an output module. The internal execution module consists of a node management module, a process management module, and a shot data management module.

[0017] The node management module is used to set node calculation parameters, generate node status files, and job status files;

[0018] The process management module is used to start process computing, determine node status, and assign tasks to idle nodes;

[0019] The gun data management module is used to determine the gun's calculation status, update and manage gun data.

[0020] A parallel job management method based on job pool full waveform inversion includes:

[0021] Step 1: Obtain the initial velocity model and gun gather data, determine the number of nodes based on the number of GPU cores, set the calculation parameters for each node, and then load the nodes;

[0022] Step 2: Initialize the status of each node and each job;

[0023] Step 3: Each node automatically retrieves the job and starts the process for calculation;

[0024] Step 4: Calculate the average time and enable process management;

[0025] Step 5: Calculate and update the node state;

[0026] Step 6: Calculate and update the gun calculation status;

[0027] Step 7: Calculate the inversion rate and residuals.

[0028] Furthermore, in step 1, the parameters include: total number of cannons, maximum number of jobs per node, average calculation time per cannon, maximum number of calculation failures allowed per cannon, longest system downtime, and IP address of participating nodes.

[0029] Furthermore, in step two, the status of each node is recorded by several node status files, and the number of files is the same as the number of nodes participating in the calculation.

[0030] The node status includes: idle, computing, computing completed, and node damaged;

[0031] The operational status refers to the calculation status of each shot, which is recorded by several operational status files, and the number of files is the same as the total number of shots.

[0032] The initialization refers to setting the status of each node to idle and the status of each job to: not being calculated and the number of calculations is 0 before the system starts running.

[0033] Furthermore, in step three, each node refers to a node whose node status is idle.

[0034] Furthermore, step three includes: each idle node first iterates through the calculation status and calculation count of all cannons in the job pool. If the calculation status of a cannon is that it has not been calculated and the calculation count is less than the maximum number of calculation failures allowed per cannon in the user-set parameters, then each idle node will take n cannon jobs from the job pool and start n processes to calculate, where n is determined by the maximum number of jobs that a single node can handle as set by the user.

[0035] Set the status of each idle node that has already retrieved its job to "in operation" and update the gun calculation status of the job that has been retrieved to "in operation".

[0036] Furthermore, in step four, the average calculation time refers to calculating the average time required for a single gun to complete the calculation based on the time consumed by the guns that have already completed the calculation, and updating the average calculation time for a single gun in the parameters; the maximum calculation time for a single gun is determined based on the average calculation time for a single gun, wherein the formula for calculating the maximum calculation time for a single gun is as follows:

[0037] Maximum calculation time per shot = Average calculation time per shot × Tolerance coefficient;

[0038] In the formula, the tolerance coefficient is set by the user and the default value is 2. If the process calculation time exceeds the maximum calculation time for a single gun, the system will start process management, automatically locate the corresponding process, and reclaim the process resources. At the same time, the system will start the node management module and the gun data management module to update the node and gun calculation status.

[0039] Furthermore, step five includes: After step three is completed, the system activates the node management module and determines the status of each node based on the calculation results of each process; if all processes on a node have completed the calculation, it indicates that both the node and the gun data are normal, and the node status is updated to idle; if only some processes on a node have completed the calculation, it indicates that the node is normal but the gun data is abnormal, and after completing process management, the node status is updated to idle; if none of the processes on a node have completed the calculation, it indicates that there is a problem with the node, and the node status is updated to damaged, and the damaged node is deleted from the node list and will not be used for subsequent calculations.

[0040] Furthermore, step six includes: the gun calculation status includes: already calculated, being calculated, not calculated, and the number of calculations;

[0041] The calculation and update of the gun calculation status refers to the system starting the gun data management module after step 4 is completed. If all processes on the node in step 4 have completed the calculation, the calculation status of the corresponding guns of these processes is updated to "calculated" and the calculation count is increased by 1.

[0042] If only some processes on a node have completed the calculation, then update the gun calculation status of the processes that have completed the calculation to "calculated" and increment the calculation count by 1.

[0043] For processes that have not completed calculations, after completing process management, update the gun calculation status corresponding to the processes that have not completed calculations to "not calculated" and increment the calculation count by 1.

[0044] If none of the processes on a node have completed their calculations, then after completing process management, the gun calculation status corresponding to these processes will be updated to "not calculated" and the calculation count will not be increased.

[0045] Furthermore, the gun data management module will determine whether all guns in the job pool have been calculated. If all have been calculated, proceed to step seven; otherwise, repeat steps three to six until all guns have been calculated. The entire process from step two to the completion of all gun calculations is considered one iteration.

[0046] Furthermore, the completion of the gun calculation means that the calculation status of the gun is "already calculated", or the calculation status of the gun is "not calculated" and the number of calculations is greater than the maximum number of calculation failures allowed for a single gun given by the user.

[0047] Furthermore, in step seven, the inversion velocity model is updated based on the calculation results of each individual shot in this iteration, and then the residual between the calculation results of each individual shot and the actual acquired shot set is calculated; if the residual does not meet the accuracy requirements, step two is repeated to enter the next iteration; if the accuracy requirements are met, the system is automatically exited.

[0048] Furthermore, the single-shot calculation results include single-shot forward modeling records and single-shot gradients, wherein the single-shot calculation results used to update the inversion velocity model are single-shot gradients, and the single-shot calculation results used to calculate the residuals are single-shot forward modeling records.

[0049] The beneficial effects of this invention are:

[0050] It realizes functions such as automatic on-demand allocation and load balancing of full waveform inversion operations, independent operation of each node, dynamic addition and reduction, and effective identification and deletion of damaged shots, thereby improving the efficiency and stability of full waveform inversion and realizing the industrialization and commercialization of the parallel computing method for full waveform inversion. Attached Figure Description

[0051] Figure 1 The flowchart shows the full waveform inversion parallel job management method based on job pool of the present invention.

[0052] Figure 2 This is a schematic diagram of the full waveform inversion parallel job management system based on the job pool of the present invention;

[0053] Figure 3 This is a diagram illustrating the allocation and dynamic addition / reduction of guns in a specific embodiment of the present invention;

[0054] Figure 4 This is an example diagram illustrating the automatic identification and deletion of damaged cannons in a specific embodiment of the present invention.

[0055] Figure 5 This is an example diagram illustrating automatic job allocation and load balancing in a specific embodiment of the present invention;

[0056] Figure 6 This is a comparison diagram of the original velocity model and the inverted velocity model in a specific embodiment of the present invention. Detailed Implementation

[0057] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to specific embodiments and the accompanying drawings. It should be understood that these descriptions are merely exemplary and not intended to limit the scope of the invention. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concept of the invention.

[0058] Reference Figure 1 The flowchart of the parallel job management method for full waveform inversion based on the job pool includes steps 1 to 7. In step 1, parameter settings are required. As an example, an initial velocity model of a 3D work area and actual acquired shot gather data are selected as inputs, and the parameters are set as follows:

[0059] Total number of shots (nshots): 1011 shots (given from actual gun collection data);

[0060] Maximum number of jobs that a single node can handle: 8 (given by the number of GPU cores on the node);

[0061] Average calculation time per shot: 40 minutes (estimated from empirical values).

[0062] The maximum number of calculation failures allowed per gun: 5;

[0063] Maximum system downtime: 2 hours;

[0064] The IP addresses of the participating computing nodes are: 168.175.4.192, 168.175.4.193, 168.175.4.211, 168.175.4.212, 168.175.4.213, 168.175.4.214, 168.175.5.213, 168.175.5.247, 168.175.5.248, and 168.175.5.249, totaling ten nodes. Among them, four nodes, 168.175.5.213, 168.175.5.249, 168.175.4.192, and 168.175.4.193, are bad nodes.

[0065] After setting the parameters in step 1, start the system and load the 10 nodes given above.

[0066] Figure 2The diagram illustrates a parallel operation management system for full waveform inversion based on a job pool. The left side shows the input data, mainly including parameter files and actual shot data files; the right side shows the output data, mainly including state files and velocity files; the middle section shows the internal execution modules, which mainly include three modules: node management module, process management module, and shot data management module. The module operation flow is shown in the figure, which will be elaborated below.

[0067] In step 2, 10 node status files are generated, each recording the node status as idle (Status_IDLE); 1011 job status files are generated, each recording the calculation status of each shot as unfinished, and the number of calculations (Cal_times) as 0.

[0068] In step 3, for nodes with an idle status (Status_IDLE), the process management module will start an MPI process, select cannons whose calculation status is "Unfinished" and whose calculation count is less than the "maximum number of calculation failures allowed per cannon" parameter, and the process management module will allocate 8 cannon jobs to each idle node and start 8 processes to calculate them (system flow is as follows). Figure 2 (As shown). Figure 3 (a) This embodiment shows the system prompts for assigning gun numbers to each node. In step 3, the system sets the status of each idle node that has completed its job to "Status_CALCULATING" and updates the gun calculation status corresponding to the job that has been taken to "Calculating".

[0069] In step 4, the average calculation time refers to calculating the average time required for a single gun to complete the calculation based on the time consumed by the guns that have already completed their calculations, and updating the "average calculation time per gun" parameter. The maximum calculation time per gun is determined based on the average calculation time per gun, and the formula for calculating the maximum calculation time per gun is as follows:

[0070] Maximum calculation time per shot = Average calculation time per shot × Tolerance factor

[0071] In the formula, the tolerance coefficient is set by the user; in this embodiment, it is set to 2. If the process calculation time exceeds the maximum calculation time for a single gun, the system will activate process management, automatically locate the corresponding process, and reclaim the process and the corresponding gun. Simultaneously, the system will activate the node management module and the gun data management module to update the node and gun calculation status (system flow is as follows). Figure 2 (As shown).

[0072] Figure 4 In this example, to automatically identify and delete damaged cannons, during system operation, the calculation of cannon number 424 malfunctioned, continuously occupying the node and wasting cluster resources. Due to the introduction of a damaged cannon identification mechanism, the program can automatically locate the process of that cannon, terminate it based on the process ID, and reassign it to a new node for calculation.

[0073] In step 5, calculating and updating the node status means that after step 3 is completed, the system activates the node management module and determines the status of each node based on the calculation results of each process. If all processes on a node have completed the calculation, it indicates that both the node and the gun data are normal, and the node status is updated to idle (Status_IDLE). If only some processes on a node have completed the calculation, it indicates that the node is normal but the gun data is abnormal, and after completing process management, the node status is updated to idle (Status_IDLE). If none of the processes on a node have completed the calculation, it indicates that the node has a problem, and the node status is updated to damaged (Status_Broken), and the damaged node is removed from the node list and will not be used for subsequent calculations (system flow is as follows). Figure 2 (As shown).

[0074] In step 6, the calculation and updating of the gun calculation status means that after step 4 is completed, the system starts the gun data management module. If all processes on the node have completed the calculation in step 4, the calculation status of the corresponding guns of these processes is updated to "Finished", and the calculation count is increased by 1. If only some processes on the node have completed the calculation, the calculation status of the guns corresponding to the processes that have completed the calculation is updated to "Finished", and the calculation count is increased by 1. For processes that have not completed the calculation, after the process management is completed, the calculation status of the guns corresponding to the processes that have not completed the calculation is updated to "Unfinished", and the calculation count is increased by 1. If none of the processes on the node have completed the calculation, after the process management is completed, the calculation status of the guns corresponding to these processes is updated to "Unfinished", and the calculation count is not increased.

[0075] Figure 3 (b) indicates that node 168.175.5.213 cannot be connected, and the system determines that the node is damaged (Status_Broken). Figure 3 (c) The system prompts were displayed after 168.175.5.213, 168.175.5.249, 168.175.4.192, and 168.175.4.193 were determined to be damaged nodes, and the system reclaimed the corresponding processes and cannons; Figure 3 The arrow in (d) shows how the system assigns the recovered cannons to new nodes for computation.

[0076] In step 6, the gun data management module determines whether all guns in the job pool have completed their calculations. If all have, proceed to step 7; otherwise, repeat steps 3 to 6 until all guns have completed their calculations. The entire process from step 2 to the completion of all gun calculations is considered one iteration. "Gun calculation completed" means that the gun's calculation status is "Finished," or the gun's calculation status is "Unfinished" and the number of calculations (Cal_times) exceeds the user-defined "maximum number of allowed calculation failures per gun" parameter.

[0077] Figure 5 This diagram illustrates automatic job allocation and load balancing. When a node finishes its current computation task and becomes idle, a new task is automatically assigned, ensuring that nodes operate at maximum efficiency and are not limited by the slowest node. The two solid boxes at the top of the diagram show that after node 168.175.4.211 completes the calculations for guns 32, 33, 34, 35, 36, 37, 38, and 39, the system automatically assigns it new jobs: guns 112, 113, 114, 115, 116, 117, 118, and 119. Similarly, the two solid boxes at the bottom show that after node 168.175.5.247 completes the calculations for guns 8, 9, 10, 11, 12, 13, 14, and 15, the system automatically assigns it new jobs: guns 120, 121, 122, 123, 124, 125, 126, and 127, achieving load balancing.

[0078] In step 7, the inversion velocity model is updated based on the individual shot calculation results from this iteration. Then, the residuals between the individual shot calculation results and the actual acquired shot sets are calculated. If the residuals do not meet the accuracy requirements, step 2 is repeated for the next iteration; if the accuracy requirements are met, the system automatically exits. The individual shot calculation results include individual shot forward modeling records and individual shot gradients. The individual shot calculation results used to update the inversion velocity model are individual shot gradients, and the individual shot calculation results used to calculate the residuals are individual shot forward modeling records.

[0079] Figure 6 A comparison diagram of the original velocity model and the inverted velocity model in this embodiment is shown. Figure 6 (a) is the original velocity model profile used for system testing. Figure 6 (b) shows the inversion speed obtained after five iterations of the full waveform inversion parallel computing based on the job pool. It can be seen that the full waveform inversion parallel job management system based on the job pool is not only efficient and stable, but also accurate and reliable.

[0080] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.

Claims

1. A parallel job management method based on a job pool for full waveform inversion, comprising a management system, wherein the management system includes an input module, an internal execution module, and an output module, characterized in that, The internal execution module consists of a node management module, a process management module, and a gun data management module. The node management module is used to set node computation parameters, generate node status files, and job status files. The process management module is used to start process computation, determine node status, and assign tasks to idle nodes. The gun data management module is used to determine the gun's computation status, update and manage gun data. The module also includes the following steps: Step 1, acquire the initial velocity model and gun set data, determine the number of nodes based on the number of GPU cores (where a node includes two or more GPU cores), set the computation parameters for a single node, and then load the node; Step 2, initialize the status of each node and each job; Step 3, each node automatically retrieves a job and starts process computation; Step 4, perform computation. The average time is calculated, and process management is enabled; Step 5, calculate and update the node status; Step 6, calculate and update the gun calculation status; Step 7, calculate the inversion speed and residual; In Step 1, the parameters include: total number of guns, maximum number of jobs per node, average calculation time per gun, maximum number of calculation failures allowed per gun, longest system downtime, and IP addresses of participating nodes; In Step 2, the status of each node is recorded by several node status files, the number of files being the same as the number of participating nodes; The node status includes: idle, calculating, calculation completed, and node damaged; The job status refers to the calculation status of each gun, recorded by several job status files, the number of files being the same as the total number of guns; The initialization Before the system starts running, each node is first set to idle status, and each job status is set to: not being calculated, calculation count is 0. Specifically, if a cannon's calculation status is "not being calculated" and its calculation count exceeds the user-defined "maximum allowed number of calculation failures per cannon," then that cannon is identified as faulty. If a cannon is identified as faulty, its process is located, terminated based on its process ID, and reassigned to a new node for calculation. In step three, "each node" refers to a node whose status is idle. Step three includes: each idle node first iterates through the calculation status and calculation count of all cannons in the job pool. If a cannon's calculation status is "not being calculated" and its calculation count is less than the user-defined parameter... If the maximum number of computation failures allowed per cannon is given, then each idle node will take n cannon jobs from the job pool and start n processes for computation, where n is determined by the maximum number of jobs that a single node can handle as set by the user. The status of each idle node that has taken all its jobs is set to "in computation," and the computation status of the cannons corresponding to the jobs that have been taken is updated to "in computation." In step four, the average computation time refers to the average time required for a single cannon to complete its computation, calculated based on the time consumed by the cannons that have already completed their computations, and the average computation time per cannon in the parameters is updated. The maximum computation time per cannon is determined based on the average computation time per cannon, where the formula for the maximum computation time per cannon is as follows: Maximum computation time per cannon = Average computation time per cannon × Tolerance coefficient.In the formula, the tolerance coefficient is set by the user, with a default value of 2. If the process calculation time exceeds the maximum calculation time for a single shot, the system will activate process management, automatically locate the corresponding process, and reclaim process resources. Simultaneously, the system will activate the node management module and the shot data management module to update the node and shot calculation status. Step five includes: After step three is completed, the system activates the node management module to determine the status of each node based on the calculation results of each process. If all processes on a node have completed their calculations, it indicates that both the node and shot data are normal, and the node status is updated to idle. If only some processes on a node have completed their calculations, it indicates that the node is normal but the shot data is abnormal; after completing process management, the node status is updated to idle. If none of the processes on a node have completed their calculations, it indicates that the node has a problem; the node status is updated to damaged, and the damaged node is removed from the node list. Subsequent calculations are no longer needed; Step six includes: the gun calculation status includes: already calculated, being calculated, not calculated, and the number of calculations; calculating and updating the gun calculation status means that after step 4 is completed, the system starts the gun data management module. If all processes on the node in step four have completed the calculation, the calculation status of the corresponding guns for these processes is updated to "already calculated," and the calculation count is increased by 1; if only some processes on the node have completed the calculation, the gun calculation status corresponding to the processes that have completed the calculation is updated to "already calculated," and the calculation count is increased by 1; for processes that have not completed the calculation, after process management is completed, the gun calculation status corresponding to the processes that have not completed the calculation is updated to "not calculated," and the calculation count is increased by 1; if none of the processes on the node have completed the calculation, after process management is completed, the gun calculation status corresponding to these processes is updated to "not calculated," and the calculation count is not increased.

2. The parallel job management method based on job pool with full waveform inversion according to claim 1, characterized in that, The gun data management module will determine whether all guns in the job pool have been calculated. If all have been calculated, proceed to step seven; otherwise, repeat steps three to six until all guns have been calculated. The entire process from step two to the completion of all gun calculations is considered one iteration.

3. The parallel job management method based on job pool with full waveform inversion according to claim 2, characterized in that, The completion of the gun calculation means that the calculation status of the gun is "already calculated", or the calculation status of the gun is "not calculated" and the number of calculations exceeds the maximum number of calculation failures allowed for a single gun given by the user.

4. The parallel job management method based on job pool with full waveform inversion according to claim 3, characterized in that, In step seven, the inversion velocity model is updated based on the calculation results of each shot in this iteration, and then the residual between the calculation results of each shot and the actual acquired shot set is calculated. If the residual does not meet the accuracy requirements, step two is repeated to enter the next iteration. If the accuracy requirements are met, the system is automatically exited.

5. The parallel job management method based on job pool with full waveform inversion according to claim 4, characterized in that, The single-shot calculation results include single-shot forward modeling records and single-shot gradients, wherein the single-shot calculation results used to update the inversion velocity model are single-shot gradients, and the single-shot calculation results used to calculate the residuals are single-shot forward modeling records.

Citation Information

Patent Citations

  • Full-waveform inversion parallel computing method and system

    CN107656306A