Semi-automatic parallelization of direct and inverse problems for geothermal simulation.




We describe a strategy for parallelizing a geothermal simulation package using the shared-memory programming model OpenMP. During the code development OpenMP is employed for the direct problem in such a way that, in a subsequent step, the OpenMP-parallelized code can be transformed via automatic differentiation into an OpenMP-parallelized code capable of computing derivatives for the inverse problem. Performance results on a Sun Fire X4600 using up to 16 threads are reported demonstrating that, for the derivative computation, an approach using nested parallelism is more scalable than a single level of parallelism.