Method and apparatus for two-stage parallel computing of static correction in three-dimensional tomography

By employing a two-level parallel computing approach, combined with distributed processes and shared memory multithreading techniques, the computational task allocation of the three-dimensional tomographic static correction algorithm is optimized, solving the problem of decreased computational performance in existing technologies and achieving efficient three-dimensional tomographic static correction computation.

CN114443265BActive Publication Date: 2026-05-26CHINA NAT PETROLEUM CORP +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA NAT PETROLEUM CORP
Filing Date
2020-11-05
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Existing three-dimensional tomographic static correction algorithms suffer from performance degradation in multi-core CPU environments, failing to fully utilize the parallel computing capabilities of modern computing platforms. This is especially true when the number of logical CPUs exceeds 64, as the programming model and hardware environment become inconsistent, resulting in low computational efficiency.

Method used

A two-stage parallel computing approach is adopted: the first stage is distributed process parallel computing, and the second stage is shared memory multi-threaded parallel computing. Distributed parallel and shared memory parallel computing are achieved through MPI and Pthreads, optimizing the allocation and processing of ray tracing and velocity modeling tasks.

Benefits of technology

It improves computing performance, meets the high-concurrency computing requirements of ray tracing, enhances communication performance and data parallel processing capabilities, and adapts to the hardware development of modern computing platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114443265B_ABST
    Figure CN114443265B_ABST
Patent Text Reader

Abstract

This invention discloses a two-level parallel computing method and apparatus for three-dimensional tomographic static correction. The method includes: based on a three-dimensional tomographic static correction algorithm, dividing multiple computing cores of multiple computing nodes into a two-level parallel computing model; determining multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model; and determining one ray tracing task to be processed by each computing core in the second-level parallel computing model. The result of the ray tracing task serves as the input to the velocity modeling task, and the output of the velocity modeling task serves as the input to the next ray tracing task. Seismic data is acquired, and three-dimensional tomographic static correction is performed in parallel based on the first and second-level parallel computing models to obtain static correction data, which is then used for further processing. This invention can improve the computing efficiency of a single machine and maximize the computing power of a cluster computing platform.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of petroleum exploration technology, and in particular to a method and apparatus for implementing two-stage parallel computation of three-dimensional tomographic static correction. Background Technology

[0002] This section is intended to provide background or context for the embodiments of the invention set forth in the claims. The description herein is not an admission that it is prior art simply because it is included in this section.

[0003] The three-dimensional tomographic static correction algorithm is a tool for obtaining the static correction value, a key parameter in seismic processing. However, due to its huge computational workload and the large amount of static correction data, it takes a long time to compute in practical applications and requires high computing resources, which seriously affects its practical application.

[0004] Current 3D tomographic static correction algorithms employ a single-machine multi-core parallel computing approach, i.e., single-machine multi-threaded parallel computing. While this leverages the computing power of multi-core machines, the computational efficiency on a single machine is very low. A major drawback is that as the number of CPU cores increases to 16 or more, CPU utilization drops sharply, falling below 5%. Modern computers have evolved from multi-core CPUs to many-core CPUs, so this algorithm is no longer suitable for the needs of computer development and cannot effectively utilize the parallel computing capabilities of modern computing platforms.

[0005] The current implementation methods have the following main problems: 1) The design concept of single-machine multi-core parallel computing is only for early multi-core hardware environments, so the computing performance decreases as the number of cores increases; 2) The Windows platform has great limitations on the scalability of hardware environments with multiple CPUs and many-core CPUs. In particular, when the number of logical CPUs exceeds 64, the programming model is inconsistent with the programming model for fewer than 64 CPUs, so special programming implementation is required.

[0006] Due to the two reasons mentioned above, the algorithm cannot increase its performance with the improvement of computer hardware computing power. Therefore, it is necessary to re-develop the implementation of the algorithm in accordance with the latest developments in computer technology to adapt to the development of computer technology and increase computing performance. Summary of the Invention

[0007] This invention provides a two-stage parallel computation method for three-dimensional tomographic static correction, the method comprising:

[0008] Based on the three-dimensional tomographic static correction algorithm, multiple computing cores of multiple computing nodes are divided into two-level parallel computing models. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. The first-level parallel computing model determines the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node, and the second-level parallel computing model determines the one ray tracing task to be processed by each computing core of each computing node. In the second-level parallel computing model, the results of the multiple ray tracing tasks of the multiple computing cores of each computing node serve as the input of the velocity modeling task, and the output of the velocity modeling task serves as the input of the next ray tracing task.

[0009] Seismic data is acquired, and three-dimensional tomographic static correction is performed in two parallel stages based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is then used for corresponding processing.

[0010] This invention also provides a two-stage parallel computing implementation device for three-dimensional tomographic static correction, the device comprising:

