Methods, systems, and computer-readable storage media for earthquake operations

CN117632453BActive Publication Date: 2026-08-14CHINA NAT PETROLEUM CORP +2
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-15
Publication Date
2026-08-14

AI Technical Summary

Benefits of technology

[0110]在本申请实施例中,地震作业的执行系统能够自动将一个地震作业拆分成多个地震子作业,并行处理多个地震子作业,充分利用该系统的存储和计算资源,提升地震作业运行的性能和稳定性,从而有效提升海量地震数据的处理效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117632453B_ABST
    Figure CN117632453B_ABST
Patent Text Reader

Abstract

This application discloses a method, system, and computer-readable storage medium for executing seismic operations, belonging to the field of geophysical exploration. The system can automatically split a seismic operation into multiple seismic sub-operations, process these sub-operations in parallel, fully utilize system storage and computing resources, improve operation performance and stability, and enhance the processing efficiency of massive seismic data. Specifically, the master node automatically splits the seismic data, avoiding manual splitting and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each computing node, after completing one seismic sub-operation, requests the next, ensuring efficient utilization of computing node resources and thus ensuring load balancing among the multiple computing nodes and reducing the total processing time of the seismic operation. Each computing node has a local buffer, fully utilizing its storage resources. The master node can also merge the results of all seismic sub-operations and provide the user with an overall result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of geophysical exploration, and in particular to a method, system, and computer-readable storage medium for performing seismic operations. Background Technology

[0002] Seismic data processing is a key focus in the oil and gas exploration industry. For example, seismic operations are developed based on acquired seismic data, and these operations are executed to generate images of the subsurface structure, thereby guiding subsequent drilling and oil extraction. With the continuous advancement of exploration technology, the volume of seismic data acquired is rapidly increasing. In this era of surging seismic data acquisition, how to efficiently complete seismic operations has become a key research focus. Summary of the Invention

[0003] This application provides a method, system, and computer-readable storage medium for performing earthquake operations, enabling more efficient completion of earthquake operations, specifically, efficient processing of earthquake data. The technical solution is as follows:

[0004] On the one hand, a method for executing earthquake operations is provided. The earthquake operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool, wherein the multiple computing nodes run in parallel.

[0005] The method includes:

[0006] The master node receives an execution request for a seismic operation, and the execution request indicates the seismic data to be processed.

[0007] The master node divides the seismic data into multiple gathers according to the data partitioning rules;

[0008] The master node generates multiple seismic sub-operations based on the data from the multiple trace gathers, and the multiple seismic sub-operations correspond one-to-one with the data from the multiple trace gathers;

[0009] The master node sends job processing requests to the plurality of computing nodes to instruct the plurality of computing nodes to execute the plurality of seismic sub-jobs to obtain the data processing results of the plurality of trace gathers, and to instruct the plurality of computing nodes to store the data processing results of the plurality of trace gathers to the shared resource pool through the at least one output node;

[0010] After all the multiple seismic sub-jobs have been executed, the master node obtains the data processing results of the multiple trace sets from the shared resource pool, merges the data processing results of the multiple trace sets to obtain the processing result of the seismic data, and returns the processing result of the seismic data.

[0011] Optionally, the execution request further indicates a set partitioning keyword, the value range of which includes a system default value and multiple first specified values;

[0012] Before the master node divides the seismic data into multiple gathers according to the data partitioning rules, it also includes:

[0013] When the value of the set partitioning key is any one of the plurality of first specified values, the master node determines the set partitioning key as the sorting key, and the sorting key is used to indicate the data partitioning rule.

[0014] Optionally, the execution request further indicates a channel flag keyword, the value range of which includes a plurality of second specified values;

[0015] Before the master node divides the seismic data into multiple gathers according to the data partitioning rules, it also includes:

[0016] When the value of the set partitioning key is the system default value, the master node determines the set flag key as the sorting key.

[0017] Optionally, the plurality of first specified values ​​correspond one-to-one with a plurality of first course set partitioning rules, and the plurality of second specified values ​​correspond one-to-one with a plurality of second course set partitioning rules, wherein the partitioning granularity of the first course set partitioning rule is greater than the partitioning granularity of the second course set partitioning rule.

[0018] Optionally, the seismic data includes data from multiple seismic traces, each of the multiple seismic traces having an index, the index including multiple attributes of the corresponding seismic trace, and the data partitioning rule referring to a rule for sorting according to the value of at least one target attribute among the multiple attributes;

[0019] The master node divides the seismic data into multiple gathers according to data partitioning rules, including:

[0020] The master node sorts the indexes of the multiple seismic traces according to the data partitioning rules to obtain multiple sorted indexes;

[0021] If the value of at least one target attribute in the sorted (i+1)th index is the same as the value of at least one target attribute in the ith index, then the master node will assign the data of the seismic trace corresponding to the (i+1)th index to the mth trace set. The mth trace set refers to the trace set to which the data of the seismic trace corresponding to the ith index in the multiple trace sets belongs, where i and m are both integers not less than 1.

[0022] If the value of at least one target attribute in the i-th index is different from the value of at least one target attribute in the (i+1)-th index, then the master node will assign the data of the seismic trace corresponding to the (i+1)-th index to the (m+1)-th trace set.

[0023] Optionally, the state of the seismic sub-operation being executed among the plurality of seismic sub-operations is "processing", the state of the seismic sub-operation that has not been processed is "pending processing", and the state of the seismic sub-operation that has been completed is "processed".

[0024] The method further includes:

[0025] If the execution of the first seismic sub-job is determined to have failed, the master node will change the status of the first seismic sub-job from the processing state to the pending state, where the first seismic sub-job is one of the plurality of seismic sub-jobs.

[0026] Optionally, the method further includes:

[0027] Upon receiving an execution failure notification from the first computing node, the master node determines that the first seismic sub-job has failed. The execution failure notification is generated by the first computing node upon its failure to execute the first seismic sub-job, and the first computing node is one of the plurality of computing nodes; or...

[0028] If a failure is detected in the first computing node, the master node determines that the first seismic sub-job has failed.

[0029] Optionally, the total number of computing nodes included in the seismic operation execution system is greater than or equal to the number of the plurality of computing nodes, and the execution request further indicates the total number of computing nodes required to process the seismic data;

[0030] After receiving the request to execute the seismic operation, the method further includes:

[0031] Based on the total number of computing nodes required to process the seismic data, the master node determines the plurality of computing nodes from all computing nodes included in the seismic operation execution system according to a load balancing strategy.

[0032] Optionally, the execution request may also indicate the number of computing processes to be initiated by each computing node required to process the seismic data;

[0033] After receiving the request to execute the seismic operation, the method further includes:

[0034] The master node controls the multiple computing nodes to start a corresponding number of computing processes based on the number of computing processes started by each computing node required to process the seismic data.

[0035] Optionally, the computing processes initiated by each of the plurality of computing nodes run in parallel.

[0036] On the other hand, a method for executing seismic operations is provided. The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The seismic data to be processed is divided into multiple trace data by the master node. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, and the multiple seismic sub-operations correspond one-to-one with the multiple trace data.

[0037] The method includes:

[0038] The first computing node requests at least one seismic subjob from the master node to obtain the index of at least one trace set corresponding to the at least one seismic subjob. The first computing node is any one of the plurality of computing nodes, and the at least one trace set is a trace set among the plurality of trace sets.

[0039] The first computing node executes the requested seismic sub-job based on the index of the at least one trace set to obtain the data processing results of the at least one trace set;

[0040] Each time the first computing node obtains the data processing result of a gather, it stores the obtained data processing result in the local buffer of the first computing node and sends a result retrieval request to the first output node. The result retrieval request is used to instruct the first output node to retrieve the data processing result in the local buffer of the first computing node and store the retrieved data processing result in the shared resource pool. The first output node is one of the at least one output node.

[0041] The first computing node returns to the step of requesting at least one seismic sub-job from the master node until the plurality of seismic sub-jobs have been executed.

[0042] Optionally, the first computing node executes the requested seismic sub-job based on the index of the at least one trace set to obtain the data processing results of the at least one trace set, including:

[0043] The first computing node obtains the data of the corresponding trace set from the data storage node based on the index of each trace set in the at least one trace set;

[0044] The first computing node processes the data of each trace set in the at least one trace set to obtain the data processing result of the corresponding trace set.

[0045] Optionally, the first computing node executes K seismic sub-jobs simultaneously by running K computing processes in parallel, where K is an integer greater than 1.

[0046] Optionally, among the plurality of seismic sub-operations, the seismic sub-operation being executed is in a "processing" state, the seismic sub-operation not being processed is in a "pending" state, and the seismic sub-operation that has been completed is in a "processed" state; the method further includes:

[0047] If the execution of the first seismic sub-job fails, the first computing node sends an execution failure notification to the master node, instructing the master node to change the status of the first seismic sub-job from the processing state to the pending state. The first seismic sub-job is one of the plurality of seismic sub-jobs.

[0048] On the other hand, a method for executing seismic operations is provided. The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The seismic data to be processed is divided into multiple trace sets by the master node. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, each corresponding one-to-one with a trace set. The method includes:

[0049] The first output node receives a result retrieval request from the first computing node. The result retrieval request is determined after the first computing node has completed a seismic sub-operation to obtain the data processing result of a tracegather. The first output node is one of the at least one output node, and the first computing node is one of the plurality of computing nodes.

[0050] The first output node obtains the data processing result in the local buffer of the first computing node based on the result acquisition request;

[0051] The first output node stores the acquired data processing results into the shared resource pool.

[0052] On the other hand, an execution system for earthquake operations is provided, the system including a master node, multiple computing nodes, at least one output node and a shared resource pool, wherein the multiple computing nodes run in parallel;

[0053] The master node is used to implement the corresponding steps of the master node in the above-described earthquake operation execution method; each of the plurality of computing nodes is used to implement the corresponding steps of the first computing node in the above-described earthquake operation execution method; each of the at least one output node is used to implement the corresponding steps of the first output node in the above-described earthquake operation execution method.

[0054] That is, an execution system for earthquake operations is provided, the system including a master node, multiple computing nodes, at least one output node and a shared resource pool, wherein the multiple computing nodes run in parallel;

[0055] The master node is used to: receive an execution request for an earthquake operation, the execution request indicating earthquake data to be processed; split the earthquake data into multiple trace data according to data partitioning rules; generate multiple earthquake sub-operations based on the multiple trace data; and send operation processing requests to the multiple computing nodes, wherein the multiple earthquake sub-operations correspond one-to-one with the multiple trace data.

[0056] Each of the plurality of computing nodes is configured to: request at least one seismic sub-job from the master node each time based on the sub-job processing request, execute the requested seismic sub-job to obtain the data processing result of the corresponding trace set, store the obtained data processing result in the local buffer of the corresponding computing node after obtaining the data processing result of the trace set, send a result retrieval request to an output node, and return to execute the step of requesting at least one seismic sub-job from the master node until the plurality of seismic sub-jobs are executed;

[0057] Each of the at least one output node is used to: upon receiving a result acquisition request from a computing node, acquire the data processing result in the local buffer of the corresponding computing node, and store the acquired data processing result in the shared resource pool;

[0058] The master node is also configured to: after all the multiple seismic sub-jobs have been executed, obtain the data processing results of the multiple trace gathers from the shared resource pool, fuse the data processing results of the multiple trace gathers to obtain the processing result of the seismic data, and return the processing result of the seismic data.

[0059] Optionally, the state of the seismic sub-operation being executed among the plurality of seismic sub-operations is "processing", the state of the seismic sub-operation that has not been processed is "pending processing", and the state of the seismic sub-operation that has been completed is "processed".

