Paraiso : An Automated Tuning Framework for Explicit Solvers of Partial Differential Equations
This work addresses the challenge of optimizing PDE solvers for computational scientists and engineers, offering an incremental improvement through automation and modular design.
The authors tackled the problem of manually tuning explicit solvers for partial differential equations (PDEs) by developing Paraiso, a domain-specific language in Haskell that enables automated tuning on GPUs and CPUs, resulting in a compressive hydrodynamics solver generated from under 500 lines of code with support for arbitrary dimensions and both manual and evolutionary-based tuning.
We propose Paraiso, a domain specific language embedded in functional programming language Haskell, for automated tuning of explicit solvers of partial differential equations (PDEs) on GPUs as well as multicore CPUs. In Paraiso, one can describe PDE solving algorithms succinctly using tensor equations notation. Hydrodynamic properties, interpolation methods and other building blocks are described in abstract, modular, re-usable and combinable forms, which lets us generate versatile solvers from little set of Paraiso source codes. We demonstrate Paraiso by implementing a compressive hydrodynamics solver. A single source code less than 500 lines can be used to generate solvers of arbitrary dimensions, for both multicore CPUs and GPUs. We demonstrate both manual annotation based tuning and evolutionary computing based automated tuning of the program.