[0011] The model building module is used to divide the multiple computing cores of multiple computing nodes into a two-level parallel computing model based on the 3D tomographic static correction algorithm. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. It determines the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model, and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model. The results of the multiple ray tracing tasks of the multiple computing cores of each computing node in the second-level parallel computing model serve as the input of the velocity modeling task, and the output of the velocity modeling task serves as the input of the next ray tracing task.

[0012] The static correction processing module is used to acquire seismic data and perform two-level parallel processing of three-dimensional tomographic static correction based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is then used for corresponding processing.

[0013] This invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the above-described two-stage parallel computation method for three-dimensional tomographic static correction.

[0014] This invention also provides a computer-readable storage medium storing a computer program that performs the above-described two-stage parallel computation method for three-dimensional tomographic static correction.

[0015] In this embodiment of the invention, based on the three-dimensional tomographic static correction algorithm, multiple computing cores of multiple computing nodes are divided into a two-level parallel computing model. The first-level parallel computing model uses distributed process parallel computing across multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. The first-level parallel computing model determines the multiple ray tracing tasks and speed modeling tasks to be processed by each computing node, and the second-level parallel computing model determines the single ray tracing task to be processed by each computing core of each computing node. Specifically, the second-level parallel computing model involves multiple ray tracing tasks from multiple computing cores of each computing node. The results of the ray tracing task serve as the input for the velocity modeling task, and the output of the velocity modeling task serves as the input for the next ray tracing task. Seismic data is acquired, and three-dimensional tomographic static correction is performed in two-level parallel processing based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data. This static correction data is used for corresponding processing. Compared with existing technologies, the two-level parallel computing refers to organizing multiple computing cores of multiple computing nodes to participate in the calculation of the three-dimensional tomographic static correction task simultaneously. This can meet the high-concurrency computing performance requirements of ray tracing. The adoption of a collective communication mechanism improves communication performance and fully meets the data parallel requirements of velocity inversion calculation. Attached Figure Description

[0016] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. In the drawings:

[0017] Figure 1 This is a schematic diagram of the basic process of static correction calculation for three-dimensional tomography;

[0018] Figure 2 This is a flowchart of the two-stage parallel computation method for three-dimensional tomographic static correction in an embodiment of the present invention;

[0019] Figure 3 This is a schematic diagram of the ray structure of the gun-inspection pair in an embodiment of the present invention;

[0020] Figure 4 This is a schematic diagram of the ray assignment model in an embodiment of the present invention;

[0021] Figure 5This is a schematic diagram of a three-dimensional buffer structure in an embodiment of the present invention, consisting of a three-dimensional array composed of ny two-dimensional (nx×nz) slices;

[0022] Figure 6 This is a schematic diagram of the shot detection coverage in an embodiment of the present invention;

[0023] Figure 7 This is a schematic diagram illustrating the establishment of the velocity model in an embodiment of the present invention;

[0024] Figure 8 This is a schematic diagram of ray distribution statistics in an embodiment of the present invention;

[0025] Figure 9 This is a top view of the ground structure in an embodiment of the present invention;

[0026] Figure 10 This is a schematic diagram of the iy cross-section and three-dimensional curved surface of the ground structure in an embodiment of the present invention;

[0027] Figure 11 This is a schematic diagram of a distributed process parallel computing structure in an embodiment of the present invention;

[0028] Figure 12 This is a schematic diagram illustrating the data exchange during distributed inter-process aggregation operations in an embodiment of the present invention.

[0029] Figure 13 This is a schematic diagram of the grid velocity calculation structure at any point ix, iy, iz in an embodiment of the present invention;

[0030] Figure 14 This is a schematic diagram of atomic operations for multi-threaded parallel computation within a node in an embodiment of the present invention;

[0031] Figure 15 This is a schematic diagram of multi-threaded speed extrapolation within a node in an embodiment of the present invention;

[0032] Figure 16 This is a schematic diagram of the ray queue structure of a computing node in an embodiment of the present invention;

[0033] Figure 17 This is a schematic diagram of data segmentation between nodes in an embodiment of the present invention, divided along the Y-axis direction;

[0034] Figure 18 This is a schematic diagram of multi-threaded data parallelism within a node in an embodiment of the present invention;

[0035] Figure 19 This is a structural diagram of the two-stage parallel computing implementation device for three-dimensional tomographic static correction in an embodiment of the present invention. Detailed Implementation

[0036] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to the accompanying drawings. Here, the illustrative embodiments of the present invention and their descriptions are used to explain the present invention, but are not intended to limit the present invention.

[0037] To address the performance bottleneck of 3D tomographic static correction algorithms on a single machine, and considering the hardware and software support characteristics of new platforms, this invention redesigns and develops a novel two-level parallel computing implementation method for 3D tomographic static correction using the latest hardware and software technologies. This method fully leverages the computing power and distribution capabilities of multiple machines / nodes and multi-core CPUs, meets the development needs of modern and future computing platforms' hardware and software resources, achieves highly parallel computing capabilities of numerous computing cores, maximizes the overall computing efficiency of high-performance computing platforms, and thus improves production efficiency.