[0060] The master node is also configured to: if it is determined that the first seismic sub-job has failed to execute, change the status of the first seismic sub-job from the processing status to the pending status, wherein the first seismic sub-job is one of the plurality of seismic sub-jobs.

[0061] Optionally, the first computing node among the plurality of computing nodes is further configured to: send an execution failure notification to the master node if the first computing node fails to execute the first seismic sub-operation;

[0062] The master node is used to determine that the first seismic sub-job has failed upon receiving the execution failure notification.

[0063] Optionally, the total number of computing nodes included in the system is greater than or equal to the number of the plurality of computing nodes, and the execution request further indicates the total number of computing nodes required to process the seismic data;

[0064] The master node is also used to determine the plurality of computing nodes from all computing nodes included in the execution system of the earthquake operation, based on the total number of computing nodes required to process the earthquake data and in accordance with a load balancing strategy.

[0065] Optionally, the execution request may also indicate the number of computing processes to be initiated by each computing node required to process the seismic data;

[0066] The master node is also used to control the multiple computing nodes to start a corresponding number of computing processes based on the number of computing processes started by each computing node required to process the seismic data.

[0067] Optionally, the computing processes initiated by each of the plurality of computing nodes run in parallel.

[0068] Optionally, the plurality of computing nodes are configured to implement the functions of the plurality of computing nodes by running a plurality of computing processes, and the at least one output node is configured to implement the functions of the at least one output node by running at least one output process;

[0069] The number of the plurality of computing processes is not less than the number of the at least one output process, and each computing process is associated with a unique output process.

[0070] Optionally, the execution system for the earthquake operation adopts the MapReduce framework, where the computation process is a Map process and the output process is a Reduce process.

[0071] On the other hand, an execution device for earthquake operations is provided. The device is applied to the master node of the execution system for earthquake operations. The execution system for earthquake operations also includes multiple computing nodes, at least one output node, and a shared resource pool. The multiple computing nodes run in parallel.

[0072] The device includes:

[0073] A receiving module is used to receive an execution request for seismic operations, wherein the execution request indicates seismic data to be processed;

[0074] The data partitioning module is used to divide the seismic data into multiple gathers according to data partitioning rules;

[0075] The job generation module is used to generate multiple seismic sub-jobs based on the data from the multiple trace gathers, wherein the multiple seismic sub-jobs correspond one-to-one with the data from the multiple trace gathers;

[0076] The sending module is configured to send job processing requests to the plurality of computing nodes to instruct the plurality of computing nodes to execute the plurality of seismic sub-jobs to obtain the data processing results of the plurality of trace gathers, and to instruct the plurality of computing nodes to store the data processing results of the plurality of trace gathers to the shared resource pool through the at least one output node;

[0077] The result fusion module is used to obtain the data processing results of the multiple trace gathers from the shared resource pool after all the multiple seismic sub-jobs have been executed, and to fuse the data processing results of the multiple trace gathers to obtain the processing result of the seismic data, and then return the processing result of the seismic data.

[0078] Optionally, the execution request further indicates a set partitioning keyword, the value range of which includes a system default value and multiple first specified values;

[0079] The device further includes:

[0080] The first determining module is configured to determine the data set partitioning key as a sorting key when the value of the data set partitioning key is any one of the plurality of first specified values, wherein the sorting key is used to indicate the data partitioning rules.

[0081] Optionally, the execution request further indicates a channel flag keyword, the value range of which includes a plurality of second specified values;

[0082] The device further includes:

[0083] The second determining module is used to determine the Tao set flag keyword as the sorting keyword when the value of the Tao set partitioning keyword is the system default value.

[0084] Optionally, the seismic data includes data from multiple seismic traces, each of the multiple seismic traces having an index, the index including multiple attributes of the corresponding seismic trace, and the data partitioning rule referring to a rule for sorting according to the value of at least one target attribute among the multiple attributes;

[0085] The data partitioning module includes:

[0086] The index sorting submodule is used to sort the indexes of the multiple seismic traces according to the data partitioning rules to obtain multiple sorted indexes.

[0087] The first partitioning submodule is used to partition the data of the seismic trace corresponding to the (i+1)th index into the mth trace set if the value of at least one target attribute in the sorted (i+1)th index is the same as the value of at least one target attribute in the i-th index. The mth trace set refers to the trace set to which the data of the seismic trace corresponding to the i-th index belongs in the plurality of trace sets, where i and m are both integers not less than 1.

[0088] The second partitioning submodule is used to partition the seismic trace data corresponding to the (i+1)th index into the (m+1)th trace set if the value of at least one target attribute in the i-th index is different from the value of at least one target attribute in the (i+1)-th index.

[0089] Optionally, the state of the seismic sub-operation being executed among the plurality of seismic sub-operations is "processing", the state of the seismic sub-operation that has not been processed is "pending processing", and the state of the seismic sub-operation that has been completed is "processed".

[0090] The device further includes:

[0091] The status modification module is used to modify the status of the first seismic sub-job from the processing state to the pending state when it is determined that the first seismic sub-job has failed to execute. The first seismic sub-job is one of the plurality of seismic sub-jobs.

[0092] On the other hand, an execution device for seismic operations is provided, which is applied to a first computing node in a seismic operation execution system. The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The first computing node is any one of the multiple computing nodes. The seismic data to be processed is divided into multiple trace data by the master node. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, and the multiple seismic sub-operations correspond one-to-one with the multiple trace data.

[0093] The device includes:

[0094] The sub-job request module is used to request at least one seismic sub-job from the master node to obtain the index of at least one trace set corresponding to the at least one seismic sub-job, wherein the at least one trace set is a trace set among the multiple trace sets;

[0095] The sub-job execution module is used to execute the requested seismic sub-job based on the index of the at least one trace set, so as to obtain the data processing results of the at least one trace set;

[0096] The result processing module is used to store the obtained data processing result in the local buffer of the first computing node for each data processing result obtained from a collection, and send a result retrieval request to the first output node. The result retrieval request is used to instruct the first output node to retrieve the data processing result in the local buffer of the first computing node and store the retrieved data processing result in the shared resource pool. The first output node is one of the at least one output node.

[0097] The triggering module is used to trigger the sub-job request module to request at least one seismic sub-job from the master node after each data processing result of a trace gather is obtained, until the multiple seismic sub-jobs are completed.

[0098] Optionally, the sub-job execution module includes:

[0099] The data acquisition submodule is used to acquire the data of the corresponding trace set from the data storage node based on the index of each trace set in the at least one trace set;

[0100] The data processing submodule is used to process the data of each track set in the at least one track set to obtain the data processing results of the corresponding track set.

[0101] Optionally, the first computing node executes K seismic sub-jobs simultaneously by running K computing processes in parallel, where K is an integer greater than 1.

[0102] On the other hand, an execution device for seismic operations is provided, applied to a first output node in a seismic operation execution system. The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The first output node is one of the at least one output nodes. The seismic data to be processed is divided into multiple trace sets by the master node. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, each corresponding one-to-one with a trace set. The device includes:

[0103] The receiving module is used to receive a result acquisition request from a first computing node. The result acquisition request is determined after the first computing node has completed a seismic sub-operation to obtain the data processing result of a tracegear. The first computing node is one of the plurality of computing nodes.

[0104] The result acquisition module is used to acquire the data processing result in the local buffer of the first computing node based on the result acquisition request;

[0105] The storage module is used to store the acquired data processing results to the shared resource pool.

[0106] On the other hand, a computer device is provided, comprising a processor, a communication interface, a memory, and a communication bus. The processor, the communication interface, and the memory communicate with each other via the communication bus. The memory stores computer programs, and the processor executes the programs stored in the memory to implement the steps of the earthquake operation execution method described above. Optionally, the computer device has the functions of one or more nodes selected from the master node, computing node, and output node in the earthquake operation execution system described above.

[0107] On the other hand, a computer-readable storage medium is provided, wherein a computer program is stored therein, and when the computer program is executed by a processor, it implements the steps of the above-described earthquake operation execution method.

[0108] On the other hand, a computer program product containing instructions is provided that, when run on a computer, causes the computer to perform the steps of the earthquake operation execution method described above.

[0109] The technical solutions provided in this application can bring at least the following beneficial effects:

[0110] In this embodiment, the seismic operation execution system can automatically split a seismic operation into multiple seismic sub-operations and process multiple seismic sub-operations in parallel, making full use of the system's storage and computing resources, improving the performance and stability of the seismic operation, and thus effectively improving the processing efficiency of massive seismic data.

[0111] In this system, the master node automatically splits seismic data, avoiding manual splitting by operators and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each node, after completing any requested seismic sub-job, immediately requests the next one. This ensures efficient utilization of computing node resources, preventing any node from becoming idle after processing some sub-jobs. This guarantees load balancing across multiple computing nodes, reducing the total processing time of seismic jobs and improving data processing efficiency. Conversely, if operators manually split seismic data, generating multiple independent seismic jobs, and each computing node processes a fixed portion of these jobs, the load balancing across nodes is difficult to guarantee. Therefore, the processing time for each node to complete all assigned seismic sub-jobs will vary significantly. Since the total processing time for these sub-jobs is calculated based on the time taken to complete the last sub-job, this results in a very long total processing time.

[0112] In addition, each compute node has a local buffer, making full use of the compute node's storage resources. The master node can also fuse the results of all seismic sub-jobs and provide the user with an overall result. However, if the processor manually splits the seismic data to generate multiple independent seismic jobs, the user will receive multiple independent results corresponding to those jobs, and will not receive the desired integrated result. Attached Figure Description

[0113] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0114] Figure 1 This is a schematic diagram of the architecture of an earthquake operation execution system provided in an embodiment of this application;

[0115] Figure 2 This is a schematic diagram of the architecture of another earthquake operation execution system provided in an embodiment of this application;

[0116] Figure 3 This is a flowchart of a method for performing earthquake operations provided in an embodiment of this application;

[0117] Figure 4 This is a schematic diagram of a software structure based on the MapReduce framework provided in an embodiment of this application;

[0118] Figure 5 This is a schematic diagram of the working mechanism of a computing process provided in an embodiment of this application;

[0119] Figure 6 This is a performance diagram of the earthquake operation execution method provided in an embodiment of this application;

[0120] Figure 7 This is a schematic diagram of the structure of an earthquake operation execution device provided in an embodiment of this application;

[0121] Figure 8 This is a schematic diagram of the structure of another earthquake operation execution device provided in an embodiment of this application;

[0122] Figure 9 This is a schematic diagram of the structure of another earthquake operation execution device provided in the embodiments of this application;

[0123] Figure 10 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0124] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0125] The system architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0126] First, the application scenarios involved in the embodiments of this application will be introduced.

[0127] Seismic data processing is a crucial technology in the oil and gas exploration industry. The basic workflow involves generating seismic operations based on seismic data through algorithm modules, executing these operations to process and calculate the acquired seismic data, and obtaining processing results, such as images of subsurface geological structures. These images can then guide subsequent drilling and oil extraction operations.

[0128] With the continuous advancement of exploration technology, the volume of seismic data acquisition has increased rapidly. The amount of seismic data acquired in a single work area can reach hundreds of terabytes (TB) or even petabytes (PB). Clearly, seismic data processing has entered the era of massive data. Currently, massive amounts of seismic data can be processed using seismic data processing systems. These systems are typically both input / output (I / O) intensive and computationally intensive. On one hand, they require substantial storage resources to process raw seismic data through multiple steps, each step inputting and outputting almost the same amount of seismic data. On the other hand, some data processing algorithms are extremely CPU-intensive, requiring high-performance computer clusters. To complete seismic data processing within limited project timelines, most seismic data processing centers have purchased high-performance hardware. However, traditional seismic data processing methods rely on serial modules running serial jobs. Given the current surge in data volume and computational demands, this method is extremely time-consuming and often cannot be completed within the limited project timeline.

