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.
Revised: June 5, 2018 |
Published: November 13, 2016
Citation
Rajbhandari S., J. Kim, S. Krishnamoorthy, L. Pouchet, F. Rastello, R.J. Harrison, and P. Sadayappan. 2016.A domain-specific compiler for a parallel multiresolution adaptive numerical simulation environment. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC 2016), November 13-18, 2016, Salt Lake City, Utah, 468-479. Piscataway, New Jersey:IEEE.PNNL-SA-126067.doi:10.1109/SC.2016.39