@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}
}
@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}
}
@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}
}
@conference {lange2017SCIPYofd,
	title = {Optimised finite difference computation from symbolic equations},
	booktitle = {Python in Science Conference Proceedings},
	year = {2017},
	note = {(SciPy, Texas)},
	month = {07},
	pages = {89-96},
	abstract = {Domain-specific high-productivity environments are playing an increasingly important role in scientific computing due to the levels of abstraction and automation they provide. In this paper we introduce Devito, an open-source domain-specific framework for solving partial differential equations from symbolic problem definitions by the finite difference method. We highlight the generation and automated execution of highly optimized stencil code from only a few lines of high-level symbolic Python for a set of scientific equations, before exploring the use of Devito operators in seismic inversion problems.},
	keywords = {domain-specific languages, finite difference, symbolic Python},
	url = {http://conference.scipy.org/proceedings/scipy2017/michael_lange.html},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SciPy/2017/lange2017SCIPYofd/lange2017SCIPYofd_pres.pdf},
	author = {Michael Lange and Navjot Kukreja and Fabio Luporini and Mathias Louboutin and Charles Yount and Jan H{\"u}ckelheim and Gerard Gorman}
}
