A domain-specific compiler for a parallel multiresolution adaptive numerical simulation environment
- Samyam Rajbhandari ,
- Jinsung Kim ,
- Sriram Krishnamoorthy ,
- Louis-Noel Pouchet ,
- Fabrice Rastello ,
- Robert J. Harrison ,
- P. Sadayappan
SC '16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis |
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 trees to 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.