A domain-specific compiler for a parallel multiresolution adaptive numerical simulation environment
Résumé
This paper describes the design and implementation of a layered domain-specific compiler to support MADNESS---Multiresolution ADaptive
Numerical Environment for Scientific Simulation.
MADNESS is a high-level software environment for the solution of integral and differential equations in many dimensions, using adaptive and fast harmonic analysis methods with guaranteed precision. MADNESS uses k-d treesto represent spatial functions and implements operators like addition, multiplication, differentiation, and integration on the numerical representation of functions.
The MADNESS runtime system provides global namespace support and a task-based execution model including futures.
MADNESS is currently deployed on massively parallel supercomputers and has enabled many science advances.
Due to the highly irregular and statically unpredictable structure of the k-d trees representing the spatial functions encountered in
MADNESS applications, only purely runtime approaches to optimization have previously been implemented in the MADNESS framework.
This paper describes a layered domain-specific compiler developed to address some performance bottlenecks in MADNESS.
The newly developed static compile-time optimizations, in conjunction with the MADNESS runtime support, enable
significant performance improvement for the MADNESS framework.