Efficient Geophysical Research in Julia

Slides:



Advertisements
Similar presentations
Reflection Seismic Processing
Advertisements

Multi-Component Seismic Data Processing
Seismic Octave Programming for Analog/Digital Converters Michael W. Siekman Electrical and Computer Engineering Senior Capstone Design Project 2007 Advisor:
MATLAB Presented By: Nathalie Tacconi Presented By: Nathalie Tacconi Originally Prepared By: Sheridan Saint-Michel Originally Prepared By: Sheridan Saint-Michel.
Data Analytics and Dynamic Languages Lee E. Edlefsen, Ph.D. VP of Engineering 1.
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
Fundamentals Introduction Seismic waves: Propagation Velocity and Amplitudes Seismogram Measurement systems Sources, receivers, Acquisition strategies.
1 Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
TARGET-ORIENTED LEAST SQUARES MIGRATION Zhiyong Jiang Geology and Geophysics Department University of Utah.
3-D PRESTACK WAVEPATH MIGRATION H. Sun Geology and Geophysics Department University of Utah.
Imaging of diffraction objects using post-stack reverse-time migration
4C Mahogony Data Processing and Imaging by LSMF Method Jianhua Yu and Yue Wang.
Prestack Migration Deconvolution in Common Offset Domain Jianxing Hu University of Utah.
Application of Digital Signal Processing in Computed tomography (CT)
Computational Tools for Image Processing Lecture 1, Jan 22nd, 2007 Part 2 (8:10-9:20pm) by Lexing Xie EE4830 Digital Image Processing
Course contents 1.Labview basics – virtual instruments, data flow, palettes 2.Structures – for, while, case,... – editing techniques 3.Controls&Indicators.
Dr. Chris Musselle – Consultant R Meets Julia Dr Chris Musselle.
Enhancing GPU for Scientific Computing Some thoughts.
Deconvolution Bryce Hutchinson Sumit Verma Objectives: -Understand the difference between exponential and surface consistent gain -Identify power line.
IMAGE COMPRESSION USING BTC Presented By: Akash Agrawal Guided By: Prof.R.Welekar.
Attribute- Assisted Seismic Processing and Interpretation 3D CONSTRAINED LEAST-SQUARES KIRCHHOFF PRESTACK TIME MIGRATION Alejandro.
Data Management Console Synonym Editor
An Efficient Search Strategy for Block Motion Estimation Using Image Features Digital Video Processing 1 Term Project Feng Li Michael Su Xiaofeng Fan.
Kui Zhang* and Kurt J. Marfurt 2008 AASPI Consortium annual meeting Migration-driven velocity analysis for anisotropy/stress analysis.
Improving I/O with Compiler-Supported Parallelism Why Should We Care About I/O? Disk access speeds are much slower than processor and memory access speeds.
Impact of MD on AVO Inversion
Efficient Local Statistical Analysis via Integral Histograms with Discrete Wavelet Transform Teng-Yok Lee & Han-Wei Shen IEEE SciVis ’13Uncertainty & Multivariate.
GEOL882.3 Seismic Processing Systems Objective Processing Systems SEGY and similar file formats General structure of several systems.
Beach Energy Ltd Lake Tanganyika 2D Transition Zone Seismic Survey
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Signal Analysis and Imaging Group Department of Physics University of Alberta Regularized Migration/Inversion Henning Kuehl (Shell Canada) Mauricio Sacchi.
Pitfalls in seismic processing : The origin of acquisition footprint Sumit Verma, Marcus P. Cahoj, Bryce Hutchinson, Tengfei Lin, Fangyu Li, and Kurt J.
Reflection seismograms
Programming Massively Parallel Graphics Multiprocessors using CUDA Final Project Amirhassan Asgari Kamiabad
Fast Least Squares Migration with a Deblurring Filter Naoshi Aoki Feb. 5,
Least squares migration of elastic data Aaron Stanton and Mauricio Sacchi PIMS 2015.
Migration Velocity Analysis of Multi-source Data Xin Wang January 7,
Anders Nielsen Technical University of Denmark, DTU-Aqua Mark Maunder Inter-American Tropical Tuna Commission An Introduction.
A Parallel Hierarchical Solver for the Poisson Equation Seung Lee Deparment of Mechanical Engineering
Why do F77 always spoil the landscape ?. Several ideas … slide 2.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
A cross-equalization processing flow for off-the-shelf 4-D seismic data James Rickett Stanford University David E. Lumley Chevron Petroleum Technology.
Martin Kruliš by Martin Kruliš (v1.0)1.
Fast Least Squares Migration with a Deblurring Filter 30 October 2008 Naoshi Aoki 1.
Lee M. Liberty Research Professor Boise State University.
Efficient Geophysical Research in Julia Aaron Stanton, Wenlei Gao, and Mauricio D. Sacchi 1.
Big Data Analytics and HPC Platforms
ADVANCED MARINE TUTORIAL
Time and Depth Imaging Algorithms in a Hardware Accelerator Paradigm
Engineering Problem Solving With C An Object Based Approach
CUDA Interoperability with Graphical Environments
Zero-Offset Data d = L o ò r ) ( g = d dr r ) ( g = d
MatLab Programming By Kishan Kathiriya.
Coordinate Transformations in Three Dimensions
The Future of Fortran is Bright …
Computer Organization & Compilation Process
A pseudo-unitary implementation of the radial trace transform
The FOCI™ method of depth migration
Parallel Analytic Systems
Tools.
Tools.
Query Execution Presented by Jiten Oswal CS 257 Chapter 15
Non-local Means (NLM) Filter for Trim Statics
A Direct Numerical Imaging Method for Point and Extended Targets
MCMC Inference over Latent Diffeomorphisms
Mapping the FFT Algorithm to the IBM Cell Processor
Computer Organization & Compilation Process
Implementation of a De-blocking Filter and Optimization in PLX
LSMF for Suppressing Multiples
Wave Equation Dispersion Inversion of Guided P-Waves (WDG)
Presentation transcript:

Efficient Geophysical Research in Julia Aaron Stanton and Mauricio D. Sacchi

Outline Motivation Julia Seismic.jl Examples

Motivation Matlab is a great prototyping language But… easy to understand, compact code many built in functions for linear algebra and plotting But… inefficient for large problems not open source Compiled languages are great for implementation efficient for large problems support all forms of parallelism difficult to follow inefficient to code and debug

Motivation Julia presents a new opportunity with Matlab-like syntax and C-like performance.

Julia Released in 2012 Completely open source with MIT license Just-In-Time compiler compiled after execution begins has access to more information than static compilers Sophisticated type system Multiple dispatch Rich library of linear algebra and plotting functions Distributed and shared memory parallelism Pass-by-reference (pointers) Directly call C-libraries with no overhead

Example: For-Loops Multi-level for-loop: Matlab: 5.1041 seconds for j1=1:100; for j2 = 1:100; for j3=1:100; for j4=1000; a += 1.0; end Matlab: 5.1041 seconds Julia: 0.5783 seconds

Example: POCS Matlab Julia y = zeros(nx1,nx2,nx3,nx4); for iw = 1 : nw y(:) = d(iw,:) x = y for iter = 1 : Niter Y = fftn(y); Y = Threshold(Y,p(iter)); y = ifftn(Y); y = a*x + (1 - a*T).*y end d(iw,:) = y(:) y = zeros(nx1,nx2,nx3,nx4); for iw = 1 : nw y[:] = d[iw,:] x = copy(y) for iter = 1 : Niter Y = fft(y); Y = Threshold(Y,p[iter]); y = ifft(Y); y = a*x + (1 - a*T).*y end d[iw,:] = y[:]

Seismic.jl

Installation Pkg.add(“Seismic”)

Basic usage

Basic usage

Basic usage

Basic usage

I/O Reading Seismic Unix Files Writing Seismic Unix Files SegyToSeis("foo.su","foo",{"format"=>su}) Writing Seismic Unix Files SeisToSegy("foo","foo.su",{"format"=>su}) Also supports rsf and segy formats, can swap bytes and convert from IBM to IEEE.

Data format: foo.seisd Ntraces x Nsamples of Binary IEEE floats

Header format: foo.seish For each trace the header is stored as type Header Ntraces x 31 Binary IEEE floats/integers To see all fields type “names(Header)”

Package Contents Utilities Processing Imaging Solvers

Utilities Conversion to/from SEGY, SU, and RSF formats Reading and writing of internal format foo.seisd foo.seish Windowing Geometry Header statistics Sorting Display header statistics Binning Patching/UnPatching Processing on groups of traces

Processing Semblance NMO Mute Stack Bandpass and FK fan filtering Radon transform 5D interpolation POCS MWNI Many others to come Structural Smoothing FX deconvolution Plane wave destruction for dip estimation …

Imaging Pre-stack time migration 3D shot-profile angle computation using Poynting vectors 3D shot-profile acoustic/elastic one-way wave equation migration/modeling Least squares shot-profile acoustic/elastic one-way wave equation migration

Solvers Dot product test Memory or disk based preconditioned conjugate gradients Iteratively Reweighted Least Squares (IRLS) Fast Iterative Soft Thresholding Algorithm (FISTA)

Examples

Calling POCS Interpolation using Seismic Param ={"Niter"=>100,"fmax"=>60,"padt"=>2,"padx"=>2,"dt"=>0.004} dpocs = Seismic.pocs(ddec,param);

Interpolation input

Interpolation output

Calling Plane Wave Destruction using Seismic download("http://ualberta.ca/~kstanton/files/kevin_0off_velocity.su","kevin_0off_velocity.su"); SegyToSeis("kevin_0off_velocity.su","kevins_model",{"format"=>"su"}); d,h = SeisRead("kevins_model"); coh,pp,res = SeisPWD(d,{"w1"=>30,"w2"=>20,"dx"=>8,"dz"=>4});

Estimated reflector normals

Julia in my own research

ShotProfileLSEWEM

Conjugate Gradients …

Forward and adjoint operators

ShotProfileEWEM …

Conclusions Julia can be used for fast prototyping as well as large scale production Julia programs are easy to follow for implementation in other languages We developed a package in Julia that is part of the ecosystem of Julia packages: Pkg.add(“Seismic”) Utilities Processing Imaging Inversion We will continue to make additions and improvements to Seismic.jl

References www.julialang.org www.seismic.physics.ualberta.ca

Acknowledgements Thanks to the creators of Julia and to Sam Kaplan for showing us Julia We thank the sponsors of the Signal Analysis and Imaging Group for their support