[0129] To efficiently complete data processing tasks, current technologies often employ manual data segmentation followed by concurrent execution of multiple serial jobs. Specifically, the operator manually breaks down complete seismic data into multiple data blocks, creating several independent seismic jobs. These jobs are then submitted to multiple computing nodes, each executing a specific portion of the seismic tasks. A single seismic job involves inputting, processing, and outputting data to a data block. Ultimately, the multiple computing nodes complete all data processing and provide the user with the results of each individual seismic job.

[0130] While related technologies accelerate seismic data processing by executing multiple seismic tasks in parallel across multiple computing nodes, achieving parallel I / O access and parallel CPU computation, they also have significant drawbacks in practical scientific research and production.

[0131] First, manually splitting the data and running multiple seismic jobs to process it generates a large amount of data and seismic jobs, placing a heavy burden on data and job management and hindering easy viewing and management by operators. Second, the resulting data volumes are usually fixed, making it difficult to balance the load between jobs and nodes, leading to inconsistent job progress across computing nodes. Furthermore, the seismic data processing flow ends with the latest seismic job completing. Too many data splits make management difficult, while too few splits result in insufficient concurrent jobs, underutilization of cluster resources, and inability to guarantee the total processing time.

[0132] Furthermore, the multiple seismic operations in this technology are independent entities, lacking fault tolerance. That is, if any hardware or software failure causes a seismic operation to abnormally terminate, the operator must resubmit the operation, and the computing node must process it from scratch. This not only wastes computing resources but also increases the workload of operators by requiring them to promptly identify and resubmit failed seismic operations.

[0133] The earthquake operation execution system provided in the embodiments of this application will be described next.

[0134] Figure 1 This is a schematic diagram of the architecture of an earthquake operation execution system provided in an embodiment of this application. See also... Figure 1 The seismic operation execution system includes a master node 101, multiple computing nodes 102, at least one output node 103, and a shared resource pool 104. The multiple computing nodes 102 operate in parallel. The master node 101 establishes communication connections with the multiple computing nodes 102 and with the at least one output node 103. The master node 101 also has access to the shared resource pool 104. The multiple computing nodes 102 establish communication connections with the at least one output node 103. If the at least one output node 103 consists of multiple output nodes, each computing node 102 establishes communication connections with some or all of these output nodes. The at least one output node 103 has access to the shared resource pool 104. Each of the multiple computing nodes 102 also has a local buffer (not shown).

[0135] In this embodiment, the master node 101 runs a master process, each computing node 102 runs at least one computing process, and this embodiment describes the case where each computing node 102 runs multiple computing processes. Each output node 103 runs at least one output process. The master process can communicate with each computing process, and each computing process can communicate with a unique output process.

[0136] Optionally, the master node 101 and one of the plurality of computing nodes 102 belong to the same device, or the master node 101 is an additional device. That is, the master process can run on one of the computing nodes 102 or on an additional device.

[0137] Optionally, the master node 101 and one of the at least one output node 103 belong to the same device, or the master node 101 is an additional device. That is, the master process can run on one of the output nodes 103 or on an additional device.

[0138] Optionally, any output node 103 may belong to the same device as one of the plurality of computing nodes 102, or any output node 103 may be an additional device. That is, any output process may run on the same device as a computing process, or it may run on an additional device.

[0139] It should be noted that, in Figure 1 The example given is that the master node 101 and each computing node 102 are different devices, and the output nodes 103 are also different devices. The output nodes 103 and each computing node 102 are different devices. Figure 1 This is not intended to limit the hardware architecture of the earthquake operation execution system provided in the embodiments of this application. Those skilled in the art can also deploy other forms of hardware architecture based on the above description.

[0140] In this embodiment, the master node 101 is used to receive the execution request of the seismic operation. The execution request indicates the seismic data to be processed. According to the data partitioning rules, the seismic data is split into multiple trace data. Based on the multiple trace data, multiple seismic sub-operations (also referred to as multiple tasks, multiple sub-tasks, or multiple trace tasks, etc.) are generated for the seismic operation. The multiple seismic sub-operations correspond one-to-one with the multiple trace data.

[0141] Each of the multiple computing nodes 102 is used to request at least one seismic sub-job from the master node 101 each time, execute the requested seismic sub-job, and obtain the data processing results of the corresponding trace set. After obtaining the data processing results of each trace set, the obtained data processing results are stored in the local buffer of the corresponding computing node 102, and a result retrieval request is sent to an output node 103. The process of requesting at least one seismic sub-job from the master node 101 is then resumed until the multiple seismic sub-jobs are executed.

[0142] Each of the at least one output node 103 is used to obtain the data processing result in the local buffer of the corresponding computing node 102 when it receives a result acquisition request from a computing node 102, and store the acquired data processing result in the shared resource pool 104.

[0143] The master node 101 is also used to obtain the data processing results of the multiple trace gathers from the shared resource pool 104 after all the multiple seismic sub-jobs have been executed, and to merge the data processing results of the multiple trace gathers to obtain the processing result of the seismic data and return the processing result of the seismic data.

[0144] It should be noted that the system for executing this earthquake operation also includes a client-side application. Figure 1 (Not shown in the image). The client establishes a communication connection with the master node 101. The client is used to send seismic operation execution requests to the master node 101 and to receive the processing results of the seismic data returned by the master node 101.

[0145] In the embodiments of this application, the earthquake operation execution system may also be referred to as an earthquake data processing system, an earthquake operation system, an operation execution system, a computing cluster, a computing center, a data processing center, etc.

[0146] As mentioned above, the master node runs a master process, the compute nodes run compute processes, and the output nodes run output processes. The master process can communicate with each compute process, and each compute process can communicate with a unique output process. Based on this, the following will focus on... Figure 2 Taking this as an example, the execution system for earthquake operations provided in the embodiments of this application will be introduced from the software perspective.

[0147] Figure 2 This is a schematic diagram of the architecture of another earthquake operation execution system provided in an embodiment of this application. See also... Figure 2 The seismic operation execution system has a master node running a master process, multiple computing nodes (including computing nodes 1 to n) running multiple computing processes, and at least one output node (including output nodes 1 to m) running at least one output process. The master process can communicate with each computing process, and each computing process can communicate with a unique output process.

[0148] The main process is used for data splitting, job generation, and result fusion, thus implementing the functions of the master node mentioned above. Each of the multiple computing processes requests a seismic subjob from the master node, executes it, and then requests the next seismic subjob, continuing until all seismic subjobs are completed. Each computing process stores the data processing results obtained from the completed seismic subjobs in its local buffer. Furthermore, each computing process, after completing a seismic subjob and obtaining the corresponding data processing results, sends a result retrieval request to an output process. Each output process, upon receiving a result retrieval request from a computing process, retrieves the data processing results from the local buffer of the corresponding computing node and stores the retrieved results in the shared resource pool.

[0149] Optionally, the execution system for this seismic operation adopts the MapReduce framework, with the main process being the Master process, the computation process being the Map process, and the output process being the Reduce process. That is, this application provides a method and system for executing seismic operations based on the MapReduce framework, capable of automatically processing multiple seismic sub-jobs in parallel, fully utilizing the storage and computing resources of the computing cluster, improving the performance and stability of seismic operation, and thus effectively improving the processing efficiency of massive seismic data.

[0150] The MapReduce framework is a programming paradigm based on the Hadoop distributed parallel framework, employing YARN (Yet Another Resource Negotiator), a job scheduler capable of managing jobs for individual processes. It boasts excellent fault tolerance and load balancing capabilities, and its unique distributed data management method improves data I / O performance. The MapReduce computing model is easy to develop; developers only need to focus on the Map and Reduce operations, reducing programming complexity. Therefore, the earthquake operation execution method provided in this application is applicable to most existing conventional serial modules, which can achieve automatic parallel operation without any optimization or modification, saving development costs.

[0151] The following is a detailed explanation of the earthquake operation execution method provided in the embodiments of this application.

[0152] Figure 3This is a flowchart illustrating a seismic operation execution method provided in an embodiment of this application. This method can also be referred to as a seismic data processing method. The method is applied to a seismic operation execution system, which includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The multiple computing nodes operate in parallel. Please refer to... Figure 3 The method includes the following steps.

[0153] Step 301: The master node receives an execution request for the seismic operation, which indicates the seismic data to be processed.

[0154] In this embodiment of the application, a user (such as a processor) sends an execution request for seismic operations to the master node through a client. The master node receives the execution request sent by the client, which indicates the seismic data to be processed.

[0155] For example, the seismic operation execution system provides a login interface to users, such as a web login interface or an application programming interface (API). Users log in to the seismic operation execution system on the client through this login interface. The client displays a front-end interface where users can perform seismic data-related operations. For example, users select the name of the seismic operation file to be processed on the front-end interface and make relevant settings for the seismic operation. Then, users click the submit button on the front-end interface to trigger the client to submit the execution request for the seismic operation to the master node. This execution request can carry the aforementioned seismic operation file name and relevant data set by the user.

[0156] Optionally, the total number of computing nodes included in the seismic operation execution system is greater than or equal to the aforementioned number of computing nodes, and the seismic operation execution request further indicates the total number of computing nodes required to process the seismic data. Based on this, after receiving the execution request, the master node, according to the total number of computing nodes required to process the seismic data, determines the multiple computing nodes from all computing nodes included in the seismic operation execution system according to a load balancing strategy. That is, the seismic operation execution system includes many computing nodes; the user can specify the total number of computing nodes required for this seismic operation, and the master node selects the appropriate number of computing nodes according to a load balancing strategy to improve the processing efficiency of the seismic data through the selected multiple computing nodes.

[0157] The load balancing strategy may include one or more of the following: total resources of the computing node, remaining resources (i.e., idle resources), current load status, and hardware and software performance.

[0158] Optionally, the execution request for the seismic operation also indicates the number of computing processes to be started by each computing node required to process the seismic data. Based on this, after receiving the execution request, the master node controls the multiple computing nodes to start the corresponding number of computing processes based on the number of computing processes required to process the seismic data. That is, the user can also specify the number of computing processes to be started by each computing node for this seismic operation.

[0159] Optionally, the computing processes initiated by each of the multiple computing nodes can run in parallel, thereby improving data processing efficiency. For example, the user may specify that each of the multiple computing nodes initiates 50 computing processes, and these 50 computing processes on each computing node need to run in parallel.

[0160] It should be noted that if the execution request for the seismic operation does not specify (e.g., the user does not specify) the total number of computing nodes required to process the seismic data, the master node determines all computing nodes included in the seismic operation execution system as the multiple computing nodes required to process the seismic data. Alternatively, in this case, the master node determines the multiple computing nodes required to process the seismic data from all computing nodes included in the seismic operation execution system based on the total amount of seismic data and according to a load balancing strategy. Alternatively, the master node determines the multiple computing nodes required to process the seismic data from all computing nodes included in the seismic operation execution system through other methods.

[0161] If the execution request for the seismic operation does not specify (e.g., if the user does not specify) the number of computing processes to be started by each computing node required to process the seismic data, the master node controls each of the multiple computing nodes to start the maximum or default number of computing processes.

[0162] It should be understood that the user-configured data may include the total number of computing nodes required to process the seismic data and / or the number of computing processes initiated by each computing node required to process the seismic data, as described above. In addition, the user-configured data may include other content, which will be discussed below.

[0163] Optionally, the execution request for the seismic operation also specifies a temporary file storage path. This temporary file storage path refers to the path on the compute node used to store the local buffer containing the processed data. Specifically, the temporary file storage path can be a user-specified path or a system default path. That is, user-defined data may also include a temporary file storage path.