[0038] Figure 2 This is a flowchart of the two-stage parallel computation method for three-dimensional tomographic static correction in an embodiment of the present invention, as shown below. Figure 2 As shown, the method includes:

[0039] Step 02: Based on the 3D tomographic static correction algorithm, the multiple computing cores of multiple computing nodes are divided into two-level parallel computing models. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. The multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model are determined. The results of the multiple ray tracing tasks of the multiple computing cores of each computing node in the second-level parallel computing model are the input of the velocity modeling task, and the output of the velocity modeling task is the input of the next ray tracing task.

[0040] Step 04: Acquire seismic data, perform two-stage parallel processing of three-dimensional tomographic static correction based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is used for corresponding processing.

[0041] Specifically, the two-level parallel computing of this invention refers to organizing multiple computing cores from multiple computing nodes to simultaneously participate in the calculation of three-dimensional tomographic static correction. Since the computing nodes are independent and complete computing devices, they can be implemented using mature distributed parallel computing; the computing cores within each computing node are shared main memory processing units, and therefore can be implemented using mature shared-memory parallel computing. This is the two-level parallel computing structure composed of distributed parallel computing and shared-memory parallel computing.

[0042] Figure 1This is a schematic diagram of the basic calculation process for static correction in three-dimensional tomography. Figure 1 As can be seen, this algorithm has two inverse computational modes: model forward modeling (ray tracing) and model inversion (velocity modeling). Therefore, this invention decomposes it into two parallel computational steps: forward modeling (i.e., ray tracing) and inversion modeling (i.e., velocity calculation), to achieve the overall computational task. Based on the characteristics of the tomographic static correction algorithm, this invention adopts both task parallelism and data parallelism models to achieve the overall static correction computational task.

[0043] The task definition of this invention is as follows: For ray tracing tasks, a task parallel mode is adopted, with each ray as the unit of computation; for velocity modeling tasks, a data parallel mode is adopted, with data blocks as the unit of computation.

[0044] The coordination model of the two parallel modes in this invention adopts a producer-consumer data flow pattern. The output of the ray tracing task is the input of the velocity modeling task; the output of the velocity modeling result is the input of the next ray tracing task, thus constituting the iterative requirements of the algorithm and achieving the algorithm's high-performance computing goal.

[0045] This invention addresses the characteristics of the three-dimensional tomographic static correction algorithm and its two-level parallel computing structure model by proposing a dedicated data control structure and a collaborative computing scheduling method:

[0046] 1) Parallel computation task of ray tracing; each task is executed independently, but the traced ray paths (e.g., Figure 3 When an intersection occurs (as shown), competition arises for data operations such as slowness values ​​and ray density. To address this issue, two key control structures were invented: a ray assignment graph structure and a grid node atomic operation structure.

[0047] The raycasting graph structure controls the probability of rays intersecting, minimizing the adjacency between ray tracing tasks. It is created based on the number of nodes participating in the computation and the number of threads started on each node, such as... Figure 4 The ray allocation model shown in the diagram ensures that the ray tracing tasks undertaken by the threads within each node are not adjacent, thereby reducing the probability of data operation competition between tasks and improving computational efficiency.

[0048] The mesh node atomic operation structure controls the atomic operation of attributes such as slowness value and ray density in mesh points during ray tracing, and synchronizes the operation of the same mesh point between threads.

[0049] 2) Distributed computing data aggregation method: The slowness value and ray density of the ray tracing task are distributed in different nodes. The velocity modeling is carried out in blocks, and the velocity sub-blocks are distributed in each node. Therefore, two types of operation methods are designed: the summation method of slowness and ray density, and the merging method of velocity sub-blocks.

[0050] The summation method for slowness and ray density involves aggregating the slowness and ray density data scattered across each participating computation node to construct a complete slowness value model and ray density distribution model (i.e., summing the results of multiple ray slowness calculation tasks across multiple computation cores to construct a ray slowness model; summing the results of multiple ray density calculation tasks across multiple computation cores to construct a ray density distribution model). Since these models are the input data for the next step of velocity modeling (i.e., obtaining the sub-block velocity model based on the ray slowness model and ray density distribution model), each node requires these models. Therefore, this method achieves summation while storing the results on each node, saving communication time from further distribution.

[0051] The method for merging velocity sub-blocks involves combining the velocity models of the sub-blocks on each computing node into a complete velocity model. Since the complete velocity model is the target model for the next ray tracing step, each computing node requires the same input velocity model. Therefore, the result of this merging must be stored as a consistent velocity model on each computing node.

[0052] 3) Parallel computation method for velocity modeling; this step employs a data-parallel computation model to implement the computational task. Because the velocity of each grid (calculation such as...) Figure 13 Since there are no time or space dependencies, the task of speed modeling can be expanded into large-scale computations to improve CPU utilization and thus increase overall computational efficiency. Because boundary handling, speed extrapolation, and smoothing are required at this stage, thread load balancing is a key implementation point. Therefore, a granular parallel computing method in thread slices was invented.

