Thanks to the new parallel algorithm, GPUs can now be used to simulate geological folds interactively in 3D! Mohammed Sourouri of University of Oslo, Norway completed innovative work on Parallel Front Propagation Method. This project is important in understanding the inner environment of the Earth or in oil and gas exploration. Had it not been for GPUs, interactive simulations would not be possible. His thesis has been submitted to the Department of Informatics at the University of Oslo. Full text can be accessed from here (Note, Appendix A was removed due to copyright reasons).
Static non-linear Hamilton-Jacobi equations are often used to describe a propagating front. Advanced numerical algorithms are needed to efficiently compute solutions to these non-linear equations. In geological modelling, layers of rocks can be described as the position of a propagating front at different times. A fast simulation of such layers is a key component in exploration software developed by Kalkulo AS for Statoil AS. Developing fast algorithms and solvers is essential in this application, since faster solvers enables users to test more geological scenarios, leading to a better understanding of the inner earth. Front propagation is also used in other applications, such as reservoir simulation, seismic processing and medical imaging, making a fast algorithm highly versatile.
The recent years rise of parallel architectures has made substantial computational resources available. One way to originate faster solvers is therefore to develop algorithms that are able to exploit the increasing parallelism that these architectures offer. In this thesis, a novel three-dimensional anisotropic front propagation algorithm for simulation of geological folds on parallel architecture is presented. The algorithm’s abundant parallelism is demonstrated on multi-core CPUs and GPU architectures. Implementation on multi-core architectures is achieved by using the OpenMP API, while the Mint programming model is used to facilitate with the GPU programming.
We demonstrate 7x to 2x speedups running on the Nvidia GeForce GTX 590 GPU, compared with a multi-threaded implementation on a NUMA-machine using two interconnected 12 core AMD Opteron processors. These results point to enormous potential performance advances of our algorithm on parallel architectures.
We have presented a novel and an effective front propagation algorithm that works in three dimensions. The main findings of this thesis have been published as a refereed paper in Elsevier’s Procedia Computer Science (acceptance rate: 30 percent). In addition to work in three dimensions, the proposed algorithm targets parallel architectures. Performance results show near-linear scaling on multi-core CPUs using OpenMP. By using an automated C-to-CUDA source code translator called Mint, the method was also offloaded to a GPU. The performance on GPUs looks promising. Depending on the size of the grid, the GPU implementation is somewhere between 2.5 to 7 times faster than the fastest multi-threaded CPU version using 24 cores. For smaller grid sizes, the performance is considered good enough to be used interactively.
The algorithm needs to be extended for seismic processing applications, but plans for such extension is already in place. Finally, we plan to further enhance our GPU performance by reducing register spillage whilst increasing device occupancy.
Interested readers can contact Mohammed directly: soumoh at gmail.com