[0164] Optionally, the seismic operation execution request may also specify a gather partitioning keyword. The gather partitioning keyword is used to indicate the data partitioning rules (i.e., data partitioning method) for splitting seismic data by the master node. The value range of the gather partitioning keyword includes a system default value and multiple first-specified values. These multiple first-specified values ​​are user-specified values. For example, the system default value is -1, and the multiple first-specified values ​​include 0 to 4. It should be understood that the relevant data set by the user may also include a gather partitioning keyword.

[0165] Optionally, the seismic operation execution request also indicates a gather flag keyword. The gather flag keyword is also used to indicate the rules for splitting seismic data by the master node. The value range of the gather flag keyword includes multiple second specified values. These multiple second specified values ​​are user-specified values. For example, these multiple second specified values ​​include 0 to 4. It should be understood that the relevant data set by the user may also include a gather flag keyword.

[0166] It should be noted that the user-specified gather partitioning keywords have a higher priority than the gather flag keywords; that is, the priority of the multiple first specified values ​​is higher than the priority of the multiple second specified values. The gather flag keywords are effective when the gather partitioning keyword value indicated in the seismic operation execution request is the system default value. The gather flag keywords are ineffective when the gather partitioning keyword value indicated in the seismic operation execution request is any one of the multiple first specified values.

[0167] Optionally, the user can specify either the Daoji flag keyword or the Daoji division keyword. Alternatively, the Daoji flag keyword must be specified, while the Daoji division keyword can be specified selectively.

[0168] Step 302: The master node divides the seismic data into multiple gathers according to the data partitioning rules.

[0169] In this embodiment of the application, after receiving the execution request for the seismic operation, the master node can automatically divide the seismic data into multiple gathers according to the data partitioning rules.

[0170] Optionally, the seismic data includes data from multiple seismic traces, each of which has an index. Each index includes multiple attributes for the corresponding seismic trace, and the data partitioning rule refers to a rule for sorting according to the value of at least one target attribute among these multiple attributes. Based on this, one implementation process for the master node to divide the seismic data into multiple trace sets according to the data partitioning rule includes: the master node sorts the indices of the multiple seismic traces according to the data partitioning rule to obtain multiple sorted indices; if the value of at least one target attribute in the (i+1)th sorted index is the same as the value of at least one target attribute in the ith index, then the master node assigns the data of the seismic trace corresponding to the (i+1)th index to the m-th trace set, where the m-th trace set refers to the trace set to which the data of the seismic trace corresponding to the ith index belongs, and i and m are both integers not less than 1; if the value of at least one target attribute in the ith index is different from the value of at least one target attribute in the (i+1)th index, then the master node assigns the data of the seismic trace corresponding to the (i+1)th index to the (m+1)-th trace set.

[0171] Among them, the attributes of the seismic trace include shot number, trace number, work area number, survey line, etc.

[0172] When at least one target attribute includes the shot number, the master node sorts the indices of the multiple seismic traces according to the shot number. For example, the multiple seismic traces include trace a01, trace a02, trace b01, and trace x09, with corresponding indices of [Shot 2, Trace 1, Work Zone 1], [Shot 1, Trace 2, Work Zone 1], [Shot 1, Trace 1, Work Zone 1], and [Shot 3, Trace 1, Work Zone 5], respectively. After the master node sorts the indices of the multiple seismic traces in ascending order of shot number, the resulting four sorted indices are [Shot 1, Trace 2, Work Zone 1], [Shot 1, Trace 1, Work Zone 1], [Shot 2, Trace 1, Work Zone 1], and [Shot 3, Trace 1, Work Zone 5].

[0173] When at least one target attribute includes a trace number or work area number, the process by which the master node sorts the indexes of the multiple seismic traces is similar in principle to the sorting process when at least one target attribute includes a shot number, and will not be elaborated here.

[0174] When at least one target attribute includes both shot number and trace number, the master node sorts the indices of the multiple seismic traces in order of shot number and trace number. Taking the multiple seismic traces including the aforementioned seismic traces a01, a02, b01, and x09 as an example, the master node first sorts the indices of the multiple seismic traces in ascending order of shot number, and then in ascending order of trace number. The resulting four sorted indices are [Shot 1, Trace 1, Work Area 1], [Shot 1, Trace 2, Work Area 1], [Shot 2, Trace 1, Work Area 1], and [Shot 3, Trace 1, Work Area 5].

[0175] In cases where at least one target attribute sequentially includes shot number and work area number, or sequentially includes track number and work area number, or sequentially includes track number and shot number, or sequentially includes work area number and shot number, or sequentially includes work area number and shot number, or sequentially includes shot number, track number and work area number, or sequentially includes shot number, track number and work area number, or other cases, the process of the master node sorting the indexes of the multiple seismic traces is similar to the sorting process described above, and will not be repeated here.

[0176] Optionally, the seismic data includes multiple input data sets, each containing data from a subset of seismic traces. The seismic trace data included in each input data set does not overlap. Based on this, one implementation process for the master node to sort the indices of these multiple seismic traces according to data partitioning rules to obtain sorted indices includes: the master node sorts the indices of the seismic traces in each input data set according to the data partitioning rules, and then sorts the sorted indices of the seismic traces in the multiple input data sets to obtain sorted indices. That is, the master node first performs an internal sorting of the indices of the seismic traces in each input data set, and then performs a comprehensive sorting of the corresponding indices across the multiple input data sets.

[0177] Taking the earthquake data as an example, which includes three input data points, the first input data includes the data of earthquake traces a01 and a02, with indices of [shot 2, trace 1, work area 1] and [shot 1, trace 2, work area 1], respectively. The second input data includes the data of earthquake traces b01, b02, and b03, with indices of [shot 1, trace 4, work area 1], [shot 50, trace 1, work area 4], and [shot 3, trace 2, work area 4], respectively. The third input data includes the data of earthquake traces c01 and c02, with indices of [shot 12, trace 3, work area 11] and [shot 11, trace 5, work area 1], respectively.

[0178] Taking the case where at least one target attribute includes the shot number as an example, the master node sorts the indices of the seismic traces in the first input data according to the shot number, resulting in the sorted indices being [Shot 1, Trajectory 2, Work Zone 1] and [Shot 2, Trajectory 1, Work Zone 1]. The master node sorts the indices of the seismic traces in the second input data according to the shot number, resulting in the sorted indices being [Shot 1, Trajectory 4, Work Zone 1], [Shot 3, Trajectory 2, Work Zone 4], and [Shot 50, Trajectory 1, Work Zone 4]. The master node sorts the indices of the seismic traces in the third input data according to the shot number, resulting in the sorted indices being [Shot 11, Trajectory 5, Work Zone 1] and [Shot 12, Trajectory 3, Work Zone 11]. Then, the master node sorts the sorted indexes of the seismic traces in these three input data, resulting in multiple sorted indexes as follows: [Shot 1, Trace 2, Work Area 1], [Shot 1, Trace 4, Work Area 1], [Shot 2, Trace 1, Work Area 1], [Shot 3, Trace 2, Work Area 4], [Shot 11, Trace 5, Work Area 1], [Shot 12, Trace 3, Work Area 11], [Shot 50, Trace 1, Work Area 4].

[0179] In this embodiment, after obtaining multiple sorted indices, the master node determines multiple trace sets by traversing these indices in a forward direction. For example, the master node first obtains the first two sorted indices. If at least one target attribute value in these two indices is the same, the master node assigns the data of the seismic traces corresponding to these two indices to the first trace set. If at least one target attribute value in these two indices is different, the master node assigns the data of the seismic traces corresponding to the first index to the first trace set and the data of the seismic traces corresponding to the second index to the second trace set. Then, the master node obtains the third sorted index. If at least one target attribute value in the third index is the same as at least one target attribute value in the second index, the master node assigns the data of the seismic traces corresponding to the third index to the same trace set as the data of the seismic traces corresponding to the second index. If at least one target attribute value in the third index is different from at least one target attribute value in the second index, the master node assigns the data of the seismic traces corresponding to the third index to the next trace set. This process continues until the master node assigns the data of the seismic traces corresponding to the last sorted index to the last trace set.

[0180] For example, taking the sorted indices as [Artillery 1, Track 2, Work Area 1], [Artillery 1, Track 4, Work Area 1], [Artillery 2, Track 1, Work Area 1], [Artillery 3, Track 2, Work Area 4], [Artillery 3, Track 5, Work Area 1], [Artillery 12, Track 3, Work Area 11], [Artillery 12, Track 1, Work Area 4], where at least one target attribute includes the artillery number, the master node determines a total of 4 track sets by forward traversing these multiple indices. The seismic track index in the first track set includes the first two sorted indices, the seismic track index in the second track set includes the third sorted index, the seismic track index in the third track set includes the fourth and fifth sorted indices, and the seismic track index in the fourth track set includes the sixth and seventh sorted indices.

[0181] As described above, in one implementation, the seismic operation execution request also indicates a gather partitioning key, which is used to instruct the master node on the data partitioning rules for splitting the seismic data. The value range of the gather partitioning key includes a system default value and multiple first specified values. Based on this, before the master node divides the seismic data into multiple gathers according to the data partitioning rules, if the value of the gather partitioning key is any one of the multiple first specified values, the master node determines the gather partitioning key as a sorting key, which is used to indicate the data partitioning rules.

[0182] For example, taking a system default value of -1, and the multiple first specified values ​​including 0 to 4, optionally, 0 corresponds to {shot number}, 1 corresponds to {track number}, 2 corresponds to {work zone number}, 3 corresponds to {shot number and track number}, and 4 corresponds to {track number and shot number}. When the value of the track set partitioning key is 0, the master node determines the track set partitioning key 0 as the sorting key. The data partitioning rule indicated by this sorting key refers to the rule of sorting the seismic trace index according to the shot number.

[0183] As mentioned above, in one implementation, the seismic operation execution request also specifies a gather flag keyword, the value of which includes multiple second specified values. Based on this, if the gather partitioning keyword is the system default value, the master node determines this gather flag keyword as the sorting keyword. That is, if the user does not specify a gather partitioning keyword, the master node will split the seismic data according to the data partitioning rules indicated by the gather flag keyword.

[0184] For example, the plurality of second specified values ​​include 0 to 4, where 0 corresponds to {shot number, track number, and work area number}, 1 corresponds to {track number, shot number, and work area number}, 2 corresponds to {shot number, work area number, and track number}, 3 corresponds to {track number, work area number, and shot number}, and 4 corresponds to {work area number, shot number, and track number}. When the track set partitioning key value is the system default value (-1) and the track set flag key value is 1, the master node determines the track set flag key 1 as the sorting key. The data partitioning rule indicated by this sorting key refers to the rule of sorting the seismic track indexes sequentially according to track number, shot number, and work area number.

[0185] Optionally, the multiple first specified values ​​correspond one-to-one with multiple first trace set partitioning rules, and the multiple second specified values ​​correspond one-to-one with multiple second trace set partitioning rules. All of the multiple first trace set partitioning rules and the multiple second trace set partitioning rules are different, with the partitioning granularity of the first trace set partitioning rules being larger than that of the second trace set partitioning rules. It should be understood that in this case, if the user specifies a trace set partitioning keyword, the granularity of the seismic data splitting is coarser, resulting in a smaller total number of subsequently generated seismic sub-jobs. If the user specifies a trace set flag keyword, the granularity of the seismic data splitting is finer, resulting in a larger total number of subsequently generated seismic sub-jobs. A larger total number of seismic sub-jobs is more conducive to load balancing across multiple computing nodes. A smaller total number of seismic sub-jobs is more conducive to subsequent result fusion.