[0053] 4) Distributed parallel computing models (such as...) Figure 11 ); Employing the collective communication mechanism of MPI, a distributed multi-process parallel computing system is developed, implementing the first stage of a two-stage parallel computing system. The main tasks of this stage are merge and aggregation operations (such as...). Figure 12 As shown), it is responsible for performing these two operations on the shared data body distributed across each computing node, while ensuring the consistency of the shared data body on each node.

[0054] MPI is a cross-language communication protocol for writing parallel computers. It supports point-to-point and broadcast communication. MPI is a messaging application programming interface that includes protocol and semantic specifications that indicate how it should function in various implementations. MPI aims for high performance, scalability, and portability. MPI is a messaging-based parallel programming technique. A messaging interface is a programming interface standard, not a specific programming language. In short, the MPI standard defines a set of portable programming interfaces.

[0055] 5) Shared-memory parallel computing model; employing the Pthreads direct control mechanism, a shared-memory multi-threaded parallel computing model is developed to achieve the second level of parallel computing. This is the core level of parallel computing, a key point in overall computing performance, and a crucial technology of this invention. Based on the workflow and data flow of the three-dimensional tomographic static correction algorithm, the following five types of threads and their corresponding responsibilities are defined:

[0056] ① The main thread is responsible for initializing the runtime environment (MPI, Pthreads), creating other worker threads, constructing all data objects, and so on.

[0057] ② The initial arrival loading thread is responsible for loading the initial arrival data calculated by this node, which is the information related to the ray.

[0058] ③ Parallel computing scheduling thread, responsible for scheduling parallel computing initiation tasks such as ray tracing, velocity modeling, and first-level operations.

[0059] ④ The ray tracing computation thread is responsible for all task-parallel computational functions of ray tracing. Its parallel computation model is as follows: Figure 14 .

[0060] ⑤ The speed modeling computation thread is responsible for all data-parallel computational functions for speed modeling. Its parallel computation model is as follows: Figure 18 .

[0061] This invention is a complete implementation method for three-dimensional tomographic static correction calculation based on a cluster environment. The content is extensive and interdependent. In order to illustrate the actual working principle of the method, the specific implementation plan is described in the following work order: 1) Initialize parallel computing resources; 2) Configure parallel computing tasks; 3) Execute parallel computing work.

[0062] 1) Initialize parallel computing resources

[0063] The basic process of three-dimensional tomographic static correction calculation is as follows: Figure 1 As shown, it consists of two main steps: task parallelism and data parallelism, as defined in the invention.

[0064] This invention provides a parallel computing implementation method for a three-dimensional tomographic static correction algorithm in a cluster computing platform environment. It employs a two-level parallel computing model: the first level uses distributed process parallel computing, with the programming interface implemented using MPI; the second level uses shared memory multi-threaded parallel computing, with the programming interface implemented using the Pthreads thread library. The application programming platform uses the C / C++11 standard environment, and the programming development environment for this method is: Qt 5.14 (C / C++) + MPI 3.1.

[0065] The initialization of the first-level parallel computing environment is the initialization of the distributed process parallel computing environment, i.e., the initialization of MPI. Because the nodes (or processes) in this invention contain multiple threads, it is necessary to initialize the thread support level of MPI. According to the design requirements of this invention, only one thread needs to issue an MPI call at any given time; therefore, the initialization work is completed using `MPI_Init_thread(MPI_THREAD_SERIALIZED)`. This initializes the global parameters of the process, such as its task and scope.

[0066] The initialization of the second-level parallel computing environment is the core of this invention and also the definition of all resources for the two-level parallel computing. Therefore, it is divided into the initialization of data resources and computing resources. These resources are involved throughout the entire process and should therefore be handled by the main thread.

[0067] The initialization of data resources involves creating the corresponding buffers, as follows:

[0068] Create a ray tracing task queue (e.g.) Figure 16 This queue is written by the ray assembly thread and read by the task scheduling thread.

[0069] Create computational data object buffers: input velocity model buffer (velmodel[ny][nx][nz]), output velocity model buffer (slowness[ny][nx][nz]); slowness change buffer (rayslwns[ny][nx][nz]); ray density buffer (rayhits[ny][nx][nz]); mesh operation weight buffer (gridowns[ny][nx][nz]); such as Figure 5 As shown.

[0070] Create computational boundary control buffers: shot-receiver midpoint coverage count buffer (SRMPSurfaces[ny][nx]); ray sparse flag range buffer (SparseFlags[ny][nx]); longitudinal starting velocity buffer (depthInitVels[ny][nx]); longitudinal starting position buffer (depthInitSurfs[ny][nx]); etc., as follows: Figure 6 , Figure 7 , Figure 8 , Figure 9 , Figure 10 As shown.

