@article {kukreja2020lcc,
	title = {Lossy Checkpoint Compression in Full Waveform Inversion},
	journal = {Geoscientific Model Development},
	volume = {15},
	number = {9},
	year = {2022},
	note = {(Geoscientific Model Development)},
	month = {5},
	pages = {3815-3829},
	abstract = {This paper proposes a new method that combines check-pointing methods with error-controlled lossy compression for large-scale high-performance Full-Waveform Inversion (FWI), an inverse problem commonly used in geophysical exploration. This combination can significantly reduce data movement, allowing a reduction in run time as well as peak memory. In the Exascale computing era, frequent data transfer (e.g., memory bandwidth, PCIe bandwidth for GPUs, or network) is the performance bottleneck rather than the peak FLOPS of the processing unit. Like many other adjoint-based optimization problems, FWI is costly in terms of the number of floating-point operations, large memory footprint during backpropagation, and data transfer overheads. Past work for adjoint methods has developed checkpointing methods that reduce the peak memory requirements during backpropagation at the cost of additional floating-point computations. Combining this traditional checkpointing with error-controlled lossy compression, we explore the three-way tradeoff between memory, precision, and time to solution. We investigate how approximation errors introduced by lossy compression of the forward solution impact the objective function gradient and final inverted solution. Empirical results from these numerical experiments indicate that high lossy-compression rates (compression factors ranging up to 100) have a relatively minor impact on convergence rates and the quality of the final solution.},
	keywords = {checkpointing, full waveform inversion, GMD, Lossy compression, memory},
	doi = {10.5194/gmd-15-3815-2022},
	url = {https://arxiv.org/pdf/2009.12623.pdf},
	author = {Navjot Kukreja and Jan Hueckelheim and Mathias Louboutin and John Washbourne and Paul H. J. Kelly and Gerard J. Gorman}
}
@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}
}
@article {luporini2018aap,
	title = {Architecture and performance of Devito, a system for automated stencil computation},
	journal = {ACM Trans. Math. Softw.},
	volume = {46},
	number = {1},
	year = {2020},
	note = {(ACM Trans. Math. Softw.)},
	month = {04},
	abstract = {Stencil computations are a key part of many high-performance computing applications, such as image processing, convolutional neural networks, and finite-difference solvers for partial differential equations. Devito is a framework capable of generating highly-optimized code given symbolic equations expressed in Python, specialized in, but not limited to, affine (stencil) codes. The lowering process {\textendash} from mathematical equations down to C++ code {\textendash} is performed by the Devito compiler through a series of intermediate representations. Several performance optimizations are introduced, including advanced common sub-expressions elimination, tiling and parallelization. Some of these are obtained through well-established stencil optimizers, integrated in the back-end of the Devito compiler. The architecture of the Devito compiler, as well as the performance optimizations that are applied when generating code, are presented. The effectiveness of such performance optimizations is demonstrated using operators drawn from seismic imaging applications.},
	keywords = {compiler, finite difference method, performance optimization, stencil, structured grid, symbolic processing},
	doi = {10.1145/3374916},
	url = {https://slim.gatech.edu/Publications/Public/Journals/ACMTOMS/2020/luporini2018aap/luporini2018aap.pdf},
	author = {Fabio Luporini and Mathias Louboutin and Michael Lange and Navjot Kukreja and Philipp A. Witte and Jan H{\"u}ckelheim and Charles Yount and Paul H. J. Kelly and Felix J. Herrmann and Gerard J. Gorman}
}
@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}
}
@conference {herrmann2018SMCtpa,
	title = {The power of abstraction in Computational Exploration Seismology},
	booktitle = {Smoky Mountains Computational Sciences and Engineering Conference},
	year = {2018},
	month = {08},
	abstract = {The field of Computational Exploration Seismology has over the years benefited tremendously from developments in HPC. Back in the 80{\textquoteright}s and early 90{\textquoteright}s, the oil \& gas industry was among the main drivers of HPC technology with a resurgence about ten years ago with the advent of full-waveform inversion-i.e., an adjoint-state method for inverse problems that involve the wave equation. While the combination of hardware developments and tedious manual coding efforts have resulted in major improvements, the rate of innovations is slow in part because of the inherent complexities of the mostly monolithic code bases. As a result, innovations make it too slowly into these optimized codes. This stifles innovation and could prevent adaptation of important developments such as machine learning with deep convolutional neural networks into existing workflows. In comparison, the technological advances in the academic as well as commercial machine learning communities have been much faster in part because of robust and well abstracted code bases such as PyTorch and TensorFlow. Since both machine learning and adjoint-state methods rely on back propagation strong similarities exist ready to be exploited. During my talk, I will discuss lessons we learned in finding the appropriate abstractions, read Domain Specific Language, for time-stepping stencil-based finite differences in Devito, and how this is relevant for machine learning with deep networks. I will also share a vision on how ideas from machine learning can be merged into the development of the next-generation of wave-equation based imaging codes. In particular, I will demonstrate the remarkable ability of deep convolutional networks to map low-fidelity dispersed numerical wave simulations to high-fidelity ones. I feel that this apparently generalizable capability of neural nets opens a complete new approach to tackle fundamental problems in computational exploration seismology.},
	keywords = {SMC},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SMC/2018/herrmann2018SMCtpa/herrmann2018SMCtpa_pres.pdf},
	author = {Felix J. Herrmann and Gerard J. 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 Ali Siahkoohi and Philipp A. Witte}
}
@presentation {gorman2016SINBADFopp,
	title = {Open Performance portablE SeismiC Imaging{\textendash}-OPESCI},
	year = {2016},
	publisher = {SINBAD},
	abstract = {In this project, we introduce OPESCI-FD, a Python package built on symbolic mathematics to automatically generate Finite Difference models from a high-level description of the model equations. We investigate applying this framework to generate the propagator program used in seismic imaging. We implement the 3D acoustic and anisotropic FD scheme as an example and demonstrate the advantages of usability, flexibility and accuracy of the framework. The design of OPESCI-FD aims to allow rapid development, analysis and optimisation of Finite Difference programs. OPESCI-FD is the foundation for continuing development by the OPESCI project team, building on the research presented in this report. This talk concludes by reviewing the further developments that are already under way, as well as the scope for extension to cater for other equations and numerical schemes. This joint work with SINBAD and SENAI CIMATEC and has received additional funding from Intel.},
	keywords = {Presentation, private, SINBAD, SINBADFALL2016, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2016/Fall/gorman2016SINBADFopp/gorman2016SINBADFopp.pdf},
	url2 = {https://slim.gatech.edu/Publications/Private/Conferences/SINBAD/2016/Fall/gorman2016SINBADFopp/gorman2016SINBADFopp.mov},
	author = {Gerard Gorman and Marcos de Aguiar and David Ham and Felix J. Herrmann and Paul H. J. Kelly and Navjot Kukreja and Michael Lange and Mathias Louboutin and Fabio Luporini and Paulius Velesko and Vincenzo Pandolfo and Felippe Vieira Zacarias}
}