[0186] Alternatively, the multiple first track set partitioning rules are the same as the multiple second track set partitioning rules, but the first specified value and the second specified value set by the user this time are different. The partitioning granularity of the first track set partitioning rule corresponding to the first specified value set this time is greater than or less than the partitioning granularity of the second track set partitioning rule corresponding to the second specified value set this time. For example, the multiple first specified values ​​and the multiple second specified values ​​all include 0 to 4, where 0 corresponds to {fire number}, 1 corresponds to {track number}, 2 corresponds to {work area number}, 3 corresponds to {fire number and track number}, and 4 corresponds to {track number and fire number}. In this case, the first specified value set by the user this time can be less than the second specified value set this time. Of course, the first specified value set by the user this time can also be greater than or equal to the second specified value set this time.

[0187] Optionally, the seismic operation execution request also indicates the value range of each target attribute among the at least one target attribute mentioned above. Based on the value range of each target attribute indicated by the seismic operation execution request, the master node removes data from seismic traces whose target attribute values ​​included in the index of the multiple seismic traces are not within the corresponding value range. The master node sorts the indexes of the remaining seismic traces, and subsequently, the multiple computing nodes process the data of the remaining seismic traces. In simple terms, the user can specify the data range to be processed for the local seismic operation.

[0188] For example, if the target attribute is the shot number, and the shot number ranges from 0 to 30, then the master node will remove the data of seismic traces whose shot numbers are not in the range of 0 to 30.

[0189] It should be noted that when the master node divides the seismic data into multiple trace sets, it means that the seismic data stored on the data storage node has been divided into multiple trace sets, but the seismic data stored on the data storage node has not been retrieved. In other words, the storage location of each data point within the data storage node remains unchanged.

[0190] Step 303: Based on the data from the multiple trace gathers, the master node generates multiple seismic sub-jobs for the seismic operation and sends job processing requests to the multiple computing nodes. The multiple seismic sub-jobs correspond one-to-one with the data from the multiple trace gathers.

[0191] In this embodiment, after dividing the seismic data into multiple trace sets, the master node generates multiple seismic sub-jobs based on the data from these multiple trace sets; that is, it generates corresponding seismic sub-jobs for each trace set. The master node sends job processing requests to these multiple computing nodes to instruct them to execute the multiple seismic sub-jobs.

[0192] Optionally, the job processing request may include information such as the seismic job file name and the seismic job number. The seismic job file name refers to the user-defined file name, which may or may not be unique. The seismic job number is a unique job identifier automatically generated by the system. The seismic job number can be generated after the client sends the seismic job execution request to the master node, or it can be generated at other times.

[0193] As can be seen from the foregoing, in one implementation of the application embodiment, the earthquake operation execution system adopts the MapReduce framework, and the master node runs a master process, which is used to execute the corresponding operations of steps 301 to 303 above.

[0194] Step 304: Each of the multiple computing nodes requests at least one seismic sub-job from the master node based on the job processing request, executes the requested seismic sub-job, and obtains the data processing results of the corresponding trace collection. After obtaining the data processing results of each trace collection, the obtained data processing results are stored in the local buffer of the corresponding computing node, and a result retrieval request is sent to an output node. The process then returns to the step of requesting at least one seismic sub-job from the master node until the multiple seismic sub-jobs are executed.

[0195] Taking the first computing node as an example, after receiving the sub-job processing request, the first computing node requests at least one seismic sub-job from the master node to obtain the index of at least one trace set corresponding to the at least one seismic sub-job. Based on the index of the at least one trace set, the first computing node executes the requested seismic sub-job to obtain the data processing result of the at least one trace set. Here, the first computing node is any one of the plurality of computing nodes, and the at least one trace set is a trace set among the plurality of trace sets.

[0196] Each time the first computing node obtains the data processing result of a tracegear, it stores the result in its local buffer and sends a result retrieval request to the first output node. This request instructs the output node to retrieve the data processing result from the first computing node's local buffer and store it in the shared resource pool. The node then returns to the main node to request at least one seismic sub-job, continuing this process until all seismic sub-jobs have been executed. The first output node is one of these at least one output node.

[0197] It should be understood that the first computing node can process K seismic sub-jobs in parallel. After the first computing node completes the execution of a seismic sub-job to obtain the data processing results of the corresponding trace, it requests the seismic sub-job again from the master node. This ensures that the first computing node is always running K seismic sub-jobs in parallel, that is, it ensures that the computing resources of the first computing node are not wasted, thereby improving data processing efficiency.

[0198] Optionally, the first computing node executes K seismic sub-jobs simultaneously by running K computing processes in parallel, where K is an integer greater than 1.

[0199] For example, the first computing node initially requests K seismic subjobs from the head node. These K seismic subjobs are executed by K computing processes, and the processing progress of these K seismic subjobs is different. After a computing process completes one seismic subjob, it requests the next seismic subjob from the master node again, thereby ensuring that the computing process is always in a working state.

[0200] Furthermore, it should be understood that after the first computing node completes each seismic sub-job to obtain the data processing results of the corresponding gathers and stores the results in its local buffer, it sends a result retrieval request to the first output node. This request instructs the first output node to retrieve the data processing results from the first computing node's local buffer and store them in the shared resource pool. In short, each time the first computing node obtains a data processing result, it notifies an output node to retrieve that result.

[0201] For example, the first computing node runs K computing processes in parallel, and the at least one output node runs at least one output process. Each of the K computing processes corresponds to one output process. Each time a computing process obtains a data processing result, it sends a result retrieval request to the corresponding output process to instruct the output process to retrieve the data processing result from the local buffer of the first computing node.

[0202] As can be seen from the foregoing, in one implementation of the application embodiment, the earthquake operation execution system adopts the MapReduce framework, and the multiple computing nodes run multiple computing processes, which are Map processes, and the Map processes are used to execute the corresponding operations in step 304.

[0203] As mentioned above, seismic data is stored in data storage nodes. Based on this, the first computing node executes the requested seismic sub-job based on the index of the at least one trace set to obtain the data processing results of the at least one trace set. The process includes: the first computing node retrieving the data of the corresponding trace set from the data storage node based on the index of each trace set in the at least one trace set; and the first computing node processing the data of each trace set in the at least one trace set to obtain the data processing results of the corresponding trace set.

[0204] For example, the index of each gather includes multiple attributes, such as shot number, track number, work area number, survey line, etc. The first computing node retrieves the data of the at least one gather from the data storage node based on the multiple attributes included in the index of the at least one gather.

[0205] Optionally, the first computing node retrieves the data of the at least one trace set from the data storage node based on the index of the at least one trace set, as well as information such as the seismic operation file name and seismic operation number.

[0206] It should be noted that, apart from the first computing node, all other computing nodes among these multiple computing nodes execute the seismic sub-jobs in the same way as the first computing node. These multiple computing nodes run in parallel, and the multiple computing processes running on each computing node also run in parallel, thereby ensuring load balancing among multiple computing nodes, maximizing data processing efficiency, and reducing the total processing time.

[0207] The earthquake operation execution system provided in this embodiment also has fault tolerance capabilities. This will be described below.

[0208] Optionally, the status of the seismic sub-jobs currently being executed among the multiple seismic sub-jobs is "processing," the status of the seismic sub-jobs that have not been processed is "pending processing," and the status of the seismic sub-jobs that have been completed is "processed." It should be understood that the master node can determine the status of each seismic sub-job among the multiple seismic sub-jobs. For example, the master node determines the status of each seismic sub-job by collecting the sub-job processing progress of each computing node.

[0209] The initial state of these multiple seismic sub-jobs is "Pending". After the first compute node requests a seismic sub-job from the master node, the master node changes the status of the seismic sub-job from "Pending" to "Processing". After the first compute node completes a seismic sub-job and sends a sub-job completion notification to the master node, the master node changes the status of the seismic sub-job from "Processing" to "Processed". If it is determined that the first seismic sub-job failed, the master node changes the status of the first seismic sub-job from "Processing" to "Pending". The first seismic sub-job is one of the multiple seismic sub-jobs.

[0210] Optionally, if the first computing node fails to execute the first seismic sub-job, the first computing node sends an execution failure notification to the master node. Upon receiving the execution failure notification from the first computing node, the master node determines that the first seismic sub-job has failed. That is, even if the first computing node is still online (e.g., the computing process has exited, but the entire machine is still online), the first computing node notifies the master node of the execution failure of the first seismic sub-job by sending an execution failure notification to the master node.

[0211] Alternatively, if a failure is detected in the first compute node, the master node determines that the first seismic sub-job has failed. The master node determines the failure by checking the communication connection with the first compute node; for example, the master node determines the failure if it detects a disconnection in the communication connection. In other words, if the first compute node is offline (e.g., due to a system failure), the master node determines the failure of the first seismic sub-job by checking the communication connection with it. Since the master node can collect the processing progress of each seismic sub-job in real time, when the master node detects a failure in the first compute node, the status of seismic sub-jobs that the first compute node has already completed is already marked as processed by the master node, while the status of seismic sub-jobs that the first compute node has requested but not yet completed will be changed from "processing" to "pending" by the master node.

[0212] It should be noted that the first seismic sub-operation may fail due to software and / or hardware failure of the first computing node, data errors, or other reasons.

[0213] It should also be noted that when the total number of failed executions of the first seismic sub-job reaches a threshold, the master node will change the status of the first seismic sub-job to "processed". The data processing result of the first trace set obtained by the computing node that last executed the first seismic sub-job indicates that the data processing of the first trace set failed. The first trace set refers to the trace set corresponding to the first seismic sub-job. The threshold can be a value of 1, 3, or 5, etc.

[0214] Step 305: Each output node in the at least one output node receives a result retrieval request from a computing node, retrieves the data processing result from the local buffer of the corresponding computing node, and stores the retrieved data processing result in the shared resource pool.

[0215] As described above, each computing node, upon obtaining the data processing result of a trace set, stores the result in its local buffer and sends a result retrieval request to an output node. Taking the first computing node and the first output node as an example, the first computing node, upon obtaining the data processing result of a trace set, stores the result in its local buffer and sends a result retrieval request to the first output node. Based on this, after receiving the result retrieval request from the first computing node, the first output node retrieves the data processing result from the first computing node's local buffer. The first output node then stores the retrieved data processing result in the shared resource pool. Here, the first output node is one of the at least one output node, and the first computing node is one of the plurality of computing nodes.

[0216] For example, a first computing node runs K computing processes in parallel, and the at least one output node runs at least one output process. Each of the K computing processes corresponds to one output process. Taking the first computing process of these K computing processes corresponding to the first output process running on the first computing node as an example, each time the first computing process obtains a data processing result, it sends a result retrieval request to the first output process. The first output process retrieves the data processing result from the local buffer of the first computing node.

[0217] Step 306: After all the multiple seismic sub-jobs have been executed, the master node obtains the data processing results of the multiple trace gathers from the shared resource pool, merges the data processing results of the multiple trace gathers to obtain the processing result of the seismic data, and returns the processing result of the seismic data.

[0218] In this embodiment, the at least one output node stores the data processing results of each of the acquired trace sets in a shared resource pool. Since the master node can determine the status of each of the multiple seismic sub-operations, it determines that all multiple seismic sub-operations have been completed when all of them are in the "processed" state. Afterward, the master node retrieves the data processing results of the multiple trace sets from the shared resource pool.

[0219] In order to provide users with a comprehensive result of seismic data processing, the master node merges the data processing results of multiple gathers to obtain the processing result of the seismic data, and returns the processing result of the seismic data to the client.

[0220] Optionally, the master node merges the data processing results of multiple trace gathers according to the user's desired output data. For example, if the user specifies that the desired output data includes the average seismic amplitude of multiple seismic traces, then the master node takes the average of the seismic amplitudes included in the data processing results of the multiple trace gathers to obtain the average seismic amplitude of the multiple seismic traces.

