Kirchhoff Time and Depth Migration
Seismic imaging is the process of positioning the Earth’s subsurface reflectors. It transforms the seismic data recorded in time at the Earth’s surface to an image of the Earth’s subsurface. This is done by back-propagating data from time to space in a given velocity model. Kirchhoff depth migration is a well-known technique used in geophysics for seismic imaging. The fundamental difference between time and depth migration is that for every output location, the velocity model for time migration varies along depth only.
Once the travel-times are computed, both Kirchhoff time and depth migration produce an image with higher resolution and generate an image of the subsurface for a subset class of the data. This process provides valuable information about the petrophysical properties of the rocks and helps to determine how accurate the velocity model is.
Computing Kirchhoff time and depth migration is memory bandwidth sensitive. It also depends on how fast the input data is copied to the accelerator memory. The problem is pleasingly parallel, meaning that individual processes do not need to communicate with others and all computations happen at the same time.
With an increasing demand for data processing, Kirchhoff migration methods on GPUs decrease computing cost and time to results.
What is NVIDIA’s GPU-optimized seismic code?
NVIDIA developed a collection of seismic algorithms meticulously optimized for GPUs. This includes Forward Propagators for Reverse Time Migration (1, 2, 3 pass ISO, VTI, TTI), Kirchhoff Depth Migration, Kirchhoff Time Migration, Reverse Time Migration with Compression, Compression with DCT and OpenVDS Samples and more. The objective is to provide seismic algorithms with all the GPU best practices and optimizations available to maximize hardware price/performance. They are programmed in C++/CUDA and are very close to a production version. They are self-contained, read seismic input data and velocity models, and produce a depth or time imaged output. NVIDIA does not open-source these algorithms but encourages companies to use them as the foundation for derivative works or to benchmark against their own algorithm performance. Out of these applications, this blog focuses on Kirchhoff Depth and Time Migration evaluation on AWS.
Benefits of running NVIDIA’s GPU optimized seismic code on AWS
Running seismic imaging on AWS provides geophysicists the ability to balance time and cost using different GPU-based Amazon EC2 instance types.
In addition, these compute resources can be dynamically allocated when needed and deprovisioned when processing is finished. You can then switch to a different Amazon EC2 instance type, like a compute-optimized instance type for the post-processing, giving you flexibility in hardware choice and reducing cost.
Along with compute, you can also provision a high performance and managed file system with Amazon FSx for Lustre in one-click. Amazon FSx for Lustre can also be linked to an Amazon S3 bucket to seamlessly move data back and forth between Lustre and S3 while providing a familiar and performant file system. You can leverage Amazon S3 to store or archive input and output data with tiering using Amazon S3 Storage Classes for long term storage. It also enables you to share data around the globe in an easy and fast manner using the AWS network backbone.
Learn more about the configuration and price performance analysis in the full blog.
Reminder: You can learn a lot from AWS HPC engineers by subscribing to the HPC Tech Short YouTube channel, and following the AWS HPC Blog channel.