@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}
}
@presentation {rex2023ML4SEISMIClsp,
	title = {Large-scale parametric PDE approximations with model-parallel Fourier neural operators},
	year = {2023},
	month = {11},
	abstract = {Solving PDEs to simulate two-phase flow is expensive since it involves the inversion of large ill-conditioned matrices. FNOs represent a special type of neural network capable of approximating solutions to two-phase flow equations. In order to speed up this computation, we develop a high-level software abstraction tool to exploit the linearly separable property of Fourier Transforms via Kronecker products. We perform a series of all-to-all operations where we partition the data to apply the operations in a distributed fashion. We apply these FNOs to predict the evolution of CO2-plumes in subsurface environments. Our model takes an input permeability model, and outputs time-varying CO2 saturations in a quick and cost-effective manner. Additionally, our research involves developing a distributed matrix-free abstraction library that can be used to represent any generic linear and nonlinear operator. This library is scalable and auto-differentiable thanks to the hand-written customized AD rules, allowing us to represent and train any network. We provide an evaluation on the accuracy of FNO simulations compared to traditional PDE simulations in solving various classes of PDEs.},
	keywords = {CCS, deep learning, Fourier neural operators, HPC, ML4SEISMIC, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2023/rex2023ML4SEISMIClsp},
	author = {Richard Rex and Thomas J. Grady II and Rishi Khan and Ziyi Yin and Felix J. Herrmann}
}
@article {grady2022SCtll,
	title = {Model-Parallel Fourier Neural Operators as Learned Surrogates for Large-Scale Parametric PDEs},
	journal = {Computers \& Geosciences},
	volume = {178},
	year = {2023},
	note = {(Computers \& Geosciences)},
	month = {07},
	pages = {105402},
	abstract = {Fourier neural operators (FNOs) are a recently introduced neural network architecture for learning solution operators of partial differential equations (PDEs), which have been shown to perform significantly better than comparable deep learning approaches. Once trained, FNOs can achieve speed-ups of multiple orders of magnitude over conventional numerical PDE solvers. However, due to the high dimensionality of their input data and network weights, FNOs have so far only been applied to two-dimensional or small three-dimensional problems. To remove this limited problem-size barrier, we propose a model-parallel version of FNOs based on domain-decomposition of both the input data and network weights. We demonstrate that our model-parallel FNO is able to predict time-varying PDE solutions of over 2.6 billion variables on Perlmutter using up to 512 A100 GPUs and show an example of training a distributed FNO on the Azure cloud for simulating multiphase CO2 dynamics in the Earth{\textquoteright}s subsurface.},
	keywords = {CCS, Computers and Geosciences, deep learning, Fourier neural operators, HPC, large-scale, Model Parallelism, Multiphase Flow, Operator Learning},
	doi = {10.1016/j.cageo.2023.105402},
	url = {https://slim.gatech.edu/Publications/Public/Journals/ComputersAndGeosciences/2023/grady2022SCtll/grady2022SCtll.pdf},
	software = {https://github.com/slimgroup/dfno},
	author = {Thomas J. Grady II and Rishi Khan and Mathias Louboutin and Ziyi Yin and Philipp A. Witte and Ranveer Chandra and Russell J. Hewett 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 {grady2022ML4SEISMICesn,
	title = {Effective scaling of numerical surrogates via domain-decomposed Fourier neural operators},
	year = {2022},
	month = {11},
	abstract = {Numerical surrogates are models which learn to mimic a complex physical process (such as the solution to a PDE produced by a solver) from a set of input/output pairs. Fourier neural operators (FNOs) are a specific type of numerical surrogate which use a learned matched filter to quickly approximate solutions to relatively smooth complex physical processes. In the case of carbon capture sequestration (CCS) technology, FNOs have been shown to well-approximate solutions to the two-phase flow equations, with speedups of 1,000 to 10,000 times at inference time versus a tradtitional solver. This speed combined with the fact that FNOs are differentiable with respect to their input parameters allows for inverse and uncertainty quantification problems to theoretically be solved on real 3D data, a previously intractible task. However, due to the size of the input data, network weights, and optimizer state, FNOs have thus far been limited to small to medium 2D and 3D problems, well below the size of an industry standard such as the Sleipner benchmark. Here we alleviate this problem by proposing a model-parallel FNO which makes use of domain decomposition of the input data and network weights, and exploits architectural features of FNOs to also include a natural form of asynchronous pipeline parallelism. Our network can scale to arbitrary problem sizes on CPU and GPU systems.},
	keywords = {CCS, deep learning, Fourier neural operators, HPC, ML4SEISMIC, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2022/grady2022ML4SEISMICesn/index.html},
	author = {Thomas J. Grady II and Rishi Khan and Mathias Louboutin and Ziyi Yin and Philipp A. Witte and Ranveer Chandra and Russell J. Hewett and Felix J. Herrmann}
}
@techreport {louboutin2021NIPSmcte,
	title = {Low-memory stochastic backpropagation with multi-channel randomized trace estimation},
	number = {TR-CSE-2021-1},
	year = {2021},
	month = {06},
	abstract = {Thanks to the combination of state-of-the-art accelerators and highly optimized open software frameworks, there has been tremendous progress in the performance of deep neural networks. While these developments have been responsible for many breakthroughs, progress towards solving large-scale problems, such as video encoding and semantic segmentation in 3D, is hampered because access to on-premise memory is often limited. Instead of relying on (optimal) checkpointing or invertibility of the network layers{\textendash}-to recover the activations during backpropagation{\textendash}-we propose to approximate the gradient of convolutional layers in neural networks with a multi-channel randomized trace estimation technique. Compared to other methods, this approach is simple, amenable to analyses, and leads to a greatly reduced memory footprint. Even though the randomized trace estimation introduces stochasticity during training, we argue that this is of little consequence as long as the induced errors are of the same order as errors in the gradient due to the use of stochastic gradient descent. We discuss the performance of networks trained with stochastic backpropagation and how the error can be controlled while maximizing memory usage and minimizing computational overhead.},
	keywords = {Convolutions, HPC, Low Memory, machine learning, randomized linear algebra},
	url = {https://slim.gatech.edu/Publications/Public/TechReport/2021/louboutin2021NIPSmcte/louboutin2021NIPSmcte.pdf},
	software = {https://github.com/slimgroup/XConv},
	author = {Mathias Louboutin and Ali Siahkoohi and Rongrong Wang and Felix J. Herrmann}
}
@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}
}
@presentation {witte2021ML4SEISMICrtc,
	title = {Redwood {\textendash} towards clusterless supercomputing in the cloud},
	year = {2021},
	month = {11},
	abstract = {We present Redwood, a Julia framework for clusterless supercomputing in the cloud. Redwood provides a set of distributed programming macros that enable users to remotely execute Julia functions in parallel through cloud services for batch and serverless computing. We present the architecture and design of Redwood, as well as its application to existing Julia packages for machine learning and inverse problems.},
	keywords = {cloud computing, clusterless, HPC, Julia, ML4SEISMIC, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/ML4SEISMIC/2021/witte2021ML4SEISMICrtc/Mon-10-30-Witte.pdf},
	author = {Philipp A. Witte}
}
@conference {bisbas2020IPDPStbf,
	title = {Temporal blocking of finite-difference stencil operators with sparse "off-the-grid" sources},
	booktitle = {IEEE International Parallel and Distributed Processing Symposium},
	year = {2021},
	note = {(IPDPS, virtual)},
	month = {5},
	abstract = {Stencil kernels dominate a range of scientific applications including seismic and medical imaging, image processing, and neural networks. Temporal blocking is a performance optimisation that aims to reduce the required memory bandwidth of stencil computations by re-using data from the cache for multiple time steps. It has already been shown to be beneficial for this class of algorithms. However, optimising stencils for practical applications remains challenging. These computations often include sparsely located operators, not aligned with the computational grid ("off-the-grid"). For example, our work is motivated by sources that inject a wavefield and measurements interpolating grid values. The resulting data dependencies make the adoption of temporal blocking much more challenging. We propose a methodology to inspect these data dependencies and reorder the computation, leading to performance gains in stencil codes where temporal blocking has not been applicable. We implement this novel scheme in the Devito domain-specific compiler toolchain. Devito implements a domain-specific language embedded in Python to generate optimised partial differential equation solvers using the finite-difference method from high-level symbolic problem definitions. We evaluate our scheme using isotropic acoustic, anisotropic acoustic and isotropic elastic wave propagators of industrial significance. Performance evaluation, after auto-tuning, shows that this enables substantial performance improvement through temporal blocking, over highly-optimised vectorized spatially-blocked code of up to 1.6x.},
	keywords = {finite-difference, HPC, performance, wave-equation},
	doi = {10.1109/IPDPS49936.2021.00058},
	url = {https://arxiv.org/pdf/2010.10248.pdf},
	author = {George Bisbas and Fabio Luporini and Mathias Louboutin and Rhodri Nelson and Gerard Gorman and Paul H. J. Kelly}
}
@conference {louboutin2021SEGulm,
	title = {Ultra-low memory seismic inversion with randomized trace estimation},
	booktitle = {SEG Technical Program Expanded Abstracts},
	year = {2021},
	note = {(IMAGE, Denver)},
	month = {09},
	pages = {787-791},
	abstract = {Inspired by recent work on extended image volumes that lays the ground for randomized probing of extremely large seismic wavefield matrices, we present a memory frugal and computationally efficient inversion methodology that uses techniques from randomized linear algebra. By means of a carefully selected realistic synthetic example, we demonstrate that we are capable of achieving competitive inversion results at a fraction of the memory cost of conventional full-waveform inversion with limited computational overhead. By exchanging memory for negligible computational overhead, we open with the presented technology the door towards the use of low-memory accelerators such as GPUs.},
	keywords = {FWI, HPC, inversion, randomized linear algebra, SEG},
	doi = {10.1190/segam2021-3584072.1},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2021/louboutin2021SEGulm/louboutinp.html},
	url2 = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2021/louboutin2021SEGulm/louboutin2021SEGulm.mp4},
	software = {https://github.com/slimgroup/TimeProbeSeismic.jl},
	author = {Mathias Louboutin and Felix J. Herrmann}
}
@mastersthesis {louboutin2020THmfi,
	title = {Modeling for inversion in exploration geophysics},
	year = {2020},
	note = {(PhD)},
	month = {03},
	school = {Georgia Institute of Technology},
	type = {phd},
	address = {Atlanta},
	abstract = {Seismic inversion, and more generally geophysical exploration, aims at better understanding the earth{\textquoteright}s subsurface, which is one of today{\textquoteright}s most important challenges. Firstly, it contains natural resources that are critical to our technologies such as water, minerals and oil and gas. Secondly, monitoring the subsurface in the context of CO2 sequestration, earthquake detection and global seismology are of major interests with regard to safety and the environment hazards. However, the technologies to monitor the subsurface or find resources are scientifically extremely challenging. Seismic inversion can be formulated as a mathematical optimization problem that minimizes the difference between field recorded data and numerically modeled synthetic data. The process of solving this optimization problem then requires to numerically model, thousands of times, wave-propagation in large three-dimensional representations of part of the earth subsurface. The mathematical and computational complexity of this problem, therefore, calls for software design that abstracts these requirements and facilitates algorithm and software development. My thesis addresses some of the challenges that arise from these problems; mainly the computational cost and access to the right software for research and development. In the first part, I will discuss a performance metric that improves the current runtime-only benchmarks in exploration geophysics. This metric, the roofline model, first provides insight at the hardware level of the performance of a given implementation relative to the maximum achievable performance. Second, this study demonstrates that the choice of numerical discretization has a major impact on the achievable performance depending on the hardware at hand and shows that a flexible framework with respect to the discretization parameters is necessary. In the second part, I will introduce and describe Devito, a symbolic finite-difference DSL that provides a high-level interface to the definition of partial differential equations (PDE) such as the wave equation. Devito, from the symbolic definition of PDEs, then generates and compiles highly optimized C code on-the-fly to compute the solution of the PDE. The combination of the high-level abstractions and the just-in-time compiler enable research for geophysical exploration and PDE-constrainted optimization based on the paradigm of separation of concerns. This allows researchers to concentrate on their respective field of study while having access to computationally performant solvers with a flexible and easy to use interface to successfully implement complex representations of the physics. The second part of my thesis will be split into two sub-parts; first describing the symbolic application programming interface (API), before describing and benchmarking the just-in-time compiler. I will end my thesis with concluding remarks, the latest developments and a brief description of projects that were enabled by Devito.},
	keywords = {finite-differences, FWI, HPC, Imaging, inversion, Modeling, performance, PhD, RTM},
	url = {https://slim.gatech.edu/Publications/Public/Thesis/2020/louboutin2020THmfi/louboutin2020THmfi.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Thesis/2020/louboutin2020THmfi/louboutin2020THmfi_pres.pdf},
	author = {Mathias Louboutin}
}
@techreport {louboutin2020SCsta,
	title = {Scaling through abstractions {\textendash} high-performance vectorial wave simulations for seismic inversion with Devito},
	number = {TR-CSE-2020-3},
	year = {2020},
	month = {4},
	institution = {Georgia Institute of Technology},
	abstract = {[Devito] is an open-source Python project based on domain-specific language and compiler technology. Driven by the requirements of rapid HPC applications development in exploration seismology, the language and compiler have evolved significantly since inception. Sophisticated boundary conditions, tensor contractions, sparse operations and features such as staggered grids and sub-domains are all supported; operators of essentially arbitrary complexity can be generated. To accommodate this flexibility whilst ensuring performance, data dependency analysis is utilized to schedule loops and detect computational-properties such as parallelism. In this article, the generation and simulation of MPI-parallel propagators (along with their adjoints) for the pseudo-acoustic wave-equation in tilted transverse isotropic media and the elastic wave-equation are presented. Simulations are carried out on industry scale synthetic models in a HPC Cloud system and reach a performance of 28TFLOP/s, hence demonstrating Devito{\textquoteright}s suitability for production-grade seismic inversion problems.},
	keywords = {devito, elastic, finite-difference, HPC, large-scale, RTM, TTI},
	url = {https://slim.gatech.edu/Publications/Public/TechReport/2020/louboutin2020SCsta/louboutin2020SCsta.html},
	author = {Mathias Louboutin and Fabio Luporini and Philipp A. Witte and Rhodri Nelson and George Bisbas and Jan Thorbecke and Felix J. Herrmann and Gerard Gorman}
}
@conference {witte2019RHPCssi,
	title = {Serverless seismic imaging in the cloud},
	booktitle = {Rice Oil and Gas High Performance Computing Conference 2020},
	year = {2020},
	note = {Rice Oil and Gas High Performance Computing Conference 2020},
	month = {03},
	abstract = {This talk presents a serverless approach to seismic imaging in the cloud based on high-throughput containerized batch processing, event-driven computations and a domain-specific language compiler for solving the underlying wave equations. A 3D case study on Azure demonstrates that this approach allows reducing the operating cost of up to a factor of 6, making the cloud a viable alternative to on-premise HPC clusters for seismic imaging.},
	keywords = {cloud, HPC, reverse-time migration, serverless},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/RHPC/2019/witte2019RHPCssi/witte2019RHPCssi.html},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/RHPC/2019/witte2019RHPCssi/witte2019RHPCssi_pres.pdf},
	url2 = {https://www.youtube.com/watch?v=epilCpa078A\&list=PLcsG4X8Zn_UA3m7tgIMbOdXD8eOEPiUYD\&index=17},
	author = {Philipp A. Witte and Mathias Louboutin and Charles Jones and Felix J. Herrmann}
}
@conference {herrmann2019EAGEHPCaii,
	title = {Accelerating ideation and innovation cheaply in the Cloud the power of abstraction, collaboration and reproducibility},
	booktitle = {4th EAGE Workshop on High-performance Computing},
	year = {2019},
	note = {(EAGE HPC Workshop, Dubai)},
	month = {10},
	keywords = {cloud, devito, EAGE, HPC, JUDI},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/EAGEHPC/2019/herrmann2019EAGEHPCaii/herrmann2019EAGEHPCaii_pres.pdf},
	author = {Felix J. Herrmann and Charles Jones and Gerard Gorman and Jan H{\"u}ckelheim and Keegan Lensink and Paul H. J. Kelly and Navjot Kukreja and Henryk Modzelewski and Michael Lange and Mathias Louboutin and Fabio Luporini and James Selvages and Philipp A. Witte}
}
@article {kukreja2019PASCccd,
	title = {Combining checkpointing and data compression to accelerate adjoint-based optimization problems},
	journal = {Euro-Par 2019: Parallel Processing},
	year = {2019},
	note = {(Euro-Par 2019: Parallel Processing)},
	pages = {87-100},
	publisher = {Springer International Publishing},
	abstract = {Seismic inversion and imaging are adjoint-based optimization problems that processes up to terabytes of data, regularly exceeding the memory capacity of available computers. Data compression is an effective strategy to reduce this memory requirement by a certain factor, particularly if some loss in accuracy is acceptable. A popular alternative is checkpointing, where data is stored at selected points in time, and values at other times are recomputed as needed from the last stored state. This allows arbitrarily large adjoint computations with limited memory, at the cost of additional recomputations. In this paper we combine compression and checkpointing for the first time to compute a realistic seismic inversion. The combination of checkpointing and compression allows larger adjoint computations compared to using only compression, and reduces the recomputation overhead significantly compared to using only checkpointing.},
	keywords = {Adjoint-state, checkpointing, compression, FD, HPC, Inverse problems},
	doi = {10.1007/978-3-030-29400-7_7},
	url = {https://slim.gatech.edu/Publications/Public/Journals/PASC/2019/kukreja2019PASCccd/kukreja2019PASCccd.pdf},
	author = {Navjot Kukreja and Jan H{\"u}ckelheim and Mathias Louboutin and Paul Hovland and Gerard Gorman}
}
@article {louboutin2018dae,
	title = {Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration},
	journal = {Geoscientific Model Development},
	year = {2019},
	note = {(Geoscientific Model Development)},
	abstract = {We introduce Devito, a new domain-specific language for implementing high-performance finite difference partial differential equation solvers. The motivating application is exploration seismology where methods such as Full-Waveform Inversion and Reverse-Time Migration are used to invert terabytes of seismic data to create images of the earth{\textquoteright}s subsurface. Even using modern supercomputers, it can take weeks to process a single seismic survey and create a useful subsurface image. The computational cost is dominated by the numerical solution of wave equations and their corresponding adjoints. Therefore, a great deal of effort is invested in aggressively optimizing the performance of these wave-equation propagators for different computer architectures. Additionally, the actual set of partial differential equations being solved and their numerical discretization is under constant innovation as increasingly realistic representations of the physics are developed, further ratcheting up the cost of practical solvers. By embedding a domain-specific language within Python and making heavy use of SymPy, a symbolic mathematics library, we make it possible to develop finite difference simulators quickly using a syntax that strongly resembles the mathematics. The Devito compiler reads this code and applies a wide range of analysis to generate highly optimized and parallel code. This approach can reduce the development time of a verified and optimized solver from months to days.},
	keywords = {finite-differences, HPC, Modeling, wave-equation},
	doi = {10.5194/gmd-12-1165-2019},
	url = {https://slim.gatech.edu/Publications/Public/Journals/GMD/2019/louboutin2018dae/louboutin2018dae.pdf},
	author = {Mathias Louboutin and Michael Lange and Fabio Luporini and Navjot Kukreja and Philipp A. Witte and Felix J. Herrmann and Paulius Velesko and Gerard J. Gorman}
}
@techreport {witte2016OGHPClst,
	title = {A large-scale time-domain seismic modeling and inversion workflow in Julia},
	number = {TR-EOAS-2017-1},
	year = {2017},
	institution = {UBC},
	abstract = {We present our initial steps towards the development of a large-scale seismic modeling workflow in Julia that provides a framework for wave equation based inversion methods like full waveform inversion or least squares migration. Our framework is based on the Devito, a finite difference domain specific language compiler that generates highly optimized and parallel code. We develop a flexible workflow that is based on abstract matrixfree linear operators and enables developers to write code that closely resembles the underlying math, while at the same time leveraging highly optimized wave equation solvers, allowing us to solve large-scale three-dimensional inverse problems.},
	keywords = {HPC, inversion, Modelling},
	url = {https://slim.gatech.edu/Publications/Public/TechReport/2017/witte2016OGHPClst/witte2016OGHPClst.pdf},
	author = {Philipp A. Witte and Mathias Louboutin and Gerard Gorman and Felix J. Herrmann}
}
@conference {kukreja2016OGHPClsm,
	title = {Leveraging symbolic math for rapid development of applications for seismic modeling},
	booktitle = {OGHPC},
	year = {2017},
	note = {(Oil and Gas HPC Conference, Rice University)},
	month = {03},
	abstract = {Wave propagation kernels are the core of many commonly used algorithms for inverse problems in exploration geophysics. While they are easy to write and analyze for the simplied cases, the code quickly becomes complex when the physics needs to be made more precise or the performance of these codes is to be optimized. Signicant eort is repeated every time new forms of physics need to be implemented, or a new computing platform to be supported. The use of symbolic mathematics as a domain specic language (DSL) for input, combined with automatic generation of high performance code customized for the target hardware platform is a promising approach to maximize code reuse. Devito is a DSL for nite dierence that uses symbolic mathematics to generate optimized code for wave propagation based on a provided wave equation. It enables rapid application development in a eld where the average time spent on development has historically been in weeks and months. The Devito DSL system is completely wrapped within the Python programming language and the fact that the running code is in C is completely transparent, making it simple to include Devito as part of a larger work ow including multiple applications over a large cluster.},
	keywords = {finite differences, HPC, Modelling, OGHPC, time domain},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2017/kukreja2016OGHPClsm/kukreja2016OGHPClsm.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2017/kukreja2016OGHPClsm/kukreja2016OGHPClsm_pres.pdf},
	author = {Navjot Kukreja and Mathias Louboutin and Michael Lange and Fabio Luporini and Gerard Gorman}
}
@techreport {louboutin2016OGHPCocp,
	title = {Optimizing the computational performance of time-domain modelling{\textendash}-leveraging multiple right-hand-sides},
	number = {TR-EOAS-2017-2},
	year = {2017},
	institution = {UBC},
	abstract = {Exploration geophysics heavily relies upon fast solvers for the wave-equation and its adjoint. The main computational cost of a wave-equation solver is to compute the Laplacian, or more complex finite-difference operators, at every time step. The performance of many discretizations is limited by the relatively low operational intensity (number of floating point operations divided by memory traffic) of the finite-difference stencil. Solving the wave-equation for multiple sources/right-hand-sides (RHSs) at once mitigates this problem by increasing the operational intensity. This is implemented by rewriting the classical matrix-vector product into a matrix-matrix product where each column of the second matrix represent the solution wavefield for each given source. This minor modification to the solver is shown to achieve a 2-4 times speedup compared to a single source solver. We concentrate in this paper on acoustic modelling, but our approach can easily be extended to anisotropic or elastic cases for both forward and adjoint modelling.},
	keywords = {finite differences, HPC, Modelling, time domain},
	url = {https://slim.gatech.edu/Publications/Public/TechReport/2017/louboutin2016OGHPCocp/louboutin2016OGHPCocp.pdf},
	author = {Mathias Louboutin and Gerard Gorman and Felix J. Herrmann}
}
@article {louboutin2016ppf,
	title = {Performance prediction of finite-difference solvers for different computer architectures},
	journal = {Computers \& Geosciences},
	volume = {105},
	year = {2017},
	note = {(Computers \& Geosciences)},
	month = {08},
	pages = {148-157},
	abstract = {The life-cycle of a partial differential equation (PDE) solver is often characterized by three development phases: the development of a stable numerical discretization; development of a correct (verified) implementation; and the optimization of the implementation for different computer architectures. Often it is only after significant time and effort has been invested that the performance bottlenecks of a PDE solver are fully understood, and the precise details varies between different computer architectures. One way to mitigate this issue is to establish a reliable performance model that allows a numerical analyst to make reliable predictions of how well a numerical method would perform on a given computer architecture, before embarking upon potentially long and expensive implementation and optimization phases. The availability of a reliable performance model also saves developer effort as it both informs the developer on what kind of optimisations are beneficial, and when the maximum expected performance has been reached and optimisation work should stop. We show how discretization of a wave-equation can be theoretically studied to understand the performance limitations of the method on modern computer architectures. We focus on the roofline model, now broadly used in the high-performance computing community, which considers the achievable performance in terms of the peak memory bandwidth and peak floating point performance of a computer with respect to algorithmic choices. A first principles analysis of operational intensity for key time-stepping finite-difference algorithms is presented. With this information available at the time of algorithm design, the expected performance on target computer systems can be used as a driver for algorithm design.},
	keywords = {finite differences, HPC, Modeling, performance},
	doi = {https://doi.org/10.1016/j.cageo.2017.04.014},
	url = {https://slim.gatech.edu/Publications/Public/Journals/ComputersAndGeosciences/2016/louboutin2016ppf/louboutin2016ppf.pdf},
	author = {Mathias Louboutin and Michael Lange and Felix J. Herrmann and Navjot Kukreja and Gerard Gorman}
}
@conference {louboutin2017SIAMras,
	title = {Raising the abstraction to separate concerns: enabling different physics for geophysical exploration},
	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 = {finite differences, HPC, Modelling, SIAM, time domain},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SIAM/2017/louboutin2017SIAMras/louboutin2017SIAMras_pres.mov},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SIAM/2017/louboutin2017SIAMras/louboutin2017SIAMras_pres.pdf},
	author = {Mathias Louboutin and Michael Lange and Navjot Kukreja and Fabio Luporini and Felix J. Herrmann and Gerard Gorman}
}
@conference {lange2016dtg,
	title = {Devito: Towards a generic finite difference DSL using symbolic python},
	booktitle = {6th Workshop on Python for High-Performance and Scientific Computing},
	year = {2016},
	note = {(PyHPC, Utah)},
	month = {11},
	pages = {67-75},
	abstract = {Domain specific languages (DSL) have been used in a variety of fields to express complex scientific problems in a concise manner and provide automated performance optimization for a range of computational architectures. As such DSLs provide a powerful mechanism to speed up scientific Python computation that goes beyond traditional vectorization and pre-compilation approaches, while allowing domain scientists to build applications within the comforts of the Python software ecosystem. In this paper we present Devito, a new finite difference DSL that provides optimized stencil computation from high-level problem specifications based on symbolic Python expressions. We demonstrate Devito{\textquoteright}s symbolic API and performance advantages over traditional Python acceleration methods before highlighting its use in the scientific context of seismic inversion problems.},
	keywords = {acoustic, finite differences, HPC, inversion, Modelling, python, software optimization},
	doi = {10.1109/PyHPC.2016.9},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/PyHPC/2016/lange2016dtg/lange2016dtg.pdf},
	url2 = {https://slim.gatech.edu/Publications/Public/Conferences/PyHPC/2016/lange2016dtg/lange2016dtg_pres.pdf},
	author = {Michael Lange and Navjot Kukreja and Mathias Louboutin and Fabio Luporini and Felippe Vieira Zacarias and Vincenzo Pandolfo and Paulius Velesko and Paulius Kazakas and Gerard Gorman}
}
@conference {lin2015IIPFWIsdh,
	title = {The student-driven HPC environment at SLIM},
	booktitle = {Inaugural Full-Waveform Inversion Workshop},
	year = {2015},
	note = {(Natal, Brazil)},
	month = {08-09},
	abstract = {A major role of academic environments is to provide learning experiences for students to critically analyze and develop methods, both at a high-level of mathematical rigour, and at a low-enough level of implementation in order to yield experimental results on real datasets. Often these two goals are in conflict with each other, in terms of both learning time and attention. At SLIM, we strive to strike a balance between the two by abstracting away many of the low-level aspects of distributed HPC under a framework that matches syntactically with the mathematics of our field, while exposing enough control parameters for tuning performance characteristics. This talk will touch on the history of our efforts at SLIM, and culminate in an overview of our current method of interacting with the in-house compute cluster.},
	keywords = {FWI, HPC},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/IIPFWI/lin2015IIPFWIsdh/lin2015IIPFWIsdh_pres.pdf},
	author = {Tim T.Y. Lin and Felix J. Herrmann}
}