[0221] Optionally, the data processing results of the multiple gathers also include multiple job log files. The master node can also merge these multiple job log files to obtain a comprehensive job list log file. In addition, the master node can also integrate other information, such as determining the total operation time and the total number of seismic data traces, which will not be described in detail in this embodiment.

[0222] The execution method of seismic operations provided in this application embodiment will be explained again by way of example based on the MapReduce framework. The execution method of seismic operations based on the MapReduce framework includes the following steps:

[0223] Step 1: The main process initializes the earthquake operation environment.

[0224] The master process is responsible for parsing the overall information of the seismic operation to be run by the user, seismic operation parsing, seismic data gather partitioning, starting the working processes at each node, establishing the seismic operation runtime environment, calculating task management and scheduling, reporting operation progress, and merging seismic data. There can only be one master process in the system. The master process initializes the seismic operation runtime environment through the following steps:

[0225] Step 1.1: The main process parses the node list file. The main process parses the compute node list file using the job execution script to obtain the names of all compute nodes required by the job and the number of job processes to be started for each node. The job processes include compute processes and output processes. The compute node list file is determined using a load balancing strategy.

[0226] Step 1.2: The master process starts the job processes. Based on the compute node name obtained in Step 1.1 and the number of job processes to be started on each compute node, the master node starts the corresponding number of compute processes (i.e., Map processes) and output processes (i.e. Reduce processes) on the corresponding compute nodes.

[0227] The Mapper process is responsible for seismic job analysis, data input, and data processing. Multiple Mapper processes exist in the runtime system, accounting for the vast majority of all processes in the job. The Reduce process is responsible for outputting the data processing results. There are typically multiple Reduce processes; however, they may be absent if the job does not require outputting data processing results.

[0228] Step 1.3: The main process acquires the seismic operation environment parameters. This prepares for establishing the subsequent operation execution environment. The specific steps are as follows:

[0229] Step 1.3.1: Obtain the seismic job name. This involves obtaining the filename of the seismic job provided by the user. The seismic job filename is used to read the seismic job and prepare for seismic job parsing.

[0230] Step 1.3.2: Obtain the seismic job number. This involves obtaining the unique seismic job number assigned by the system. This seismic job number serves as the unique identifier for the job. The seismic job number and the seismic job file name can be used together as the naming criteria for the job log file.

[0231] Step 1.3.3: Obtain the temporary file storage path. This involves obtaining the user-specified temporary file storage path. The temporary file storage path is used by the compute node to temporarily store data processing results in its local buffer.

[0232] Step 1.3.4: Obtain gather partitioning keywords. This involves obtaining the gather partitioning keywords. The gather partitioning keywords indicate the rules for splitting seismic data. Their values ​​range from -1 to 4, where -1 represents the system default value; 0 to 4 represent multiple first-specified values, i.e., the first to fifth keywords specified by the user.

[0233] Step 1.4: The main process sets the job runtime environment parameters. The specific steps are as follows:

[0234] Step 1.4.1: Mark the current working process environment as Master. In execution control, perform master process-related operations based on this marker.

[0235] Step 1.4.2: Create a MapReduce job class object.

[0236] Step 1.4.3: Set the job I / O cache size, i.e. the maximum cache size of the local buffer.

[0237] Step 1.4.4: Set the job working directory. If the temporary file storage path obtained in Step 1.3.3 is not empty and the user has specified a temporary file storage path, the main process sets this path as the job working directory. If the temporary file storage path obtained in Step 1.3.3 is empty, the main process automatically sets the job working directory to a temporary file storage path already configured in the system.

[0238] Step 1.4.5: Set the Mapper and Reducer classes used in the task.

[0239] Step 1.5: The main process starts the job progress reporting function. This function is used by the main process to periodically obtain the progress of each computing process and each output process to determine the job status. The progress can be printed in the job log file.

[0240] Step 2: The main process acquires earthquake operation parameters.

[0241] The main process acquires overall information about the seismic operation and its input / output data to prepare for task allocation, data management, and subsequent merging of operation list files and seismic data. The specific steps are as follows:

[0242] Step 2.1: Create an earthquake operation execution control object and set the operation name and operation number parameters for the object.

[0243] Step 2.2: Use the seismic operation execution control object to run the seismic operation analysis phase.

[0244] Step 2.3: During the seismic operation analysis phase, the execution control system and input / output modules in the main process are used to set up operation and data-related information. The specific steps are as follows:

[0245] Step 2.3.1: Configure the control system to set the work items, work areas, survey lines, and database names.

[0246] Step 2.3.2: The input module sets the data name, item, work area, and survey line for each input data. Input data refers to the data included in the seismic data.

[0247] Step 2.3.3: Set the data name, project, work area, and survey line for each output data in the output module. Output data refers to the data processing result corresponding to the input data.

[0248] Step 2.4: The main process obtains the job and data information set in each step listed in Step 2.3.

[0249] Step 3: The main process performs gather partitioning of the seismic data.

[0250] The main process, based on the input data and according to user-specified or default rules, divides the seismic data into multiple independently processable trace sets. These trace sets are then packaged into several independently runnable and manageable tasks, i.e., multiple seismic sub-jobs. Each seismic sub-job serves as a basic unit and is subsequently sent to the computation process for execution. The specific steps are as follows:

[0251] Step 3.1: The main process's input module obtains the user-defined module parameters through decoding. The obtained module parameters include the seismic data names of all input data, the user-specified gather partitioning keywords, the value range of the target attributes, and the gather flag keywords.

[0252] Step 3.2: The input module of the main process sets the sorting key. This notifies the task partitioning module of the main process which key to use as the data partitioning rule. The specific steps are as follows:

[0253] Step 3.2.1: Check the Dao set partitioning key obtained in step 1.3.4. If the value of the Dao set partitioning key is between 0 and 4 (i.e., the first to fifth key), then set the Dao set partitioning key as the sorting key.

[0254] Step 3.2.2: If the value of the obtained Dao set partitioning key is -1 (i.e., the system default value), then parse the Dao set flag key obtained in step 3.1 and set the Dao set flag key as the sorting key.

[0255] Step 3.3: The main process's input module obtains the indexes of all seismic traces included in the input data and provides them to the main process's task partitioning module. The specific steps are as follows:

[0256] Step 3.3.1: Create a seismic data index array to store the index of each seismic trace. The initial number of elements in this array is 0.

[0257] Step 3.3.2: Open the first input data, and based on the value range of the target attribute obtained in Step 3.1, obtain the index of all seismic traces in the input data, and add the obtained index to the seismic data index array.

[0258] Step 3.3.3: Open the next input data and perform the same operations as in Step 3.3.2 to add the indices of all seismic traces in this input data to the seismic data index array. Continue in this manner until the final seismic data index array contains the indices of all seismic traces.

[0259] Step 3.3.4: Sort all the seismic traces in the seismic data index array according to the sorting key to obtain multiple sorted indices.

[0260] Step 3.4: Seismic Data Gathering. The main process's task partitioning module splits the seismic data into multiple gathers based on the seismic data index array. The specific steps are as follows:

[0261] Step 3.4.1: Create and initialize an array of seismic data gathers. The array has an initial number of 0 elements, and each element in the array represents a gather.

[0262] Step 3.4.2: Start from the beginning and traverse the seismic data index array in a forward direction to obtain the index of each seismic trace.

[0263] Step 3.4.3: If the value of the target attribute in the (i+1)th index after sorting is the same as the value of the target attribute in the i-th index, then the data of the seismic trace corresponding to the (i+1)th index is assigned to the m-th trace set. The m-th trace set refers to the trace set to which the data of the seismic trace corresponding to the i-th index belongs, where i and m are both integers not less than 1; if the value of at least one target attribute in the i-th index is different from the value of at least one target attribute in the (i+1)th index, then the master node assigns the data of the seismic trace corresponding to the (i+1)th index to the (m+1)-th trace set.

[0264] In other words, retrieve the indices of the two seismic traces and compare the values ​​of the target attributes indicated by the sorting key. If the values ​​are the same, the data of the two seismic traces are considered to belong to the same trace set; if the values ​​are different, the division of a trace set is considered to be complete, the data of the previous seismic trace is the last trace of the determined trace set, and the data of the next seismic trace is the first trace of the new trace set.

[0265] Step 3.4.4: Add the completed gathers to the seismic data gather array.

[0266] Step 3.5: Traverse the seismic data gather array, convert the information of each gather (including the index of the seismic trace and the value range of the target attribute) into MapReduce task information and submit it.

[0267] Step 4: The computing process performs data input and processing.

[0268] Multiple computing processes are launched on multiple computing nodes and managed and scheduled by the MapReduce framework. These processes obtain seismic sub-jobs from the main process and, based on the trace information corresponding to each sub-job, implement seismic data input and processing through the execution control thread within the computing process. The specific steps are as follows:

[0269] Step 4.1: Create a new thread to run the seismic subjob. An execution control thread is created within the computation process. Within this thread, a job execution control class object is created, and the job execution interface is executed through this object. The computation process's input module awaits information from the trace gathers to be input.

[0270] Step 4.2: The computation process acquires a seismic subjob, extracts the information of the corresponding trace gather, and passes it to the input module. Specifically, the Map interface in the computation process is executed, and the job information for this execution is obtained according to the Map interface parameters. The job information is then converted into the information of the corresponding trace gather (i.e., the index), and the information of the corresponding trace gather is passed to the input module in the execution control thread that is waiting for data information through the Map interface.

[0271] Step 4.3: The input module of the computation process reads the data of the gather from the data storage node based on the acquired gather information and its own parameters. Under the management of the execution control thread, the data of this gather is processed by other functional modules.

[0272] Step 4.4: After the data of the data set has been processed, the output module of the computing process obtains the data processing result of the data set, packages the data processing result and writes it to the local buffer.

[0273] Step 4.5: After the data in the data set has been processed, the input module is once again in a state of waiting for input.

[0274] Step 4.6: Return to step 4.2. The input module will start acquiring the next seismic subjob until all seismic subjobs have been processed and the calculation process ends.

[0275] Step 5: Output the data processing results.

[0276] The output process starts at the specified output node. The output process stores the processed data in a shared resource pool, resulting in multiple data processing results. The specific steps are as follows:

[0277] Step 5.1: Create a job execution control class object and execute the job analysis phase interface.

[0278] Step 5.2: The output module of the output process analyzes the output data names in the relevant program through the job analysis stage interface. The output data names are the earthquake data names written by the output process, not the data names entered by the user.

[0279] Step 5.3: The output process obtains the subroutine pointers of the execution stages of each output module by traversing the process.

[0280] Step 5.4: The output process receives a data output task from an input process, i.e., a result retrieval request. Specifically, the Reduce interface in the output process is executed, and the data processing results output by the computation process are obtained according to the Reduce interface parameters.

[0281] Step 5.5: The output process writes the data processing results to the shared resource pool. Specifically, based on the data processing results received for a certain data set, the output process calls the execution phase subroutine interface of the corresponding output module, and stores the data processing results of that data set to the shared resource pool through the high-level interface.

[0282] Step 5.6: Return to step 5.4 until all data processing results of all data sets have been written to the shared resource pool, at which point the output process ends.

[0283] Step 6: Main process cleanup.

[0284] After all gather data has been input, processed, and output, the main process is responsible for merging the job list file and data processing results, printing job-related information, and ending the seismic operation. The specific steps are as follows:

[0285] Step 6.1: The main process merges the job log files. Specifically, the main process obtains information such as the seismic job file name and seismic job number, and merges the job lists generated by all processes related to the job to form a single overall job list file.

[0286] Step 6.2: The main process merges the data processing results. Based on the data name of the output data and the number of output processes specified by the user, the data processing results obtained by all output processes are merged to form a comprehensive result required by the user.

