@article {vanLeeuwen2014SISC3Dfds,
	title = {3D frequency-domain seismic inversion with controlled sloppiness},
	journal = {SIAM Journal on Scientific Computing},
	volume = {36},
	number = {5},
	year = {2014},
	note = {(SISC)},
	month = {10},
	pages = {S192-S217},
	abstract = {Seismic waveform inversion aims at obtaining detailed estimates of subsurface medium parameters, such as the spatial distribution of soundspeed, from multiexperiment seismic data. A formulation of this inverse problem in the frequency domain leads to an optimization problem constrained by a Helmholtz equation with many right-hand sides. Application of this technique to industry-scale problems faces several challenges: First, we need to solve the Helmholtz equation for high wave numbers over large computational domains. Second, the data consist of many independent experiments, leading to a large number of PDE solves. This results in high computational complexity both in terms of memory and CPU time as well as input/output costs. Finally, the inverse problem is highly nonlinear and a lot of art goes into preprocessing and regularization. Ideally, an inversion needs to be run several times with different initial guesses and/or tuning parameters. In this paper, we discuss the requirements of the various components (PDE solver, optimization method, \dots) when applied to large-scale three-dimensional seismic waveform inversion and combine several existing approaches into a flexible inversion scheme for seismic waveform inversion. The scheme is based on the idea that in the early stages of the inversion we do not need all the data or very accurate PDE solves. We base our method on an existing preconditioned Krylov solver (CARP-CG) and use ideas from stochastic optimization to formulate a gradient-based (quasi-Newton) optimization algorithm that works with small subsets of the right-hand sides and uses inexact PDE solves for the gradient calculations. We propose novel heuristics to adaptively control both the accuracy and the number of right-hand sides. We illustrate the algorithms on synthetic benchmark models for which significant computational gains can be made without being sensitive to noise and without losing the accuracy of the inverted model.},
	keywords = {block-cg, Helmholtz equation, inexact gradient, Kaczmarz method, preconditioning, Seismic inversion},
	doi = {10.1137/130918629},
	url = {http://epubs.siam.org/doi/abs/10.1137/130918629},
	url2 = {https://slim.gatech.edu/Publications/Public/Journals/SIAMJournalOnScientificComputing/2014/vanLeeuwen2014SISC3Dfds/vanLeeuwen2014SISC3Dfds.pdf},
	author = {Tristan van Leeuwen and Felix J. Herrmann}
}
@conference {petrenko2014EAGEaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	booktitle = {EAGE Annual Conference Proceedings},
	year = {2014},
	month = {06},
	abstract = {We implement the Kaczmarz row-projection algorithm (Kaczmarz (1937)) on a CPU host + FPGA accelerator platform using techniques of dataflow programming. This algorithm is then used as the preconditioning step in CGMN, a modified version of the conjugate gradients method (Bj{\"o}rck and Elfving (1979)) that we use to solve the time-harmonic acoustic isotropic constant density wave equation. Using one accelerator we achieve a speed-up of over 2{\texttimes} compared with one Intel core.},
	keywords = {CGMN, EAGE, FPGA, Helmholtz equation, Kaczmarz, reconfigurable computing},
	doi = {10.3997/2214-4609.20141141},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2014/petrenko2014EAGEaih/petrenko2014EAGEaih.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2014/petrenko2014EAGEaih/petrenko2014EAGEaih_pres.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Diego Oriato and Simon Tilbury and Felix J. Herrmann}
}
@conference {petrenko2014OGHPCaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	booktitle = {OGHPC},
	year = {2014},
	month = {03},
	abstract = {We implement the Kaczmarz row-projection algorithm [Kaczmarz, 1937] on a CPU host + FPGA accelerator platform using techniques of dataflow programming. This algorithm is then used as the preconditioning step in CGMN, a modified version of the conjugate gradients method [Bj?rck and Elfving, 1979] that we use to solve the time-harmonic acoustic isotropic constant density wave equation.},
	keywords = {CGMN, FPGA, Helmholtz equation, Kaczmarz, OGHPC, reconfigurable computing},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2014/petrenko2014OGHPCaih/petrenko2014OGHPCaih.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2014/petrenko2014OGHPCaih/petrenko2014OGHPCaih_poster.pdf},
	author = {Art Petrenko and Felix J. Herrmann and Diego Oriato and Simon Tilbury and Tristan van Leeuwen}
}
@conference {lago2014CMCCRMN,
	title = {CRMN method for solving time-harmonic wave equation},
	booktitle = {Copper Mountain Conference},
	year = {2014},
	note = {(Copper Mountain)},
	month = {04},
	abstract = {We address the solution of PDEs associated with the wave propagation phenomena in heterogeneous media using CGMN method. It consists of a conjugate gradients method using Kaczmarz double sweeps as preconditioner. This preconditioner has the property of {\textquoteleft}{\textquoteleft}symmetrizing" the problem allowing short recursion and Lanczos type of Krylov methods to be employed. In this talk we propose the use of CR, a minimal residual Krylov method closely related to CG. We study the proposed method which we call CRMN and discuss crucial aspects as the behaviour of the norm of the residual and the norm of the true error. We also discuss the result of an inversion of a small subsample of the 3D velocity model SEG/EAGE Overthrust using frugal full-waveform inversion method with CRMN and CGMN for solving the associated PDE, showing a strong interest in studying the behaviour of CRMN for larger realistic cases.},
	keywords = {CGMN, CRMN, Forward Modelling, Helmholtz equation},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/CMC/2014/lago2014CMCCRMN.pdf},
	author = {Rafael Lago and Art Petrenko and Zhilong Fang and Felix J. Herrmann}
}
@techreport {petrenko2013SEGsaoc,
	title = {Software acceleration of CARP, an iterative linear solver and preconditioner},
	number = {TR-EOAS-2013-4},
	year = {2013},
	institution = {UBC},
	abstract = {We present the results of software optimization of a row-wise preconditioner (Component Averaged Row Projections) for the method of conjugate gradients, which is used to solve the diagonally banded Helmholtz system representing frequency domain, isotropic acoustic seismic wave simulation. We demonstrate that in our application, a preconditioner bound to one processor core and accessing memory contiguously reduces execution time by 7\% for matrices having on the order of 108 non-zeros. For reference we note that our C implementation is over 80 times faster than the corresponding code written for a high-level numerical analysis language.},
	keywords = {frequency-domain, Helmholtz equation, Kaczmarz, software, wave propagation},
	url = {https://slim.gatech.edu/Publications/Public/TechReport/2013/petrenko2013SEGsaoc/petrenko2013SEGsaoc.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Felix J. Herrmann}
}
@conference {petrenko2013HPCSsaoc,
	title = {Software acceleration of CARP, an iterative linear solver and preconditioner},
	year = {2013},
	month = {06},
	publisher = {HPCS},
	organization = {HPCS},
	abstract = {We present the results of software optimization of a row-wise preconditioner (Component Averaged Row Projections) for the method of conjugate gradients, which is used to solve the diagonally banded Helmholtz system representing frequency domain, isotropic acoustic seismic wave simulation. We demonstrate that in our application, a preconditioner bound to one processor core and accessing memory contiguously reduces execution time by 7\% for matrices having on the order of 108 non-zeros. For reference we note that our C implementation is over 80 times faster than the corresponding code written for a high-level numerical analysis language.},
	keywords = {frequency-domain, Helmholtz equation, HPCS, Kaczmarz, software, wave propagation},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/HPCS/2013/petrenko2013HPCSsaoc/petrenko2013HPCSsaoc.pdf},
	url2 = {https://slim.gatech.edu/Publications/Public/Conferences/HPCS/2013/petrenko2013HPCSsaoc/petrenko2013HPCSsaoc_poster.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Felix J. Herrmann}
}
@conference {vanleeuwen2012EAGEcarpcg,
	title = {Preconditioning the Helmholtz equation via row-projections},
	booktitle = {EAGE Annual Conference Proceedings},
	year = {2012},
	month = {06},
	abstract = {3D frequency-domain full waveform inversion relies on being able to efficiently solve the 3D Helmholtz equation. Iterative methods require sophisticated preconditioners because the Helmholtz matrix is typically indefinite. We review a preconditioning technique that is based on row-projections. Notable advantages of this preconditioner over existing ones are that it has low algorithmic complexity, is easily parallelizable and extendable to time-harmonic vector equations.},
	keywords = {EAGE, Helmholtz equation, precondition},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2012/vanleeuwen2012EAGEcarpcg/vanleeuwen2012EAGEcarpcg.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2012/vanleeuwen2012EAGEcarpcg/vanleeuwen2012EAGEcarpcg_pres.pdf},
	url2 = {http://earthdoc.eage.org/publication/publicationdetails/?publication=58891},
	author = {Tristan van Leeuwen and Dan Gordon and Rachel Gordon and Felix J. Herrmann}
}
