@article {herrmann2023dte,
	title = {Digital twins in the era of generative AI},
	journal = {The Leading Edge},
	volume = {42},
	year = {2023},
	note = {(The Leading Edge, President{\textquoteright}s Page)},
	month = {11},
	keywords = {CCS, deep learning, GCS, Imaging, inversion, invertible networks, machine learning, monitoring, multiphysics, Normalizing flows, SLIM, software, time-lapse},
	doi = {10.1190/tle42110730.1},
	url = {https://slim.gatech.edu/Publications/Public/Journals/TheLeadingEdge/2023/herrmann2023dte/PresidentsPage.pdf},
	author = {Felix J. Herrmann}
}
@unpublished {orozco2023invnet,
	title = {InvertibleNetworks.jl: A Julia package for scalable normalizing flows},
	year = {2023},
	month = {12},
	abstract = {InvertibleNetworks.jl is a Julia package designed for the scalable implementation of normalizing flows, a method for density estimation and sampling in high-dimensional distributions. This package excels in memory efficiency by leveraging the inherent invertibility of normalizing flows, which significantly reduces memory requirements during backpropagation compared to existing normalizing flow packages that rely on automatic differentiation frameworks. InvertibleNetworks.jl has been adapted for diverse applications, including seismic imaging, medical imaging, and CO2 monitoring, demonstrating its effectiveness in learning high-dimensional distributions.},
	keywords = {Bayesian inference, computing, conditional normalizing flows, deep learning, HPC, Inverse problems, memory, Normalizing flows, software, Uncertainty quantification},
	doi = {10.48550/arXiv.2312.13480},
	author = {Rafael Orozco and Philipp A. Witte and Mathias Louboutin and Ali Siahkoohi and Gabrio Rizzuti and Bas Peters and Felix J. Herrmann}
}
@article {louboutin2023lmi,
	title = {Learned multiphysics inversion with differentiable programming and machine learning},
	journal = {The Leading Edge},
	volume = {42},
	year = {2023},
	note = {(The Leading Edge)},
	month = {07},
	pages = {452-516},
	abstract = {We present the Seismic Laboratory for Imaging and Modeling/Monitoring (SLIM) open-source software framework for computational geophysics and, more generally, inverse problems involving the wave-equation (e.g., seismic and medical ultrasound), regularization with learned priors, and learned neural surrogates for multiphase flow simulations. By integrating multiple layers of abstraction, our software is designed to be both readable and scalable. This allows researchers to easily formulate their problems in an abstract fashion while exploiting the latest developments in high-performance computing. We illustrate and demonstrate our design principles and their benefits by means of building a scalable prototype for permeability inversion from time-lapse crosswell seismic data, which aside from coupling of wave physics and multiphase flow, involves machine learning.},
	keywords = {CCS, deep learning, Fourier neural operators, GCS, Imaging, inversion, invertible networks, machine learning, monitoring, multiphysics, Normalizing flows, SLIM, software, time-lapse},
	url = {https://library.seg.org/doi/10.1190/tle42070474.1},
	presentation = {https://slim.gatech.edu/Publications/Public/Journals/TheLeadingEdge/2023/louboutin2023lmi/le_software.pdf},
	url2 = {https://slim.gatech.edu/Publications/Public/Journals/TheLeadingEdge/2023/louboutin2023lmi/le_software.html},
	author = {Mathias Louboutin and Ziyi Yin and Rafael Orozco and Thomas J. Grady II and Ali Siahkoohi and Gabrio Rizzuti and Philipp A. Witte and Olav M{\o}yner and Gerard J. Gorman and Felix J. Herrmann}
}
@conference {herrmann2023SIAMCSEtns,
	title = {The Next Step: Interoperable Domain-Specific Programming},
	booktitle = {SIAM Conference on Computational Science and Engineering},
	year = {2023},
	note = {(SIAM CSE, Amsterdam)},
	month = {02},
	abstract = {Even though domain-specific programming approaches allow for readable, scalable, and maintainable software without sacrificing performance, the new paradigm of learned physics-informed models calls for an interdisciplinary approach typically involving multiple domain-specific languages. Take for example the problem of inverting for the fluid-flow properties from time-lapse seismic data, which entails domain-specific programming on the intersection of wave simulators, matrix-free linear algebra, learned neural surrogates for two-phase flow, and prior and posterior distributions for the fluid-flow properties. While domain-specific solutions exist for each of these sub-disciplines, integrating these approaches {\textendash} which may involve different programming languages {\textendash} into a single coupled scalable inversion framework that supports algorithmic differentiation can be a challenge. However, we show that challenges like this can be met when working with proper abstractions. In our inversion example, this involves math-inspired symbolic abstractions for numerical solutions of the wave equation (Devito), matrix-free implementations for its Jacobians (JUDI.jl), abstractions for Automatic Differentiation (ChainRules.jl), and homegrown implementations for conditional Invertible Neural Networks (InvertibleNetworks.jl) and Fourier Neural Operators (ParametricOperators.jl).},
	keywords = {algorithms, deep learning, devito, end-to-end, Fourier neural operators, GCS, JUDI, Jutul, SIAM, software, workshop},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SIAMCSE/2023/herrmann2023SIAMCSEtns/index.html},
	author = {Felix J. Herrmann and Mathias Louboutin and Thomas J. Grady II and Ziyi Yin and Rishi Khan}
}
@conference {louboutin2022SEGWSaaa,
	title = {Abstractions and algorithms for efficient seismic inversion on accelerators},
	booktitle = {IMAGE Workshop on What{\textquoteright}s Next for FWI and its Derived Products},
	year = {2022},
	note = {(IMAGE Workshop, Houston)},
	month = {09},
	abstract = {We present the SLIM open-source software framework for computational geophysics, and more generally, inverse problems based on the wave-equation (e.g., medical ultrasound). We developed a software environment aimed at scalable research and development by designing multiple layers of abstractions. This environment allows the researchers to easily formulate their problem in an abstract fashion, while still being able to exploit the latest developments in high-performance computing. We illustrate and demonstrate the benefits of our software design on many geophysical applications, including seismic inversion and physics-informed machine learning for geophysics (e.g., loop unrolled imaging, uncertainty quantification), all while facilitating the integration of external software.},
	keywords = {algorithms, deep learning, devito, FWI, Imaging, JUDI, LSRTM, SEG, software, workshop},
	url = {https://www.imageevent.org/Workshop/next-fwi-derived-products},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2022/louboutin2022SEGWSaaa/index.html},
	author = {Mathias Louboutin and Felix J. Herrmann}
}
@conference {louboutin2022RHPCafa,
	title = {Abstractions for at-scale seismic inversion},
	booktitle = {Rice Oil and Gas High Performance Computing Conference 2022},
	year = {2022},
	note = {Rice Oil and Gas High Performance Computing Conference 2022},
	month = {03},
	pages = {Thursday Workshop: Devito Training and Hackathon},
	abstract = {We present the SLIM open-source software framework for computational geophysics, and more generally, inverse problems based on the wave-equation (e.g., medical ultrasound). We developed a software environment aimed at scalable research and development by designing multiple layers of abstractions. This environment allows the researchers to easily formulate their problem in an abstract fashion, while still being able to exploit the latest developments in high-performance computing. We illustrate and demonstrate the benefits of our software design on many geophysical applications, including seismic inversion and physics-informed machine learning for geophysics (e.g., loop unrolled imaging, uncertainty quantification), all while facilitating the integration of external software.},
	keywords = {CCS, devito, FWI, HPC, inversion, JUDI, machine learning, RHPC, software, Uncertainty quantification},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/RHPC/2022/louboutin2022RHPCafa/RiceHPC22.pdf},
	url2 = {https://youtu.be/scRTbP8w6Wk?t=4542},
	author = {Mathias Louboutin and Ali Siahkoohi and Ziyi Yin and Rafael Orozco and Thomas J. Grady II and Yijun Zhang and Philipp A. Witte and Gabrio Rizzuti and Felix J. Herrmann}
}
@conference {louboutin2022SEGais,
	title = {Accelerating innovation with software abstractions for scalable computational geophysics},
	booktitle = {International Meeting for Applied Geoscience and Energy Expanded Abstracts},
	year = {2022},
	note = {(IMAGE, Houston)},
	month = {05},
	abstract = {We present the SLIM open-source software framework for computational geophysics, and more generally, inverse problems based on the wave-equation (e.g., medical ultrasound). We developed a software environment aimed at scalable research and development by designing multiple layers of abstractions. This environment allows the researchers to easily formulate their problem in an abstract fashion, while still being able to exploit the latest developments in high-performance computing. We illustrate and demonstrate the benefits of our software design on many geophysical applications, including seismic inversion and physics-informed machine learning for geophysics(e.g., loop unrolled imaging, uncertainty quantification), all while facilitating the integration of external software.},
	keywords = {CCS, devito, FWI, HPC, inversion, JUDI, machine learning, SEG, software, Uncertainty quantification},
	doi = {10.1190/image2022-3750561.1},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2022/louboutin2022SEGais/louboutin_seg22.html},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2022/louboutin2022SEGais/index.html},
	author = {Mathias Louboutin and Philipp A. Witte and Ali Siahkoohi and Gabrio Rizzuti and Ziyi Yin and Rafael Orozco and Felix J. Herrmann}
}
@presentation {yin2022TRANSFORMjulia,
	title = {Julia for Geoscience},
	year = {2022},
	month = {04},
	abstract = {In this tutorial, we will introduce the Julia programming language to the geoscience community, covering topics such as I/O, data processing, inversion, and machine learning. We will begin by installing Julia and relevant packages. Through a series of tutorials, we will demonstrate Julia{\textquoteright}s abstraction power and show how to load and plot data, write your own functions/operators, form and solve a geophysical inverse problem, and demonstrate how to integrate wave-equation solvers in Julia with machine learning frameworks. The intent of this presentation is to provide an introductory level tutorial that will be useful to members of the geoscience community.},
	keywords = {JOLI, JUDI, Julia, machine learning, SLIM, software, TRANSFORM},
	url = {https://transform.softwareunderground.org/2022-julia-for-geoscience},
	url2 = {https://www.youtube.com/watch?v=HyWfp3NzIbg},
	software = {https://github.com/slimgroup/SLIMTutorials},
	author = {Ziyi Yin and Mathias Louboutin and Philipp A. Witte and Ali Siahkoohi and Gabrio Rizzuti and Rafael Orozco and Henryk Modzelewski and Felix J. Herrmann}
}
@presentation {louboutin2022ML4SEISMICmos,
	title = {ML4Seismic open-source software: updates and developments},
	year = {2022},
	month = {11},
	abstract = {Software is at the core of research and development in inverse problems. At SLIM, we have experience developing scalable and performant software, such as our legacy parallel MATLAB framework. With ML4Seismic, we are dedicated to build on this experience to develop HPC open source software (OSS) for the scientific community in collaboration with our partners. In this talk, we will describe our OSS Julia and Python environment, our high-level abstraction principles, and the range of solutions we offer for seismic processing and inversion and for machine learning. We will emphasize our aim to provide scalable software that can be easily applied to industrial problems.},
	keywords = {ML4SEISMIC, open-source, SLIM, software},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2022/louboutin2022ML4SEISMICmos/index.html},
	author = {Mathias Louboutin and Ziyi Yin and Rafael Orozco and Thomas J. Grady II and Felix J. Herrmann}
}
@presentation {louboutin2021ML4SEISMICmos,
	title = {ML4Seismic open source software environment},
	year = {2021},
	month = {11},
	abstract = {Software is at the core of research and development in inverse problems. At SLIM, we have experience developing scalable and performant software, such as our legacy parallel MATLAB framework. With ML4Seismic, we are dedicated to build on this experience to develop HPC open source software (OSS) for the scientific community in collaboration with our partners. In this talk, we will describe our OSS Julia and Python environment, our high-level abstraction principles, and the range of solutions we offer for seismic processing and inversion and for machine learning. We will emphasize our aim to provide scalable software that can be easily applied to industrial problems.},
	keywords = {ML4SEISMIC, SLIM, software},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2021/louboutin2021ML4SEISMICmos/Mon-10-10-Louboutin.pdf},
	author = {Mathias Louboutin}
}
@presentation {louboutin2021ML4SEISMICrla,
	title = {Randomized linear algebra for inversion},
	year = {2021},
	month = {11},
	abstract = {Inverse problems in exploration geophysics or machine learning heavily relies on linear algebra and large matrices manipulations. To tackle the growing cost of storing these matrices, randomized algorithms have been developed to obtain information from these matrices via randomized sketching. Inspired by previous work on extended image volumes, we will first show in this talk how the seismic imaging condition can be expressed in a randomized linear algebra framework leading to drastic memory savings. In a second part, we will extend this idea to convolutional neural networks to reduce the memory cost of training by orders of magnitude. We will demonstrate the practicality of these methods on representative examples.},
	keywords = {FWI, HPC, inversion, ML4SEISMIC, randomized linear algebra, SLIM, software},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2021/louboutin2021ML4SEISMICrla/Tue-10-20-Louboutin.pdf},
	author = {Mathias Louboutin and Felix J. Herrmann}
}
@mastersthesis {witte2020THsal,
	title = {Software and algorithms for large-scale seismic inverse problems},
	year = {2020},
	note = {(PhD)},
	month = {02},
	school = {Georgia Institute of Technology},
	type = {phd},
	address = {Atlanta},
	abstract = {Seismic imaging and parameter estimation are an import class of inverse problems with practical relevance in resource exploration, carbon control and monitoring systems for geohazards. The goal of seismic inverse problems is to image subsurface geological structures and estimate physical rock properties such as wave speed or density. Mathematically, this can be achieved by solving an optimization problem in which we minimize the mismatch between numerically modeled data and observed data from a seismic survey. As wave propagation through a medium is described by wave equations, seismic inverse problems involve solving a large number of partial differential equations (PDEs) during numerical optimization using finite difference modeling, making them computationally expensive. Additionally, seismic inverse problems are typically ill-posed, non-convex or ill-conditioned, thus making them challenging from a mathematical standpoint as well. Similar to the field of deep learning, this calls for software that is not only optimized for performance, but also enables geophysical domain specialists to experiment with algorithms in high-level programming languages and using different computing environments, such as high-performance computing (HPC) clusters or the cloud. Furthermore, they call for the adaption of dimensionality reduction techniques and stochastic algorithms to address computational cost from the algorithmic side. This thesis makes three distinct contributions to address computational challenges encountered in seismic inverse problems and to facilitate algorithmic development in this field. Part one introduces a large-scale framework for seismic modeling and inversion based on the paradigm of separation of concerns, which combines a user interface based on domain specific abstractions with a Python package for automatic code generation to solve the underlying PDEs. The modular code structure makes it possible to manage the complexity of a seismic inversion code, while matrix-free linear operators and data containers enable the implementation of algorithms in a fashion that closely resembles the underlying mathematical notation. The second contribution of this thesis is an algorithm for seismic imaging, that addresses its high computational cost and large memory imprint through a combination of on-the-fly Fourier transforms, stochastic sampling techniques and sparsity-promoting optimization. The algorithm combines the best of both time- and frequency-domain inversion, as the memory imprint is independent of the number of modeled time steps, while time-to-frequency conversions avoid the need to solve Helmholtz equations, which involve inverting ill-conditioned matrices. Part three of this thesis introduces a novel approach for adapting the cloud for high-performance computing applications like seismic imaging, which does not rely on a fixed cluster of permanently running virtual machines. Instead, computational resources are automatically started and terminated by the cloud environment during runtime and the workflow takes advantage of cloud-native technologies such as event-driven computations and containerized batch processing. The performance and cost analysis shows that this approach is able to address current shortcomings of the cloud such as inferior resilience, while at the same time reducing operating cost up to an order of magnitude. As such, the workflow provides a strategy for cost effectively running large-scale seismic imaging problems in the cloud and is a viable alternative to conventional HPC clusters.},
	keywords = {algorithms, AWS, FWI, Imaging, PhD, RTM, seismic, software},
	url = {https://slim.gatech.edu/Publications/Public/Thesis/2020/witte2020THsal/witte2020THsal.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Thesis/2020/witte2020THsal/witte2020THsal_pres.pdf},
	author = {Philipp A. Witte}
}
@article {peters2019aos,
	title = {Algorithms and software for projections onto intersections of convex and non-convex sets with applications to inverse problems},
	journal = {arXiv e-prints},
	year = {2019},
	note = {(arXiv)},
	month = {03},
	abstract = {We propose algorithms and software for computing projections onto the intersection of multiple convex and non-convex constraint sets. The software package, called SetIntersectionProjection, is intended for the regularization of inverse problems in physical parameter estimation and image processing. The primary design criterion is working with multiple sets, which allows us to solve inverse problems with multiple pieces of prior knowledge. Our algorithms outperform the well known Dykstra{\textquoteright}s algorithm when individual sets are not easy to project onto because we exploit similarities between constraint sets. Other design choices that make the software fast and practical to use, include recently developed automatic selection methods for auxiliary algorithm parameters, fine and coarse grained parallelism, and a multilevel acceleration scheme. We provide implementation details and examples that show how the software can be used to regularize inverse problems. Results show that we benefit from working with all available prior information and are not limited to one or two regularizers because of algorithmic, computational, or hyper-parameter selection issues.},
	keywords = {algorithm, software},
	url = {http://arxiv.org/abs/1902.09699},
	author = {Bas Peters and Felix J. Herrmann}
}
@presentation {witte2019HOTCSEdsagip,
	title = {Domain-specific abstractions for large-scale geophysical inverse problems},
	year = {2019},
	note = {(HotCSE)},
	abstract = {During these times of sustained low oil prices, it is essential to look for new innovative ways to collect (time-lapse) seismic data at reduced costs and preferably also at reduced environmental impact. By now, there is an increasing body of corroborating evidence {\textemdash} whether these are simulated case studies or actual acquisitions on land and marine {\textemdash} that seismic acquisition based on the principles of compressive sensing delivers on this premise by removing the need to acquire replicated dense surveys. Up to ten-fold increases in acquisition efficiency have been reported by industry while there are indications that this breakthrough is only the beginning of a paradigm shift where full-azimuth time-lapse processing will become a reality. To familiarize the audience with this new technology, I will first describe the basics of compressive sensing, how it relates to missing-trace interpolation and simultaneous source acquisition, followed by how this technology is driving innovations in full-azimuth (time-lapse) acquisition, yielding high-fidelity data with a high degree of repeatability and at a fraction of the costs.},
	keywords = {full-waveform-inversion, Imaging, inversion, Julia, large-scale, software},
	url = {https://slim.gatech.edu/Publications/Public/Lectures/HotCSE/2019/witte2019HOTCSEdsagip/witte2019HOTCSEdsagip.pdf},
	author = {Philipp A. Witte and Mathias Louboutin and Felix J. Herrmann}
}
@article {witte2018alf,
	title = {A large-scale framework for symbolic implementations of seismic inversion algorithms in Julia},
	journal = {Geophysics},
	volume = {84},
	number = {3},
	year = {2019},
	note = {(Geophysics)},
	month = {03},
	pages = {F57-F71},
	abstract = {Writing software packages for seismic inversion is a very challenging task, since problems such as full-waveform inversion or least-squares imaging are both algorithmically and computationally demanding due to the large number of unknown parameters and the fact that we are propagating waves over many wavelengths. Software frameworks therefore need to combine both versatility and performance to provide geophysicists with the means and flexibility to implement complex algorithms that scale to exceedingly large 3D problems. Following these principles, we introduce the Julia Devito Inversion framework, an open-source software package in Julia for large-scale seismic modeling and inversion based on Devito, a domain-specific language compiler for automatic code generation. The framework consists of matrix-free linear operators for implementing seismic inversion algorithms that closely resembles the mathematical notation, a flexible resilient parallelization and an interface to Devito for generating optimized stencil code to solve the underlying wave equations. In comparison to many manually optimized industry codes written in low-level languages, our software is built on the idea of independent layers of abstractions and user interfaces with symbolic operators, making it possible to manage both the complexity of algorithms and performance optimizations, while preserving modularity, which allows for a level of expressiveness needed to formulate a broad range of wave-equation-based inversion problems. Through a series of numerical examples, we demonstrate that this allows users to implement algorithms for waveform inversion and imaging as simple Julia scripts that scale to large-scale 3D problems; thus providing a truly performant research and production framework.},
	keywords = {FWI, inversion, LSRTM, Modeling, software},
	doi = {10.1190/geo2018-0174.1},
	url = {https://slim.gatech.edu/Publications/Public/Journals/Geophysics/2019/witte2018alf/witte2018alf.pdf},
	author = {Philipp A. Witte and Mathias Louboutin and Navjot Kukreja and Fabio Luporini and Michael Lange and Gerard J. Gorman and Felix J. Herrmann}
}
@conference {herrmann2017SIAMdsa,
	title = {Domain-specific abstractions for full-waveform inversion},
	booktitle = {SIAM Conference on Computational Science and Engineering},
	year = {2017},
	note = {(SIAM Conference on Computational Science and Engineering, Atlanta)},
	month = {02-03},
	keywords = {FWI, Inverse problems, SIAM, software},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SIAM/2017/herrmann2017SIAMdsa/herrmann2017SIAMdsa_pres.pdf},
	author = {Felix J. Herrmann and Curt Da Silva}
}
@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}
}
@conference {lin2015IIPFWIsws,
	title = {Software and workflows at SLIM/SINBAD},
	booktitle = {Inaugural Full-Waveform Inversion Workshop},
	year = {2015},
	note = {(Natal, Brazil)},
	month = {08-09},
	keywords = {FWI, SLIM, software},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/IIPFWI/lin2015IIPFWIsws/lin2015IIPFWIsws_pres.pdf},
	author = {Tim T.Y. Lin and Curt Da Silva 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}
}
@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}
}
@manual {rossross07MNsda,
	title = {SLIMpy development and programming interface for seismic processing},
	year = {2007},
	abstract = {Inverse problems in (exploration) seismology are known for their large to very large scale. For instance, certain sparsity-promoting inversion techniques involve vectors that easily exceed unknowns while seismic imaging involves the construction and application of matrix-free discretized operators where single matrix-vector evaluations may require hours, days or even weeks on large compute clusters. For these reasons, software development in this field has remained the domain of highly technical codes programmed in low-level languages with little eye for easy development, code reuse and integration with (nonlinear) programs that solve inverse problems.Following ideas from the Symes{\textquoteright} Rice Vector Library and Bartlett{\textquoteright}s C++ object-oriented interface, Thyra, and Reduction/Transformation operators (both part of the Trilinos software package), we developed a software-development environment based on overloading. This environment provides a pathway from in-core prototype development to out-of-core and MPI {\textquoteright}production{\textquoteright} code with a high level of code reuse. This code reuse is accomplished by integrating the out-of-core and MPI functionality into the dynamic object-oriented programming language Python. This integration is implemented through operator overloading and allows for the development of a coordinate-free solver framework that (i) promotes code reuse; (ii) analyses the statements in an abstract syntax tree and (iii) generates executable statements. In the current implementation, we developed an interface to generate executable statements for the out-of-core unix-pipe based (seismic) processing package RSF-Madagascar (rsf.sf.net). The modular design allows for interfaces to other seismic processing packages and to in-core Python packages such as numpy. So far, the implementation overloads linear operators and element-wise reduction/transformation operators. We are planning extensions towards nonlinear operators and integration with existing (parallel) solver frameworks such as Trilinos.},
	keywords = {SLIM, software},
	url = {https://slim.gatech.edu/Software/SLIM/SLIMpy/},
	author = {Sean Ross-Ross and Henryk Modzelewski and Cody R. Brown and Felix J. Herrmann}
}