[0287] Step 6.3: The main process compiles job running information, prints the total job running time, the total number of seismic data traces, and other results, and the seismic job runs out.

[0288] Figure 4 This is a schematic diagram of a software architecture based on the MapReduce framework provided in an embodiment of this application. See also... Figure 4The input data is seismic data, which is split into multiple tracegap data by the Master process (Mt process), thus generating multiple seismic sub-jobs, i.e., multiple tasks (Ts). In the Map phase (Ma phase), the data from these multiple tracegap data are processed by multiple Map processes, called C-workers (C-wkr). The compute nodes where the Map processes reside have local buffers on their local disks for temporarily storing the data processing results. In the Reduce phase (R phase), the data processing results obtained by the Map processes are acquired by the Reduce processes and stored in the shared resource pool. The Reduce processes are called O-workers (O-wkr). Each Reduce process corresponds to a storage space in the shared resource pool, and each Reduce process is used to store the acquired data processing results in the corresponding storage space.

[0289] Figure 5 This is a schematic diagram illustrating the working mechanism of a computing process provided in an embodiment of this application. This working mechanism is consistent with the principles of steps 4.1 to 4.6 described above. See also... Figure 5 The computation process is the Map process. After the Map process runs, it creates a Map thread (abbreviated as Ma thread). The Map thread performs Map initialization once to create the execution control thread. The execution control thread performs job analysis once to enter the job execution phase. The Map thread obtains a seismic subjob by calling the Map() function (abbreviated as M() ​​function), converts the information of the seismic subjob into an index of a trace set, notifies the execution control thread to obtain the index, and begins to wait for the data processing results of the trace set. During the job execution phase, the execution control thread waits to receive the index. After receiving the index through the bridging subroutine interface, it obtains the data of the corresponding trace set based on the index and completes data input and processing to obtain the data processing results. After processing, the execution control thread notifies the Map thread to obtain the data processing results through the bridging subroutine interface. After obtaining the data processing results, the Map thread writes the data processing results to the local buffer in K / V (key / value) format. Here, the key represents the index information of the data processing results, and the value represents the data processing results.

[0290] Figure 6 This is a performance diagram of the earthquake operation execution method provided in the embodiments of this application. Figure 6The number of parallel tasks refers to the total number of computing processes running in parallel. Execution time (i.e., job duration) refers to the total time required to process seismic data. Ideal speedup refers to the acceleration of job processing speed as the number of parallel tasks increases under ideal conditions. Actual speedup refers to the acceleration of job processing speed as the number of parallel tasks increases under real-world conditions. Figure 6 It can be seen that when the number of parallel tasks is 8, 16, 32, 64, 128, 256, and 512, the corresponding execution times are 3225, 1527, 735, 384, 201, 109, and 61 minutes, respectively. That is, the more parallel computing processes run, the shorter the job execution time. Figure 6 It can also be seen that the ideal speedup curve is an approximately linear curve, while the actual speedup for the same number of parallel tasks may be less than the ideal speedup. The fewer the number of parallel tasks, the closer the actual speedup is to the ideal speedup. The more parallel tasks, the less the actual speedup is than the ideal speedup. It should be understood that the actual speedup may be less than the ideal speedup due to hardware and software factors such as an increase in the number of parallel tasks.

[0291] In summary, in the embodiments of this application, the seismic operation execution system can automatically split a seismic operation into multiple seismic sub-operations and process these multiple seismic sub-operations in parallel, making full use of the system's storage and computing resources, improving the performance and stability of the seismic operation, and thus effectively improving the processing efficiency of massive seismic data.

[0292] The master node automatically splits seismic data, avoiding manual splitting by operators and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each node, after completing any requested seismic sub-job, immediately requests the next, ensuring efficient utilization of computing node resources and preventing any node from becoming idle after processing some sub-jobs. This ensures load balancing across multiple computing nodes, reducing the total processing time of multiple seismic sub-jobs and improving data processing efficiency. Furthermore, each computing node has a local buffer, fully utilizing its storage resources. Finally, the master node can merge the results of all seismic sub-jobs and provide the user with an overall result.

[0293] All of the above-mentioned optional technical solutions can be combined in any way to form optional embodiments of this application, and the embodiments of this application will not be described in detail one by one.

[0294] Figure 7This is a schematic diagram of the structure of an earthquake operation execution device 700 provided in an embodiment of this application. The device 700 can be implemented as part or all of a computer device by software, hardware, or a combination of both, and this computer device can serve as the head node in the above embodiments. In this embodiment, the device 700 is applied to the master node of an earthquake operation execution system. The earthquake operation execution system also includes multiple computing nodes, at least one output node, and a shared resource pool, and the multiple computing nodes operate in parallel. Please refer to... Figure 7 The device 700 includes: a receiving module 701, a data partitioning module 702, a job generation module 703, a sending module 704, and a result fusion module 705.

[0295] The receiving module 701 is used to receive an execution request for seismic operations, which indicates the seismic data to be processed.

[0296] The data partitioning module 702 is used to divide the seismic data into multiple gathers according to the data partitioning rules;

[0297] The job generation module 703 is used to generate multiple seismic sub-jobs for the seismic job based on the data of the multiple trace gathers, and the multiple seismic sub-jobs correspond one-to-one with the data of the multiple trace gathers;

[0298] The sending module 704 is used to send job processing requests to the plurality of computing nodes to instruct the plurality of computing nodes to execute the plurality of seismic sub-jobs to obtain the data processing results of the plurality of trace sets, and to instruct the plurality of computing nodes to store the data processing results of the plurality of trace sets to a shared resource pool through the at least one output node.

[0299] The result fusion module 705 is used to obtain the data processing results of the multiple trace gathers from the shared resource pool after all the multiple seismic sub-operations have been executed, and to fuse the data processing results of the multiple trace gathers to obtain the processing result of the seismic data, and return the processing result of the seismic data.

[0300] Optionally, the seismic operation execution request also indicates a gather partitioning keyword, the value range of which includes a system default value and multiple first specified values;

[0301] The device 700 also includes:

[0302] The first determining module is used to determine the data set partitioning key as the sorting key when the value of the data set partitioning key is any one of a plurality of first specified values. The sorting key is used to indicate the data partitioning rules.

[0303] Optionally, the seismic operation execution request may also indicate a gather flag keyword, the value range of which includes multiple second specified values;

[0304] The device 700 also includes:

[0305] The second determining module is used to determine the flag key of the track set as the sorting key when the value of the track set partitioning key is the system default value.

[0306] Optionally, the seismic data includes data from multiple seismic traces, each of which has an index. The index includes multiple attributes of the corresponding seismic trace, and the data partitioning rule refers to the rule of sorting according to the value of at least one target attribute among the multiple attributes.

[0307] Data partitioning module 702 includes:

[0308] The index sorting submodule is used to sort the indexes of the multiple seismic traces according to the data partitioning rules to obtain multiple sorted indexes.

[0309] The first partitioning submodule is used to partition the data of the seismic trace corresponding to the (i+1)th index into the mth trace set if the value of at least one target attribute in the sorted (i+1)th index is the same as the value of at least one target attribute in the ith index. The mth trace set refers to the trace set to which the data of the seismic trace corresponding to the ith index in the multiple trace sets belong, where i and m are both integers not less than 1.

[0310] The second partitioning submodule is used to partition the seismic trace data corresponding to the (i+1)th index into the (m+1)th trace set if the value of at least one target attribute in the i-th index is different from the value of at least one target attribute in the (i+1)-th index.

[0311] Optionally, the status of the seismic sub-operations being executed in the plurality of seismic sub-operations is "processing", the status of the seismic sub-operations that have not been processed is "pending processing", and the status of the seismic sub-operations that have been completed is "processed".

[0312] The device 700 also includes:

[0313] The status modification module is used to change the status of the first seismic sub-job from the processing state to the pending state when it is determined that the first seismic sub-job has failed to execute. The first seismic sub-job is one of the multiple seismic sub-jobs.

[0314] In this embodiment, the seismic operation execution system can automatically split a seismic operation into multiple seismic sub-operations and process them in parallel. This fully utilizes system storage and computing resources, improves the performance and stability of sub-operations, and enhances the processing efficiency of massive seismic data. Specifically, the master node automatically splits the seismic data, avoiding manual splitting by operators and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each computing node requests the next seismic sub-operation after completing one, ensuring efficient utilization of computing node resources and load balancing. This reduces the total processing time of multiple seismic sub-operations and improves data processing efficiency. Each computing node has a local buffer, fully utilizing its storage resources. The master node can also merge the results of all seismic sub-operations and provide the user with an overall result.

[0315] It should be noted that the earthquake operation execution device provided in the above embodiments is only illustrated by the division of the above functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the earthquake operation execution device and the earthquake operation execution method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0316] Figure 8 This is a schematic diagram of the structure of an earthquake operation execution device 800 provided in an embodiment of this application. The device 800 can be implemented as part or all of a computer device by software, hardware, or a combination of both. In this embodiment, the device 800 is applied to a first computing node in an earthquake operation execution system. The earthquake operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The first computing node is any one of the multiple computing nodes. The earthquake data to be processed is divided into multiple trace sets by the master node. The multiple computing nodes run in parallel to execute multiple earthquake sub-operations, and each of the multiple earthquake sub-operations corresponds one-to-one with the data in the multiple trace sets. Please refer to... Figure 8 The device 800 includes: a job request module 801, a job execution module 802, a result processing module 803, and a trigger module 804.

[0317] The job request module 801 is used to request at least one seismic subjob from the master node to obtain the index of at least one trace set corresponding to the at least one seismic subjob, wherein the at least one trace set is a trace set among the multiple trace sets.

[0318] The job execution module 802 is used to execute the requested seismic sub-job based on the index of the at least one trace set, so as to obtain the data processing results of the at least one trace set;

[0319] The result processing module 803 is used to store the obtained data processing result in the local buffer of the first computing node for each data processing result obtained from a gather, and send a result retrieval request to the first output node. The result retrieval request is used to instruct the first output node to retrieve the data processing result in the local buffer of the first computing node and store the retrieved data processing result in the shared resource pool. The first output node is one of the at least one output node.

[0320] The triggering module 804 is used to trigger the job requesting module 802 to request at least one seismic sub-job from the master node after each data processing result of a trace gather is obtained, until the multiple seismic sub-jobs are completed.

[0321] Optionally, the job execution module 802 includes:

[0322] The data acquisition submodule is used to acquire the data of the corresponding trace set from the data storage node based on the index of each trace set in the at least one trace set;

[0323] The data processing submodule is used to process the data of each track set in the at least one track set to obtain the data processing results of the corresponding track sets.

[0324] Optionally, the first computing node executes K seismic sub-jobs simultaneously by running K computing processes in parallel, where K is an integer greater than 1.

[0325] In this embodiment, the seismic operation execution system can automatically split a single seismic data point into multiple seismic sub-jobs and process them in parallel. This fully utilizes system storage and computing resources, improving job performance and stability, and enhancing the processing efficiency of massive seismic data. Specifically, the master node automatically splits the seismic data, avoiding manual splitting by operators and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each node requests the next seismic sub-job after completing one, ensuring efficient utilization of computing node resources and load balancing. This reduces the total processing time of multiple seismic sub-jobs and improves data processing efficiency. Each computing node has a local buffer, fully utilizing its storage resources. The master node can also merge the results of all seismic sub-jobs and provide the user with an overall result.

