Multiresolution and Adaptive Numerical Environment for Scientific Simulations (MADNESS)May 30, 2013
Numerical modeling softwares and solvers are key components of successful and accurate simulations for effective predictions and analysis. The results help us to improve our scientific theories as well as product and engineering designs. A representative of the most successful of the traditional software and solver environment is MATLAB with a core that is based on matrix and vector operations. In order to represent multiple physics interactions, complicated geometries and their interfaces, the user is still required to choose the appropriate representations, code-interactions and solution methodologies. The underlying conversion of the equations and geometries, their discretizations and representations as well as the overall solution algorithm still depend on the user.
Developments in advanced mathematics and computer science at ORNL have resulted in an integrated approach of rigorously representing the mathematics underlying the hierarchy of physics models with an effective run-time environment for scalable and accurate computation on today's most advanced architectures. A recent shift in paradigm has resulted in working with representations of functions and operators and their approximations directly; the user can concentrate on the appropriate solution algorithms.
The MADNESS Project's research focuses on two themes: the mathematical methods and the run-time system which supports the computation. The first seeks to represent and apply operators (integral and differential) to functions in the most accurate, effective and compact form, dynamically and adaptively, in a compatible way with the description of the boundary conditions and geometries. The second integrates a software environment to successfully apply the mathematical operations and solution methodologies in the most time-effective manner, solve the problems to users' desire accuracy in the fastest time, and achieve high performance and scalability on modern high performance computers. Most engineering software today achieves at most 10-15% of the peak performance of the processors.
The MADNESS software has been applied to discover new results in computational chemistry and materials, nuclear structures, molecular particle-fluid interactions and laser induced molecular reactions. More applications are under investigation and development. MADNESS is capable, out of the box, on heterogeneous (accelerator and GPU equipped) Linux laptops and desktops, clusters to the Leadership Class supercomputers such as Crays and IBM Blue-Gene.
Our new mathematical approach incorporates the traditional adaptive pseudo-spectral element based methods and more recent analysis-based methods in a mathematical framework which guarantees the precision of the computation with corresponding commensurate workload and time to solution. Representations of functions and operators, and geometry, (in 1-6D) are derived in a rigorous, adaptive and compact representation for provable guaranteed precision. For certain common operators, such as derivatives of functions, and Green's functions and convolutions for solutions of integral equations (e.g., such as Poisson, which is used in fluid-dynamics and electrostatics) are precomputed and tabulated for fast applications. The MADNESS software environment is based on a local adaptive pseudo-spectral approach which combines time and space adaptivity as required. Hierarchies of nonlinear and multidimensional physics equations at different scale are decomposed in a rigorous manner to compute appropriate contributions. Our research is on developing the most compact and scalable representation for functions and operators, from highly oscillatory, singular and discontinuous to complex boundaries with nonlinear interactions. Interfaces to external linear solver libraries are available.
The research in run-time environments has resulted in a user-friendly high-level representation of the physics and their mathematical equations for ease of programming and debugging. A mini-compiler operates on the user's code, breaks down the mathematical operations into a distributed task based computing model with interprocessor scheduling and data dependency analysis (direct acyclic graph) for maximizing throughput by reducing process stalling. This is a software distributed version of a local processor hardware threading model. Users can issue distributed run-time load balancing. Work is underway for dynamic work stealing as well as for resilience and fault-tolerance.