[0071] Initializing computing resources involves creating various computing thread objects and starting the threads to enter their respective ready-to-work states. The created threads are as follows:

[0072] Create a ray task loader thread, which is responsible for extracting the ray (shot-receiver pair) tracking tasks assigned to this node (process) from the initial arrival observation system data file. The extraction rules are based on... Figure 4 Execute as shown.

[0073] Create a task scheduling thread (taskscheduler) that is responsible for all task scheduling and allocation, data exchange with other nodes (processes), and synchronization between ray tracing threads and velocity modeling threads within the process.

[0074] Create a ray tracing calculation thread. This thread is responsible for the tracing calculation of a single ray. Therefore, it is necessary to create a group of concurrent ray tracing calculation threads to trace several rays at the same time, thereby improving the overall computational efficiency of the task.

[0075] Create a velocity modeling computation thread (velmodeling), which is responsible for the local computation work of the data-parallel task, including slowness calculation, boundary calculation, and velocity derivation (e.g., Figure 15 This requires independent processing of data such as [data type name - likely a function or process]. Therefore, multiple threads need to be created to achieve parallel computing.

[0076] 2) Parallel computing task configuration

[0077] Parallel computing refers to a complete computation with two levels of parallelism; therefore, task configuration also needs to define two levels of parallel computing tasks. This invention is an implementation method for a three-dimensional tomographic static correction algorithm, which includes two types of parallel computing tasks: task parallelism and data parallelism. Therefore, task configuration needs to take into account the special requirements of these two types of parallel computing.

[0078] Task parallelism refers to ray tracing tasks because each ray is relatively independent, and each ray operates on the entire velocity model. Data parallelism refers to velocity modeling tasks because the velocity model consists of several xz slices (e.g., ...). Figure 17 As shown, the slices are relatively independent and consist of n x Grids × nz Grids grid data points, which are the basic data units; they are the smallest task unit for data parallelism in this invention.

[0079] Level 1 Parallel Computing Task Configuration: This level of parallel computing uses processes (nodes) as the computing task providers, responsible for ray tracing and velocity modeling tasks. The ray tracing task configuration is as follows: Figure 4 As shown, the process rank is the cardinality of the ray task number, and the size of the parallel computing communication group (number of processes) is the step size (or span) of the ray task to reduce the probability of intersection between ray paths, such as... Figure 3 As shown.

[0080] Blocking strategy for velocity modeling tasks, such as Figure 17 As shown, the task blocks are numbered sequentially by the process rank, and the task size is nyTasks. Then the starting position iyOffset = rank × nyTasks.

[0081] Second-level parallel computing task configuration: This level of parallel computing is multi-threaded parallel computing within a process (node). Because there are two types of parallel tasks, there are two types of multi-threaded parallel models: ray tracing multi-threaded task parallelism and speed modeling multi-threaded data parallelism.

[0082] Ray tracing multithreaded parallel tasks are performed using rays (shot-receiver pairs) as the task unit. Therefore, each thread is responsible for the tracing calculation of one ray. The configuration mode for ray tracing threads is as follows: Figure 4 The ray assignment structure is shown in one row. This row represents the ray tracing task queue of the process to which it belongs. One structure item represents a ray, where Rd...d represents the global sequential number of the ray, Tnn represents the thread mapping the ray, and the number of threads concurrently tracing rays is nRayTracings. This mode makes the rays processed by adjacent threads relatively far apart, thereby reducing the probability of spatiotemporal intersection of ray path tracing and thus reducing the probability of data race.

[0083] Speed ​​modeling using multithreaded data parallelism takes data slices as the task unit. Therefore, each thread is responsible for speed deferring 1 to nySlices of slices. The configuration mode for speed deferring threads is as follows: Figure 17 As shown in the data parallel partitioning strategy, this mode is applied to intra-process multi-threaded parallelism as a consistent application of medium-granularity configuration. Let the number of parallel threads be nVelParalls, and the total number of slices handled by the process be nyTasks. Then, the slice handled by each thread is nySlices = nyTasks / nVelThs, where nySlices >= 1. To satisfy this condition, the values ​​of nyTasks and nVelParalls are calculated according to the following system of equations:

[0084] (1) nyGrids = nNodeProcs × nyTasks; the range of the model in the Y direction (number of grid points) or the total number of slices.

[0085] (2) nyTasks = nVelParalls × nySlices; the number of speed-delay slices undertaken by each node (or process).

[0086] Where nNodeProcs represents the actual number of computing nodes (or processes), and nVelParalls represents the number of threads for data parallelism.

[0087] 3) Perform parallel computing tasks

[0088] After steps 1) and 2) are successfully completed, the full-scale parallel computing can begin. First, start two data provider threads: a one-time speed-loading thread and a life-cycle ray-assembly thread; they provide the basic data input for other threads. Second, transfer control of the parallel computing to the computation scheduling thread. Finally, have the main thread switch to the event loop to monitor the running status of its process.

