@article {dasilva2017uls,
	title = {A unified 2D/3D large scale software environment for nonlinear inverse problems},
	journal = {ACM Transactions on Mathematical Software},
	year = {2019},
	note = {Accepted on January 27, 2019.},
	abstract = {Large scale parameter estimation problems are some of the most computationally demanding problems. An academic researcher{\textquoteright}s domain-specific knowledge often precludes that of software design, which results in software frameworks for inversion that are technically correct, but not scalable to realistically-sized problems. On the other hand, the computational demands of the problem for realistic problems result in industrial codebases that are geared solely for performance, rather than comprehensibility or flexibility. We propose a new software design that bridges the gap between these two seemingly disparate worlds. A hierarchical and modular design allows a user to delve into as much detail as she desires, while using high performance primitives at the lower levels. Our code has the added benefit of actually reflecting the underlying mathematics of the problem, which lowers the cognitive load on user using it and reduces the initial startup period before a researcher can be fully productive. We also introduce a new preconditioner for the Helmholtz equation that is suitable for fault-tolerant distributed systems. Numerical experiments on a variety of 2D and 3D test problems demonstrate the effectiveness of this approach on scaling algorithms from small to large scale problems with minimal code changes.},
	keywords = {large scale, Matlab, Optimization, PDE-constrained inversion},
	url = {https://slim.gatech.edu/Publications/Public/Journals/ACMTOMS/2019/dasilva2017uls/dasilva2017uls.html},
	author = {Curt Da Silva and Felix J. Herrmann}
}
@conference {witte2017SIAMlsw,
	title = {Large-scale workflows for wave-equation based inversion in Julia},
	booktitle = {SIAM Conference on Computational Science and Engineering},
	year = {2017},
	note = {(SIAM Conference on Computational Science and Engineering, Atlanta)},
	month = {02-03},
	abstract = {Full-waveform inversion is a PDE-constrained optimisation problem involving massive amounts of data (petabytes) and large numbers of unknowns (O(10^9)). This well known compute-intensive and data-intensive is extremely challenging for several reasons. First, there is the complexity of having to handle extremely large data volumes with metadata related to experimental details in the field, and the discretization of the unknown earth parameters and approximate physics. Second, reduced or adjoint-state methods call for computationally intensive PDE solves for each source experiment (of which there are thousands) for each iteration of a gradient-based optimization scheme. The talks will give an overview how carefully chosen layers of abstraction can help manage both the complexity and scale of inversion while still achieving the high degree of computational performance required to make full-waveform a practical tool. Specifically, the presentations will focus on domain specific stencil language for time-stepping methods to solve various types of wave equations and on abstracts for large-scale parallel optimization frameworks.},
	keywords = {Full-waveform inversion, Julia, large scale, least-squares migration, SIAM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SIAM/2017/witte2017SIAMlsw/witte2017SIAMlsw_pres.mov},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SIAM/2017/witte2017SIAMlsw/witte2017SIAMlsw_pres.pdf},
	author = {Philipp A. Witte and Mathias Louboutin and Felix J. Herrmann}
}
@conference {dasilva2016SEGuse,
	title = {A unified 2D/3D software environment for large scale time-harmonic full waveform inversion},
	booktitle = {SEG Technical Program Expanded Abstracts},
	year = {2016},
	note = {(SEG, Dallas)},
	month = {10},
	pages = {1169-1173},
	abstract = {Full-Waveform Inversion is a costly and complex procedure for realistically sized 3D seismic data. The performance-critical nature of this problem often results in software environments that are written entirely in low-level languages, making them hard to understand, maintain, improve, and extend. The unreadability of such codes can stymie research developments, where the translation from higher level mathematical ideas to high performance codes can be lost, inhibiting the uptake of new ideas in production-level codebases. We propose a new software organization paradigm for Full-Waveform Inversion and other PDE-constrained optimization problems that is flexible, efficient, scalable, and demonstrably correct. We decompose the various structural components of FWI in to its constituent components, from parallel computation to assembling objective functions and gradients to lower level matrix-vector multiplications. This decomposition allows us to create a framework where individual components can be easily swapped out to suit a particular user{\textquoteright}s existing software environment. The ease of applying high-level algorithms to the FWI problem allows us to easily implement stochastic FWI and demonstrate its effectiveness on a large scale 3D problem.},
	keywords = {Full-waveform inversion, large scale, numerical analysis, SEG, software},
	doi = {10.1190/segam2016-13869051.1},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2016/dasilva2016SEGuse/dasilva2016SEGuse.html},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2016/dasilva2016SEGuse/dasilva2016SEGuse_pres.pdf},
	author = {Curt Da Silva and Felix J. Herrmann}
}
