MADNESS

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
MADNESS
Original author(s) George Fann, Robert J. Harrison
Developer(s) Oak Ridge National Laboratory, Stony Brook University, Virginia Tech, Argonne National Laboratory
Initial release Forthcoming
Operating system Cross-platform
Available in C++
Type Scientific simulation software
License GNU GPL v2
Website github.com/m-a-d-n-e-s-s/madness

MADNESS (Multiresolution Adaptive Numerical Environment for Scientific Simulation) 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 based on multiresolution analysis [1] [2] and separated representations .[3]

There are three main components to MADNESS. At the lowest level is a petascale parallel programming environment [4] that aims to increases programmer productivity and code performance/scalability while maintaining backward compatibility with current programming tools such as the message-passing interface and Global Arrays. The numerical capabilities built upon the parallel tools provide a high-level environment for composing and solving numerical problems in many (1-6+) dimensions. Finally, built upon the numerical tools are new applications with initial focus upon chemistry ,[5] [6] , atomic and molecular physics ,[7] material science, and nuclear structure. It is open source, has an object-oriented design, and is designed to be a parallel processing program for computers with up to millions of cores running already on the Cray XT5 at Oak Ridge National Laboratory and the IBM Blue Gene at Argonne National Laboratory. The small matrix multiplication (relative to large, BLAS-optimized matrices) is the primary computational kernel in MADNESS; thus, an efficient implement on modern CPUs is an ongoing research effort. [8] .[9] Adapting the irregular computation in MADNESS to heterogeneous platforms is nontrivial due to the size of the kernel, which is too small to be offloaded via compiler directives (e.g. OpenACC), but has been demonstrated for CPUGPU systems .[10] Intel has publicly stated that MADNESS is one of the codes running on the Intel MIC architecture [11] [12] but no performance data has been published yet.

MADNESS' chemistry capability includes Hartree–Fock and density functional theory in chemistry [13] [14] (including analytic derivatives ,[15] response properties [16] and time-dependent density functional theory with asymptotically corrected potentials [17]) as well as nuclear density functional theory[18] and Hartree–FockBogoliubov theory. [19][20] MADNESS and BigDFT are the two most widely known codes that perform DFT and TDDFT using wavelets .[21] Many-body wavefunctions requiring six-dimensional spatial representations are also implemented (e.g. MP2[22]). The parallel runtime inside of MADNESS has been used to implement a wide variety of features, including graph optimization .[23] From a mathematical perspective, MADNESS emphasizes rigorous numerical precision without loss of computational performance .[24] This is useful not only in quantum chemistry and nuclear physics, but also the modeling of partial differential equations .[25]

MADNESS was recognized by the R&D 100 Awards in 2011.[26][27] It is an important code to Department of Energy supercomputing sites and is being used by both the leadership computing facilities at Argonne National Laboratory[28] and Oak Ridge National Laboratory[29] to evaluate the stability and performance of their latest supercomputers. It has users around the world, including the United States and Japan .[30] MADNESS has been a workhorse code for computational chemistry in the DOE INCITE program [31] at the Oak Ridge Leadership Computing Facility [32] and is noted as one of the important codes to run on the Cray Cascade architecture.[33]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.

External links