[0326] It should be noted that the earthquake operation execution device provided in the above embodiments is only illustrated by the division of the above functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the earthquake operation execution device and the earthquake operation execution method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0327] Figure 9 This is a schematic diagram of the structure of an execution device 900 for earthquake operations provided in an embodiment of this application. The device 900 can be implemented as part or all of a computer device by software, hardware, or a combination of both. In this embodiment, the device 900 is applied to a first output node in an earthquake operation execution system. The earthquake operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The first output node is one of the at least one output nodes. The earthquake data to be processed is divided into multiple trace sets by the master node. The multiple computing nodes run in parallel to execute multiple earthquake sub-operations, each corresponding one-to-one with a trace set. Please refer to... Figure 9 The device 900 includes: a receiving module 901, a result acquisition module 902, and a storage module 903.

[0328] The receiving module 901 is used to receive a result acquisition request from the first computing node. The result acquisition request is determined after the first computing node has completed a seismic sub-operation to obtain the data processing result of a gather. The first computing node is one of the multiple computing nodes.

[0329] The result acquisition module 902 is used to acquire the data processing result in the local buffer of the first computing node based on the result acquisition request;

[0330] Storage module 903 is used to store the acquired data processing results to a shared resource pool.

[0331] In this embodiment, the seismic operation execution system can automatically split a seismic operation into multiple seismic sub-operations and process them in parallel. This fully utilizes system storage and computing resources, improves operation performance and stability, and enhances the processing efficiency of massive seismic data. Specifically, the master node automatically splits the seismic data, avoiding manual splitting by operators and thus improving data processing efficiency. Multiple computing nodes run in parallel, and each computing node requests the next seismic sub-operation after completing one, ensuring efficient utilization of computing node resources and load balancing. This reduces the total processing time of multiple seismic sub-operations and improves data processing efficiency. Each computing node has a local buffer, fully utilizing its storage resources. The master node can also merge the results of all seismic sub-operations and provide the user with an overall result.

[0332] It should be noted that the earthquake operation execution device provided in the above embodiments is only illustrated by the division of the above functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the earthquake operation execution device and the earthquake operation execution method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0333] Figure 10 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. The computer device 1000 can serve as a master node, computing node, or output node in the embodiments of this application. The computer device 1000 includes a central processing unit (CPU) 1001, a system memory 1004 including random access memory (RAM) 1002 and read-only memory (ROM) 1003, and a system bus 1005 connecting the system memory 1004 and the CPU 1001. The computer device 1000 also includes a basic input / output system (I / O system) 1006 that facilitates information transfer between various devices within the computer, and a mass storage device 1007 for storing the operating system 1013, application programs 1014, and other program modules 1015.

[0334] The basic input / output system 1006 includes a display 1008 for displaying information and an input device 1009 for user input, such as a mouse or keyboard. Both the display 1008 and the input device 1009 are connected to the central processing unit 1001 via an input / output controller 1010 connected to the system bus 1005. The basic input / output system 1006 may also include the input / output controller 1010 for receiving and processing input from multiple other devices such as a keyboard, mouse, or electronic stylus. Similarly, the input / output controller 1010 also provides output to a display screen, printer, or other types of output devices.

[0335] Mass storage device 1007 is connected to central processing unit 1001 via a mass storage controller (not shown) connected to system bus 1005. Mass storage device 1007 and its associated computer-readable media provide non-volatile storage for computer device 1000. That is, mass storage device 1007 may include computer-readable media (not shown) such as hard disk or compact disc read-only memory (CD-ROM) drive.

[0336] Without loss of generality, computer-readable media can include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented using any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid-state storage technologies, CD-ROM, DVD or other optical storage, magnetic tape cassettes, magnetic tape, disk storage, or other magnetic storage devices. Of course, those skilled in the art will recognize that computer storage media are not limited to the above-mentioned types. The system memory 1004 and mass storage device 1007 described above can be collectively referred to as memory.

[0337] According to various embodiments of this application, the computer device 1000 can also be connected to a remote computer on a network, such as the Internet. That is, the computer device 1000 can be connected to the network 1012 via the network interface unit 1011 connected to the system bus 1005, or the network interface unit 1011 can be used to connect to other types of networks or remote computer systems (not shown).

[0338] The aforementioned memory also includes one or more programs, which are stored in the memory and configured to be executed by the CPU.

[0339] In some embodiments, a computer-readable storage medium is also provided, which stores a computer program that, when executed by a processor, implements the steps of the earthquake operation execution method described in the above embodiments. For example, the computer-readable storage medium may be a ROM, RAM, CD-ROM, magnetic tape, floppy disk, or optical data storage device.

[0340] It is worth noting that the computer-readable storage medium mentioned in the embodiments of this application can be a non-volatile storage medium, in other words, it can be a non-transient storage medium.

[0341] It should be understood that all or part of the steps of the above embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented wholly or partially in the form of a computer program product. The computer program product includes one or more computer instructions. The computer instructions can be stored in the above-described computer-readable storage medium.

[0342] That is, in some embodiments, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to perform the steps of the earthquake operation execution method described above.

[0343] It should be understood that "at least one" as mentioned herein refers to one or more, and "multiple" refers to two or more. In the description of the embodiments of this application, unless otherwise stated, " / " means "or," for example, A / B can mean A or B; "and / or" in this document is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. In addition, in order to clearly describe the technical solutions of the embodiments of this application, the terms "first," "second," etc., are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first," "second," etc., do not limit the quantity or execution order, and the terms "first," "second," etc., are not necessarily different.

[0344] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in the embodiments of this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the earthquake data involved in the embodiments of this application were all obtained under full authorization.

[0345] The above descriptions are embodiments provided in this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.

Claims

1. A method for performing earthquake operations, characterized in that, The earthquake operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool, with the multiple computing nodes running in parallel; The method includes: The master node receives an execution request for a seismic operation, and the execution request indicates the seismic data to be processed. The master node divides the seismic data into multiple gathers according to the data partitioning rules; The master node generates multiple seismic sub-operations based on the data from the multiple trace gathers, and the multiple seismic sub-operations correspond one-to-one with the data from the multiple trace gathers; The master node sends job processing requests to the plurality of computing nodes to instruct the plurality of computing nodes to execute the plurality of seismic sub-jobs to obtain the data processing results of the plurality of trace gathers, and to instruct the plurality of computing nodes to store the data processing results of the plurality of trace gathers to the shared resource pool through the at least one output node; After all the multiple seismic sub-jobs have been executed, the master node obtains the data processing results of the multiple trace gathers from the shared resource pool, merges the data processing results of the multiple trace gathers to obtain the processing result of the seismic data, and returns the processing result of the seismic data. The earthquake data includes data from multiple seismic traces, each of which has an index. The index includes multiple attributes of the corresponding seismic trace, and the data partitioning rule refers to a rule for sorting according to the value of at least one target attribute among the multiple attributes. The master node divides the seismic data into multiple gathers according to data partitioning rules, including: The master node sorts the indexes of the multiple seismic traces according to the data partitioning rules to obtain multiple sorted indexes; If the value of at least one target attribute in the sorted (i+1)th index is the same as the value of at least one target attribute in the ith index, then the master node will assign the data of the seismic trace corresponding to the (i+1)th index to the mth trace set. The mth trace set refers to the trace set to which the data of the seismic trace corresponding to the ith index in the multiple trace sets belongs, where i and m are both integers not less than 1. If the value of at least one target attribute in the i-th index is different from the value of at least one target attribute in the (i+1)-th index, then the master node will assign the data of the seismic trace corresponding to the (i+1)-th index to the (m+1)-th trace set.

2. The method according to claim 1, characterized in that, The execution request also indicates a set partitioning keyword, the value range of which includes a system default value and multiple first specified values; Before the master node divides the seismic data into multiple gathers according to the data partitioning rules, it also includes: When the value of the set partitioning key is any one of the plurality of first specified values, the master node determines the set partitioning key as the sorting key, and the sorting key is used to indicate the data partitioning rule.

3. The method according to claim 2, characterized in that, The execution request also indicates a channel flag keyword, the value range of which includes multiple second specified values; Before the master node divides the seismic data into multiple gathers according to the data partitioning rules, it also includes: When the value of the set partitioning key is the system default value, the master node determines the set flag key as the sorting key.

4. The method according to any one of claims 1-3, characterized in that, Among the multiple seismic sub-operations, the seismic sub-operation being executed is in the "processing" state, the seismic sub-operation that has not been processed is in the "pending" state, and the seismic sub-operation that has been completed is in the "processed" state. The method further includes: If the execution of the first seismic sub-job is determined to have failed, the master node will change the status of the first seismic sub-job from the processing state to the pending state, where the first seismic sub-job is one of the plurality of seismic sub-jobs.

5. A method for performing earthquake operations, characterized in that, The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The seismic data to be processed is divided into multiple trace sets by the master node. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, and the multiple seismic sub-operations correspond one-to-one with the multiple trace sets. The method includes: The first computing node requests at least one seismic subjob from the master node to obtain the index of at least one trace set corresponding to the at least one seismic subjob. The first computing node is any one of the plurality of computing nodes, and the at least one trace set is a trace set among the plurality of trace sets. The first computing node executes the requested seismic sub-job based on the index of the at least one trace set to obtain the data processing results of the at least one trace set; Each time the first computing node obtains the data processing result of a gather, it stores the obtained data processing result in the local buffer of the first computing node and sends a result retrieval request to the first output node. The result retrieval request is used to instruct the first output node to retrieve the data processing result in the local buffer of the first computing node and store the retrieved data processing result in the shared resource pool. The first output node is one of the at least one output node. The first computing node returns to the step of requesting at least one seismic sub-job from the master node until the plurality of seismic sub-jobs have been executed.

6. The method according to claim 5, characterized in that, The first computing node executes K seismic sub-jobs simultaneously by running K computing processes in parallel, where K is an integer greater than 1.

7. A method for performing earthquake operations, characterized in that, The seismic operation execution system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool. The seismic data to be processed is divided into multiple trace sets by the master node according to data partitioning rules. The multiple computing nodes run in parallel to execute multiple seismic sub-operations, each corresponding one-to-one with a trace set. The method includes: The first output node receives a result retrieval request from the first computing node. The result retrieval request is determined after the first computing node has completed a seismic sub-operation to obtain the data processing result of a tracegather. The first output node is one of the at least one output node, and the first computing node is one of the plurality of computing nodes. The first output node obtains the data processing result in the local buffer of the first computing node based on the result acquisition request; The first output node stores the acquired data processing results into the shared resource pool; The seismic data includes data from multiple seismic traces, each of which has an index. Each index includes multiple attributes for the corresponding seismic trace. The data partitioning rule refers to a rule that sorts data according to the value of at least one target attribute among the multiple attributes. The seismic data partitioning process includes: According to the data partitioning rules, the indices of the multiple seismic traces are sorted to obtain multiple sorted indices. If the value of at least one target attribute in the (i+1)th sorted index is the same as the value of at least one target attribute in the ith index, then the data of the seismic trace corresponding to the (i+1)th index is assigned to the m-th trace set, where the m-th trace set refers to the trace set to which the data of the seismic trace corresponding to the ith index belongs, and i and m are both integers not less than 1. If the value of at least one target attribute in the ith index is different from the value of at least one target attribute in the (i+1)th index, then the data of the seismic trace corresponding to the (i+1)th index is assigned to the (m+1)-th trace set.

8. An execution system for earthquake operations, characterized in that, The system includes a master node, multiple computing nodes, at least one output node, and a shared resource pool, wherein the multiple computing nodes run in parallel; The master node is used to implement the steps of the method according to any one of claims 1-4; Each of the plurality of computing nodes is used to implement the steps of the method described in claim 5 or 6; Each of the at least one output node is used to implement the steps of the method of claim 7.

9. 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 steps of the method according to any one of claims 1-7.

Citation Information

Patent Citations

  • A file lock parallel seismic processing job scheduling method with automatic load balancing

    CN109344135A

  • Quality control seismic data processing system

    US5920828A