[0089] Currently, the parallel computing scheduling thread is closely monitoring whether the speed model has finished loading and whether the ray assembly meets the allocation requirements. When both conditions are met: nonlinear iteration begins…;

[0090] (i) First, distribute ray tracing tasks until all ray tracing tasks undertaken by this process are completed. Second, send ray slowing reduction requests and wait for the main thread to complete all reduction calculations. Third, distribute slowing processing tasks for the sub-blocks to which this process belongs. Finally, send slowing aggregation requests and wait for the main thread to complete all aggregation calculations.

[0091] (ii) The parallel computing scheduling thread enters the next linear iteration: dispatches ray tracing tasks; requests ray slow reduction; dispatches slow processing tasks; requests slow aggregation operations. This continues until the linear iteration is complete.

[0092] (III) Scheduling thread based on calculation parameter requirements: Is boundary processing required? Boundary processing: First, send a boundary range reduction request and wait for the main thread to complete the boundary reduction operation; second, set a global sparse flag based on the boundary range of the shot-detector midpoint; third, calculate the longitudinal starting velocity and longitudinal starting position based on the position of the sparse flag; finally, extend the slowness model based on the definition of longitudinal starting.

[0093] (iv) Scheduling thread based on calculation parameter requirements: Is it necessary to reverse the speed? Reversal process: Reverse the previously obtained slow speed model into a speed model.

[0094] (v) Scheduling thread: Distribute tasks smoothly at a high speed.

[0095] (vi) Scheduling thread: Sends speed aggregation request and waits for the main thread to complete the aggregation operation.

[0096] (vii) Scheduling thread: the next nonlinear iteration.

[0097] During the above execution process, the scheduling thread, the main thread, and the ray assembly thread execute concurrently; the ray tracing threads execute in a classic parallel task manner, and the speed modeling threads execute in a classic parallel data manner.

[0098] This invention also provides a two-stage parallel computing implementation device for three-dimensional tomographic static correction, as described in the following embodiments. Since the principle behind this device's problem-solving is similar to the two-stage parallel computing implementation method for three-dimensional tomographic static correction, its implementation can refer to the implementation method for three-dimensional tomographic static correction; repeated details will not be elaborated further.

[0099] Figure 19 This is a structural diagram of the two-stage parallel computing implementation device for three-dimensional tomographic static correction in an embodiment of the present invention, as shown below. Figure 19 As shown, the two-stage parallel computing implementation device for three-dimensional tomographic static correction includes:

[0100] Model building module 02 is used to divide the multiple computing cores of multiple computing nodes into a two-level parallel computing model based on the three-dimensional tomographic static correction algorithm. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. It determines the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model, and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model. The results of the multiple ray tracing tasks of the multiple computing cores of each computing node in the second-level parallel computing model serve as the input of the velocity modeling task, and the output of the velocity modeling task serves as the input of the next ray tracing task.

[0101] The static correction processing module 04 is used to acquire seismic data and perform two-level parallel processing of three-dimensional tomographic static correction based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is used for corresponding processing.

[0102] In this embodiment of the invention, the model building module is specifically used for:

[0103] Determine the ray slowness calculation task and ray density calculation task in a ray tracing task to be processed by each computing core;

[0104] A ray slowness model is constructed by summing the results of multiple ray slowness calculation tasks based on multiple computing cores;

[0105] A ray density distribution model is constructed by summing the results of multiple ray density calculation tasks based on multiple computing cores;

[0106] The sub-block velocity model is obtained based on the ray slowness model and the ray density distribution model, where the ray slowness model and the ray density distribution model are the input data for the sub-block velocity model.

[0107] The velocity model in the velocity modeling task is obtained by merging multiple sub-block velocity models.

[0108] In this embodiment of the invention, the model building module is specifically used for:

[0109] The ray allocation chart structure is determined based on the number of computing nodes and the number of computing cores corresponding to each computing node.

[0110] Based on the ray assignment chart structure, determine the multiple ray tracing tasks that each computing node in the first-level parallel computing model needs to handle;

[0111] Determine the atomic operation structure of the mesh nodes;

[0112] The computational operations for ray slowness calculation and ray density calculation are implemented based on the atomic operation structure of the grid nodes.

[0113] In this embodiment of the invention, the model building module is specifically used for:

[0114] Based on the calculation parameters of the three-dimensional tomographic static correction algorithm, determine whether to create a boundary processing task and / or a velocity reversal task;

[0115] Among them, the boundary processing task is used to extend the slowness model, and the velocity inversion task is used to invert the ray slowness model into a velocity model.

[0116] In this embodiment of the invention, the model building module is specifically used for:

[0117] Initialize the computing environment for the first-level parallel computing model;

[0118] The computational environment of the second-level parallel computing model is initialized, including the initialization of data resources and the initialization of computational resources.

