IP Library › Granted Patent US 11,163,092
Granted Patent B2
US 11,163,092 · App. 14/943,382 · Granted Nov 2, 2021

Scalable scheduling of parallel iterative seismic jobs

Inventors: Aleksandar Bobrek (Houston, TX); Anoop A. Mullur (Spring, TX); Christopher S. Beard (Spring, TX); Arrian M. Brantley (Spring, TX); Michael B. Townsley (Houston, TX); Pavel Dimitrov (Houston, TX)
Assignee: ExxonMobil Upstream Research Company
G01V99/005G01V1/303
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,163,092
App. No.
14/943,382
Granted
Nov 2, 2021
Kind
B2
Abstract

System and method for scalable and reliable scheduling of iterative seismic full wavefield inversion algorithms with alternating parallel and serial stages of computation on massively parallel computing systems. The workers are independent, initiating actions and unaware of each other, and given limited information. This enables application of optimal scheduling, load-balancing, and reliability techniques specific to seismic inversion problems. The central dispatcher specifies the structure of the inversion, including task dependency, and keeps track of progress of work. Management tools enable the user to make performance and reliability improvements during the execution of the seismic inversion.

Claims (36)

1. A seismic prospecting method for exploring for hydrocarbons, comprising:

obtaining seismic survey data;

processing the seismic survey data by full wavefield inversion to infer a subsurface model of velocity or other physical parameter, wherein the processing is performed on a system of parallel processers, called workers;

dividing the full wavefield inversion into a sequence of parallel stages and serial stages, and defining one or more computational tasks to be performed at each stage, wherein: (i) the computational tasks are parallel tasks for a parallel stage, (ii) parallel stages of the full wavefield inversion comprise a gradient computation stage and a line search stage, and (iii) the computational stages further comprise at least one stacking stage, which may be parallel or serial, in which results of parallel computations from a previous parallel stage are summed;

using a pool of workers, each programmed to initiate requests for, and to perform, at least one of the computational tasks, and perform them independently and without knowledge of the other workers, and wherein a task is sized for a worker according to a selected job scale;

using a central dispatcher unit, being a processor programmed to:

maintain task queues, where tasks are placed for pickup by the workers and where completed tasks are returned by the workers, and enforce dependencies between tasks; and

monitor and store information relating to a current state of the full wavefield inversion;

using a controller unit, interconnected with the central dispatcher and programmed with an optimization algorithm that decides, based on one or more spatial locations associated with one or more tasks, whether to complete the one or more tasks independently performed by the workers in a current iteration prior to beginning a next iteration;

wherein the one or more tasks comprises preparing a velocity model for simulating by dividing the velocity model into apertures around a shot area and wherein tasks for parallel stages are defined by source shot such the task assigned to each worker is dependent on a location for the shot area such that shots from an edge of the survey go to a first worker and where shots from a center of the survey go to a second worker; and

wherein the controller unit ignores processing the tasks associated with a subset of the shot areas in order to proceed to the next iteration based on determining a percentage of the tasks for processing the shot areas in the subset to the tasks for processing all of the shot areas and based on the spatial separation of the shot areas in the subset.

2. The method of claim 1 , wherein workers include logic and heuristics to place partial stacking results back into an input queue, allowing results to be recursively stacked.

3. The method of claim 1 , wherein tasks are assembled in the central dispatcher before assignment in task queues such that any dependencies between tasks can be enforced.

4. The method of claim 1 , wherein the current state of the full wavefield inversion includes one or more of

number of seismic gathers to process, number completed, and number currently processing;

task handout and completion times; and

input parameters necessary to execute the tasks.

5. The method of claim 1 , wherein the central dispatcher unit is programmed to statistically analyze run-time data accumulated on completed tasks to set a timeout value for a task that is still running.

6. The method of claim 1 , wherein the full wavefield inversion's computational stages comprise at least a first task of a first task type and a second task of a second task type; and

wherein each worker is programmed to perform specific task types.

7. The system of claim 1 , wherein the workers further include logic and heuristics to request multiple items to stack before producing the partial stacking results.

8. The method of claim 1 , wherein the one or more tasks further comprise processing seismic gathers; and

wherein deciding whether to complete processing the seismic gathers is based on spatial separation of the seismic gathers.

9. The method of claim 8 , wherein the controller unit ignores processing the tasks associated with a subset of the seismic gathers in order to proceed to the next iteration based on determining a percentage of the tasks for processing the seismic gathers in the subset to the tasks for processing all of the seismic gathers and based on the spatial separation of the seismic gathers in the subset.

10. A seismic prospecting method for exploring for hydrocarbons, comprising:

obtaining seismic survey data;

processing the seismic survey data by full wavefield inversion to infer a subsurface model of velocity or other physical parameter, wherein the processing is performed on a system of parallel processers, called workers, and wherein the processing comprises:

dividing the full wavefield inversion into a sequence of parallel stages and serial stages, and defining one or more computational tasks to be performed at each stage, wherein: (i) the computational tasks are parallel tasks for a parallel stage, (ii) parallel stages of the full wavefield inversion comprise a gradient computation stage and a line search stage, and (iii) the computational stages further comprise at least one stacking stage, which may be parallel or serial, in which results of parallel computations from a previous parallel stage are summed;

using a pool of workers, each programmed to initiate requests for, and to perform, at least one of the computational tasks, and perform them independently and without knowledge of the other workers, and wherein a task is sized for a worker according to a selected job scale;

using a central dispatcher unit, being a processor programmed to:

maintain task queues, where tasks are placed for pickup by the workers and where completed tasks are returned by the workers, and enforce dependencies between tasks; and

monitor and store information relating to a current state of the full wavefield inversion; and

using a controller unit, interconnected with the central dispatcher and programmed with an optimization algorithm that decides, based on one or more spatial locations associated with one or more tasks, whether to complete the one or more tasks independently performed by the workers in a current iteration prior to beginning a next iteration;

wherein the one or more tasks comprise processing seismic gathers;

wherein deciding whether to complete processing the seismic gathers is based on spatial separation of the seismic gathers; and

wherein the controller unit ignores processing the tasks associated with a subset of the seismic gathers in order to proceed to the next iteration based on determining a percentage of the tasks for processing the seismic gathers in the subset to the tasks for processing all of the seismic gathers and based on the spatial separation of the seismic gathers in the subset.

Continuity (2)
Provisional Application 62093991 · Dec 18, 2014
Related Publication 20160178801A1 · Jun 23, 2016