@conference {petrenko2014EAGEaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	booktitle = {EAGE Annual Conference Proceedings},
	year = {2014},
	month = {06},
	abstract = {We implement the Kaczmarz row-projection algorithm (Kaczmarz (1937)) on a CPU host + FPGA accelerator platform using techniques of dataflow programming. This algorithm is then used as the preconditioning step in CGMN, a modified version of the conjugate gradients method (Bj{\"o}rck and Elfving (1979)) that we use to solve the time-harmonic acoustic isotropic constant density wave equation. Using one accelerator we achieve a speed-up of over 2{\texttimes} compared with one Intel core.},
	keywords = {CGMN, EAGE, FPGA, Helmholtz equation, Kaczmarz, reconfigurable computing},
	doi = {10.3997/2214-4609.20141141},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2014/petrenko2014EAGEaih/petrenko2014EAGEaih.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/EAGE/2014/petrenko2014EAGEaih/petrenko2014EAGEaih_pres.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Diego Oriato and Simon Tilbury and Felix J. Herrmann}
}
@conference {petrenko2014OGHPCaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	booktitle = {OGHPC},
	year = {2014},
	month = {03},
	abstract = {We implement the Kaczmarz row-projection algorithm [Kaczmarz, 1937] on a CPU host + FPGA accelerator platform using techniques of dataflow programming. This algorithm is then used as the preconditioning step in CGMN, a modified version of the conjugate gradients method [Bj?rck and Elfving, 1979] that we use to solve the time-harmonic acoustic isotropic constant density wave equation.},
	keywords = {CGMN, FPGA, Helmholtz equation, Kaczmarz, OGHPC, reconfigurable computing},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2014/petrenko2014OGHPCaih/petrenko2014OGHPCaih.pdf},
	presentation = {https://slim.gatech.edu/Publications/Public/Conferences/OGHPC/2014/petrenko2014OGHPCaih/petrenko2014OGHPCaih_poster.pdf},
	author = {Art Petrenko and Felix J. Herrmann and Diego Oriato and Simon Tilbury and Tristan van Leeuwen}
}
@presentation {petrenko2014SINBADaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	year = {2014},
	publisher = {SINBAD},
	abstract = {An implementation of seismic wave simulation on a platform consisting of a conventional host processor and a reconfigurable hardware accelerator is presented. This research is important in the field of exploration for oil and gas resources, where a 3D model of the subsurface is frequently required. By comparing seismic data collected in a real-world survey with synthetic data generated by simulated waves, it is possible to deduce such a model. However this requires many time-consuming simulations with different Earth models to find the one that best fits the measured data. Speeding up the wave simulations would allow more models to be tried, yielding a more accurate estimate of the subsurface. The reconfigurable hardware accelerator employed in this work is a field programmable gate array (FPGA). FPGAs are computer chips that consist of electronic building blocks that the user can configure and reconfigure to represent their algorithm in hardware. Whereas a traditional processor can be viewed as a pipeline for processing instructions, an FPGA is a pipeline for processing data. The chief advantage of the FPGA is that all the instructions in the algorithm are already hardwired onto the chip. This means that execution time depends only on the amount of data to be processed, and not on the complexity of the algorithm. The main contribution is an implementation of the well-known Kaczmarz row projection algorithm on the FPGA, using techniques of dataflow programming. This kernel is used as the preconditioning step of CGMN, a modified version of the conjugate gradients method that is used to solve the time-harmonic acoustic isotropic constant density wave equation. Using one FPGA accelerator, the current implementation allows seismic wave simulations to be performed over twice as fast, compared to running on one Intel Xeon E5-2670 core. I also discuss the effect of modifications of the algorithm necessitated by the hardware on the convergence properties of CGMN. Finally, a specific plan for future work is set-out in order to fully exploit the accelerator platform, and my work is set in its larger context},
	keywords = {Presentation, SINBAD, SINBADSPRING2014, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2014/Spring/petrenko2014SINBADaih/petrenko2014SINBADaih.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Diego Oriato and Simon Tilbury and Felix J. Herrmann}
}
@presentation {petrenko2013SINBADaih,
	title = {Accelerating an iterative Helmholtz solver with FPGAs},
	year = {2013},
	publisher = {SINBAD},
	abstract = {Solution of the Helmholtz equation is the main computational burden of full-waveform inversion in the frequency domain. For this task we employ the CARP-CG algorithm (Gordon \& Gordon 2010), an iterative solver that preconditions the original Helmholtz system into an equivalent symmetric positive definite system and then applies the method of conjugate gradients. Forming the matrix for the new system is not necessary as its multiplicative action on a vector is implemented using a series of projections onto the rows of the original system. Our contribution is implementing CARP-CG for a host + accelerator (FPGA) computing environment. The computational paradigm is one of dataflow: vector and matrix elements are streamed from memory through the accelerator which applies the row projections. The advantage of an FPGA to process streams of data is that unless the algorithm is memory bandwidth limited, computation time is directly proportional to the amount of data. The complexity of the algorithm implemented on the FPGA is irrelevant since all the operations programmed onto the FPGA happen in the same clock tick. In contrast, on a CPU, more complex algorithms require more clock ticks as the instructions are executed sequentially, or with only a small amount of parallelism. Ongoing work porting the CARP-CG algorithm to the accelerator is presented.},
	keywords = {Presentation, SINBAD, SINBADFALL2013, SLIM},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/SINBAD/2013/Fall/petrenko2013SINBADaih/petrenko2013SINBADaih.pdf},
	author = {Art Petrenko and Tristan van Leeuwen and Felix J. Herrmann and Diego Oriato and Simon Tilbury}
}
