Treffer: Abstract Optimization and Evaluation of a Titanium Adaptive Mesh Refinement Code
Weitere Informationen
Adaptive Mesh Refinement (AMR) is a grid-based approach to approximating the solutions to partial differential equations (PDEs). It is governed by the principle that some portions of the grid require more computation to solve than other regions. AMR uses an adaptive approach to adjust the resolution of the computational domain to reflect the varying computational needs. A highperformance implementation of an AMR code is provided by the Chombo framework—a set of tools for implementing the finite difference method to solve PDEs. Chombo provides a C++ implementation that uses the Message Passing Interface (MPI) for communication. Titanium is a Java-based language for parallel programming that uses a shared memory space abstraction. It offers many features to assist a developer in crafting parallel programs. However, the ease of use can often come at the cost of performance. In this paper, we evaluate an implementation of AMR provided by the Applied Numerical Algorithms Group at the Lawrence Berkeley National Laboratories. We explain several optimizations that we have performed on the code to improve its performance. Our contribution is an optimized implementation that runs 23 % faster than the original Titanium code. It is either comparable to or faster than the C++/MPI Chombo code on all the platforms we have tested. 1