Optimising GPR modelling: A practical, multi-threaded approach to 3D FDTD numerical modelling
School of Physical and Geographical Sciences, Keele University, Keele, Staffordshire ST5 5BG, UK
Computers & Geosciences, Volume 36, Issue 9, September 2010, Pages 1135-1144 (20 April 2010)
@article{millington2010optimising,
title={Optimising GPR modelling: A practical, multi-threaded approach to 3D FDTD numerical modelling},
author={Millington, TM and Cassidy, NJ},
journal={Computers & Geosciences},
issn={0098-3004},
year={2010},
publisher={Elsevier}
}
The demand for advanced interpretational tools has lead to the development of highly sophisticated, computationally demanding, 3D GPR processing and modelling techniques. Many of these methods solve very large problems with stepwise methods that utilise numerically similar functions within iterative computational loops. Problems of this nature are readily parallelised by splitting the computational domain into smaller, independent chunks for direct use on cluster-style, multi-processor supercomputers. Unfortunately, the implications of running such facilities, as well as time investment needed to develop the parallel codes, means that for most researchers, the use of these advanced methods is too impractical. In this paper, we propose an alternative method of parallelisation, that exploits the capabilities of the modern multi-core processors (upon which today’s desktop PCs are built) by multi-threading the calculation of a problem’s individual sub-solutions. To illustrate the approach, we have applied it to an advanced, 3D, finite-difference time-domain (FDTD) GPR modelling tool in which the calculation of the x, y and z orientated vector field components is multi-threaded. To be of practical use, the FDTD scheme must be able to deliver accurate results with short execution times and we, therefore, show that the performance benefits of our approach can deliver runtimes less than half those of the more conventional, serial programming techniques. We evaluate implementations of the technique using different programming languages (e.g., Matlab, Java, C++), which will facilitate the construction of a flexible modeling tool for use in future GPR research. The implementations are compared on a variety of typical hardware platforms, having between one and eight processing cores available, and also a modern GPU (graphical processing unit) based computer. Our results show that a multi-threaded x, y, z modelling approach is easy to implement and delivers excellent results when implemented in a practical, Java-coded modelling tool.
November 22, 2010 by hgpu