[0119] The initialization of data resources includes: creating a ray tracing task queue and a computational data object buffer. The ray tracing task queue is used to store the ray tracing tasks to be processed. The computational data object buffer includes an input velocity model buffer, an output velocity model buffer, a slowness change buffer, a ray density buffer, and a mesh operation weight buffer.

[0120] Initialization of computing resources includes: creating computing thread objects, which include ray task assembly thread, computing task scheduling thread, ray tracing computing thread, and velocity modeling computing thread;

[0121] The ray task assembly thread is used to extract ray tracing tasks to be processed from seismic data; the computation task scheduling thread is responsible for all computation task scheduling and allocation, data exchange with other computation nodes, and synchronization between ray tracing threads and velocity modeling threads within the computation nodes; the ray tracing computation thread is responsible for the ray tracing computation task of a single ray; and the velocity modeling computation thread is responsible for the parallel implementation of velocity.

[0122] This invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the above-described two-stage parallel computation method for three-dimensional tomographic static correction.

[0123] This invention also provides a computer-readable storage medium storing a computer program that performs the above-described two-stage parallel computation method for three-dimensional tomographic static correction.

[0124] In this embodiment of the invention, based on the three-dimensional tomographic static correction algorithm, multiple computing cores of multiple computing nodes are divided into a two-level parallel computing model. The first-level parallel computing model uses distributed process parallel computing across multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. The first-level parallel computing model determines the multiple ray tracing tasks and speed modeling tasks to be processed by each computing node, and the second-level parallel computing model determines the single ray tracing task to be processed by each computing core of each computing node. Specifically, the second-level parallel computing model involves multiple ray tracing tasks from multiple computing cores of each computing node. The results of the ray tracing task serve as the input for the velocity modeling task, and the output of the velocity modeling task serves as the input for the next ray tracing task. Seismic data is acquired, and three-dimensional tomographic static correction is performed in two-level parallel processing based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data. This static correction data is used for corresponding processing. Compared with existing technologies, the two-level parallel computing refers to organizing multiple computing cores of multiple computing nodes to participate in the calculation of the three-dimensional tomographic static correction task simultaneously. This can meet the high-concurrency computing performance requirements of ray tracing. The adoption of a collective communication mechanism improves communication performance and fully meets the data parallel requirements of velocity inversion calculation.

[0125] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0126] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0127] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0128] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0129] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above descriptions are merely specific embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A method for implementing two-stage parallel computation of three-dimensional tomographic static correction, characterized in that, include: Based on the three-dimensional tomographic static correction algorithm, multiple computing cores of multiple computing nodes are divided into two-level parallel computing models. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. The first-level parallel computing model determines the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node, and the second-level parallel computing model determines the one ray tracing task to be processed by each computing core of each computing node. In the second-level parallel computing model, the results of the multiple ray tracing tasks of the multiple computing cores of each computing node serve as the input of the velocity modeling task, and the output of the velocity modeling task serves as the input of the next ray tracing task. Seismic data is acquired, and three-dimensional tomographic static correction is performed in two-stage parallel processing based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is then used for corresponding processing. Based on the 3D tomographic static correction algorithm, the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model are determined, and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model is determined, including: Determine the ray slowness calculation task and ray density calculation task in a ray tracing task to be processed by each computing core; A ray slowness model is constructed by summing the results of multiple ray slowness calculation tasks based on multiple computing cores; A ray density distribution model is constructed by summing the results of multiple ray density calculation tasks based on multiple computing cores; The sub-block velocity model is obtained based on the ray slowness model and the ray density distribution model, where the ray slowness model and the ray density distribution model are the input data for the sub-block velocity model. The velocity model in the velocity modeling task is obtained by merging multiple sub-block velocity models.

2. The two-stage parallel computation method for three-dimensional tomographic static correction as described in claim 1, characterized in that, Based on the 3D tomographic static correction algorithm, the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model are determined, and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model is determined, including: The ray allocation chart structure is determined based on the number of computing nodes and the number of computing cores corresponding to each computing node. Based on the ray assignment chart structure, determine the multiple ray tracing tasks that each computing node in the first-level parallel computing model needs to handle; Determine the atomic operation structure of the mesh nodes; The computational operations for ray slowness calculation and ray density calculation are implemented based on the atomic operation structure of the grid nodes.

3. The two-stage parallel computation method for three-dimensional tomographic static correction as described in claim 1, characterized in that, Based on the 3D tomographic static correction algorithm, the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model are determined, and the ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model also includes: Based on the calculation parameters of the three-dimensional tomographic static correction algorithm, determine whether to create a boundary processing task and / or a velocity reversal task; Among them, the boundary processing task is used to extend the slowness model, and the velocity inversion task is used to invert the ray slowness model into a velocity model.

