@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}
}
@article {witte2019TPDedas,
	title = {An Event-Driven Approach to Serverless Seismic Imaging in the Cloud},
	journal = {IEEE Transactions on Parallel and Distributed Systems},
	volume = {31},
	number = {9},
	year = {2020},
	note = {(IEEE Transactions on Parallel and Distributed Systems)},
	month = {03},
	pages = {2032-2049},
	abstract = {Adapting the cloud for high-performance computing (HPC) is a challenging task, as software for HPC applications hinges on fast network connections and is sensitive to hardware failures. Using cloud infrastructure to recreate conventional HPC clusters is therefore in many cases an infeasible solution for migrating HPC applications to the cloud. As an alternative to the generic lift and shift approach, we consider the specific application of seismic imaging and demonstrate a serverless and event-driven pproach for running large-scale instances of this problem in the cloud. Instead of permanently running compute instances, our workflow is based on a serverless architecture with high throughput batch computing and event-driven computations, in which computational resources are only running as long as they are utilized. We demonstrate that this approach is very flexible and allows for resilient and nested levels of parallelization, including domain decomposition for solving the underlying partial differential equations. While the event-driven approach introduces some overhead as computational resources are repeatedly restarted, it inherently provides resilience to instance shut-downs and allows a significant reduction of cost by avoiding idle instances, thus making the cloud a viable alternative to on-premise clusters for large-scale seismic imaging.},
	keywords = {cloud, event-driven, Imaging, LSRTM, serverless},
	doi = {10.1109/TPDS.2020.2982626},
	url = {https://slim.gatech.edu/Publications/Public/Journals/IEEETPDS/2020/witte2019TPDedas/witte2019TPDedas.html},
	author = {Philipp A. Witte and Mathias Louboutin and Henryk Modzelewski and Charles Jones and James Selvage 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}
}
@conference {witte2019SEGedw,
	title = {Event-driven workflows for large-scale seismic imaging in the cloud},
	booktitle = {SEG Technical Program Expanded Abstracts},
	year = {2019},
	note = {(SEG, San Antonio)},
	month = {09},
	pages = {3984-3988},
	abstract = {Cloud computing has seen a large rise in popularity in recent years and is becoming a cost effective alternative to on-premise computing, with theoretically unlimited scalability. However, so far little progress has been made in adapting the cloud for high performance computing (HPC) tasks, such as seismic imaging and inversion. As the cloud does not provide the same type of fast and reliable connections as conventional HPC clusters, porting legacy codes developed for HPC environments to the cloud is ineffective and misses out on an opportunity to take advantage of new technologies presented by the cloud. We present a novel approach of bringing seismic imaging and inversion workflows to the cloud, which does not rely on a traditional HPC environment, but is based on serverless and event-driven computations. Computational resources are assigned dynamically in response to events, thus minimizing idle time and providing resilience to hardware failures. We test our workflow on two large-scale imaging examples and demonstrate that cost-effective HPC in the cloud is possible, but requires careful reconsiderations of how to bring software to the cloud.},
	keywords = {cloud, Imaging, large-scale, LS-RTM, RTM, SEG, workflow},
	doi = {10.1190/segam2019-3215069.1},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2019/witte2019SEGedw/witte2019SEGedw.html},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2019/witte2019SEGedw/witte2019SEGedw_pres.pdf},
	author = {Philipp A. Witte and Mathias Louboutin and Henryk Modzelewski and Charles Jones and James Selvage and Felix J. Herrmann}
}
@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 {lopez2017SINBADFmci,
	title = {Matrix Completion in Parallel Architectures: Julia Implementation},
	year = {2017},
	publisher = {SINBAD},
	abstract = {Matrix completion techniques offer potential tools for frugal seismic data acquisition, where dense acquisition is replaced by optimization. This shift of focus means that efficient numerical methods are critical for the implementation of these techniques in large-scale seismic applications. To this end, this talk modifies rank-penalization methodologies to suit parallel architectures. By adopting factorization-based alternating minimization schemes, each program can be decoupled into independent sub-problems handled in parallel. We showcase a distributed parallel execution in Julia and explore the scalability of the approach.},
	keywords = {Presentation, SINBAD, SINBADFALL2017, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2017/Fall/lopez2017SINBADFmci/lopez2017SINBADFmci.pdf},
	url2 = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2017/Fall/lopez2017SINBADFmci/lopez2017SINBADFmci.mov},
	author = {Oscar Lopez and Keegan Lensink and Rajiv Kumar and Henryk Modzelewski}
}
@presentation {fang2013SINBADsfwi,
	title = {Swift FWI},
	year = {2013},
	publisher = {SINBAD},
	abstract = {In 3D case, there is much more data and modeling is much more expensive. As a result, parallel computing is very important for 3D full-waveform inversion. Both domain decomposition and data decomposition need a large number of parallel computing resources. However, programs based on parallel MATLAB suffer from the limitation of licenses. In order to obtain a MATLAB licenses free solution, we use SWIFT, which is a fast and easy parallel scripting language. Once the original Mat file is complied to an executable file, SWIFT can run the code inside the executable file in parallel without using parallel MATLAB. We use the SWIFT to compute the object functions and gradients of different shots in parallel, and test the parallel 3D FWI code with overthrust data. This is joint work with Thomas Lai, Harsh Juneja, Bas Peters.},
	keywords = {Presentation, SINBAD, SINBADFALL2013, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2013/Fall/fang2013SINBADsfwi/fang2013SINBADsfwi.pdf},
	author = {Zhilong Fang and Henryk Modzelewski and Tristan van Leeuwen and Thomas Lai and Harsh Juneja and Bas Peters and Felix J. Herrmann}
}
@presentation {modzelewski2010SINBADsra,
	title = {Software releases and architecture},
	year = {2010},
	publisher = {SINBAD},
	keywords = {Presentation, SINBAD, SINBADFALL2010, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2010/Fall/modzelewski2010SINBADsra/modzelewski2010SINBADsra_pres.pdf},
	author = {Henryk Modzelewski}
}
@conference {modzelewski2008SINBADdas,
	title = {Design and specifications for SLIM{\textquoteright}s software framework},
	booktitle = {SINBAD 2008},
	year = {2008},
	abstract = {The SLIM group is actively developing software for seismic imaging. This talk will give a general overview of the software development during SINBAD project with focus on the final release in February 2008. The covered topics will include: 1) adopting Python for object-oriented programming, 2) including parallelism into the algorithms used in seismic imaging/modeling, 3) in-house algorithms for seismic imaging, and 4) contributions to Madagascar (RSF). The talk will serve as an introduction to the other presentations in the session "SINBAD Software releases".},
	keywords = {Presentation, SINBAD, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2008/modzelewski2008SINBADdas/modzelewski2008SINBADdas.pdf},
	author = {Henryk Modzelewski}
}
@manual {rossross08MNsai,
	title = {SLIMPy: a python interface for unix-pipe based coordinate-free scientific computing},
	year = {2008},
	month = {07},
	abstract = {SLIMpy is a Python interface that exposes the functionality of seismic data processing packages, such as MADAGASCAR, through oper ator overloading. SLIMpy provides a concrete coordinate-free implementation of classes for out-of-core linear (implicit matrix-vector), and element-wise operations, including calculation of norms and other basic vector operations. The library is intended to provide the user with an abstract sc ripting language to program iterative algorithms from numerical linear algebra. These algorithms require repeated evaluation of operators that were initially designed to be run as part of batch-oriented processing flows. The current implementation supports a plugin for Madagascar{\textquoteright}s out-of-core UNIX pipe-based applications and is extenable to pipe-based collections of programs such as Seismic Unix, SEPLib, and FreeUSP. To optimize perform ance, SLIMpy uses an Abstract Syntax Tree that parses the algorithm and optimizes the pipes.},
	url = {https://slim.gatech.edu/Software/SLIM/SLIMpy/},
	author = {Sean Ross-Ross and Henryk Modzelewski 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}
}
@conference {modzelewski2006SINBADdas,
	title = {Design and specifications for SLIM{\textquoteright}s software framework},
	booktitle = {SINBAD 2006},
	year = {2006},
	keywords = {Presentation, SINBAD, SLIM},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2006/modzelewski2006SINBADdas/modzelewski2006SINBADdas.pdf},
	author = {Henryk Modzelewski}
}
@conference {thomson2006SEGpwfd,
	title = {A parallel windowed fast discrete curvelet transform applied to seismic processing},
	booktitle = {SEG Technical Program Expanded Abstracts},
	volume = {25},
	year = {2006},
	pages = {2767-2771},
	publisher = {SEG},
	organization = {SEG},
	abstract = {We propose using overlapping, tapered windows to process seismic data in parallel. This method consists of numerically tight linear oper ators and adjoints that are suitable for use in iterative algorithms. This method is also highly scalable and makes parallel processing of large seismic data sets feasible. We use this scheme to define the Parallel Windowed Fast Discrete Curvelet Transform (PWFDCT), which we apply to a seismic data interpolation algorithm. The successful performance of our parallel processing scheme and algorithm on a two-dimensional synthetic data is shown.},
	keywords = {SEG},
	doi = {10.1190/1.2370099},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SEG/2006/thomson06SEGpwfd/thomson06SEGpwfd.pdf},
	author = {Darren Thomson and Gilles Hennenfent and Henryk Modzelewski and Felix J. Herrmann}
}