4. The two-stage parallel computation method for three-dimensional tomographic static correction as described in claim 2, characterized in that, Based on the three-dimensional tomographic static correction algorithm, multiple computing cores of multiple computing nodes are divided into a two-level parallel computing model, including: Initialize the computing environment for the first-level parallel computing model; The computational environment of the second-level parallel computing model is initialized, including the initialization of data resources and the initialization of computational resources. The initialization of data resources includes: creating a ray tracing task queue and a computational data object buffer. The ray tracing task queue is used to store the ray tracing tasks to be processed. The computational data object buffer includes an input velocity model buffer, an output velocity model buffer, a slowness change buffer, a ray density buffer, and a mesh operation weight buffer. Initialization of computing resources includes: creating computing thread objects, which include ray task assembly thread, computing task scheduling thread, ray tracing computing thread, and velocity modeling computing thread; The ray task assembly thread is used to extract ray tracing tasks to be processed from seismic data; the computation task scheduling thread is responsible for all computation task scheduling and allocation, data exchange with other computation nodes, and synchronization between ray tracing threads and velocity modeling threads within the computation nodes; the ray tracing computation thread is responsible for the ray tracing computation task of a single ray; and the velocity modeling computation thread is responsible for the parallel implementation of velocity.

5. A two-stage parallel computing device for three-dimensional tomographic static correction, characterized in that, include: The model building module is used to divide the multiple computing cores of multiple computing nodes into a two-level parallel computing model based on the 3D tomographic static correction algorithm. The first-level parallel computing model uses distributed process parallel computing for multiple computing nodes, while the second-level parallel computing model uses shared memory multi-threaded parallel computing for multiple computing cores of each computing node. It determines the multiple ray tracing tasks and velocity modeling tasks to be processed by each computing node in the first-level parallel computing model, and the one ray tracing task to be processed by each computing core of each computing node in the second-level parallel computing model. The results of the multiple ray tracing tasks of the multiple computing cores of each computing node in the second-level parallel computing model serve as the input of the velocity modeling task, and the output of the velocity modeling task serves as the input of the next ray tracing task. The static correction processing module is used to acquire seismic data and perform two-level parallel processing of three-dimensional tomographic static correction based on the first-level parallel computing model and the second-level parallel computing model to obtain static correction data, which is used for corresponding processing. The model building module is specifically used for: Determine the ray slowness calculation task and ray density calculation task in a ray tracing task to be processed by each computing core; A ray slowness model is constructed by summing the results of multiple ray slowness calculation tasks based on multiple computing cores; A ray density distribution model is constructed by summing the results of multiple ray density calculation tasks based on multiple computing cores; The sub-block velocity model is obtained based on the ray slowness model and the ray density distribution model, where the ray slowness model and the ray density distribution model are the input data for the sub-block velocity model. The velocity model in the velocity modeling task is obtained by merging multiple sub-block velocity models.

6. The two-stage parallel computing implementation device for three-dimensional tomography static correction as described in claim 5, characterized in that, The model building module is specifically used for: The ray allocation chart structure is determined based on the number of computing nodes and the number of computing cores corresponding to each computing node. Based on the ray assignment chart structure, determine the multiple ray tracing tasks that each computing node in the first-level parallel computing model needs to handle; Determine the atomic operation structure of the mesh nodes; The computational operations for ray slowness calculation and ray density calculation are implemented based on the atomic operation structure of the grid nodes.

7. The two-stage parallel computing implementation device for three-dimensional tomography static correction as described in claim 5, characterized in that, The model building module is specifically used for: Based on the calculation parameters of the three-dimensional tomographic static correction algorithm, determine whether to create a boundary processing task and / or a velocity reversal task; Among them, the boundary processing task is used to extend the slowness model, and the velocity inversion task is used to invert the ray slowness model into a velocity model.

8. The two-stage parallel computing implementation device for three-dimensional tomography static correction as described in claim 6, characterized in that, The model building module is specifically used for: Initialize the computing environment for the first-level parallel computing model; The computational environment of the second-level parallel computing model is initialized, including the initialization of data resources and the initialization of computational resources. The initialization of data resources includes: creating a ray tracing task queue and a computational data object buffer. The ray tracing task queue is used to store the ray tracing tasks to be processed. The computational data object buffer includes an input velocity model buffer, an output velocity model buffer, a slowness change buffer, a ray density buffer, and a mesh operation weight buffer. Initialization of computing resources includes: creating computing thread objects, which include ray task assembly thread, computing task scheduling thread, ray tracing computing thread, and velocity modeling computing thread; The ray task assembly thread is used to extract ray tracing tasks to be processed from seismic data; the computation task scheduling thread is responsible for all computation task scheduling and allocation, data exchange with other computation nodes, and synchronization between ray tracing threads and velocity modeling threads within the computation nodes; the ray tracing computation thread is responsible for the ray tracing computation task of a single ray; and the velocity modeling computation thread is responsible for the parallel implementation of velocity.

9. A computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the two-stage parallel computing method for three-dimensional tomographic static correction as described in any one of claims 1 to 4.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the two-stage parallel computation method for three-dimensional tomographic static correction as described in any one of claims 1 to 4.