Development of QMCPACK for Exascale Scientific Computing
Anouar Benali, David M. Ceperley, Eduardo F. D'Azevedo, Mark Dewing, Paul R. C. Kent, Jeongnim Kim, Jaron T. Krogel, Ying Wai Li, Ye Luo, Tyler McDaniel, Miguel A. Morales, Amrita Mathuriya, Luke Shulenburger, Norm M. Tubman
This chapter outlines what drives the choice of algorithms used in quantum Monte Carlo (QMC) and QMCPACK. Internally, QMC codes are similar to particle-based classical molecular dynamics codes with the addition of a limited amount of simple dense linear algebra. The scientific possibilities for QMC with exascale computing will lead too many new applications Availability of exascale hardware will naturally alleviate the floating-point limitation on system size, N, but the memory limitations are expected to become more complex. The optimizations were supported and realized through an Intel Parallel Computing Center at Argonne National Laboratory and Sandia National Laboratories and a full article describing the methods can be found in. Unit testing enables projects to scale to a larger number of developers, and provides assurances to developers that changes are not breaking the code. Unit tests also help design by driving refactoring, and can lead to a less tightly-coupled architecture.
This chapter outlines what drives the choice of algorithms used in quantum Monte Carlo (QMC) and QMCPACK. Internally, QMC codes are similar to particle-based classical molecular dynamics codes with the addition of a limited amount of simple dense linear algebra. The scientific possibilities for QMC with exascale computing will lead too many new applications Availability of exascale hardware will naturally alleviate the floating-point limitation on system size, N, but the memory limitations are expected to become more complex. The optimizations were supported and realized through an Intel Parallel Computing Center at Argonne National Laboratory and Sandia National Laboratories and a full article describing the methods can be found in. Unit testing enables projects to scale to a larger number of developers, and provides assurances to developers that changes are not breaking the code. Unit tests also help design by driving refactoring, and can lead to a less tightly-coupled architecture.
With advances in algorithms and growing computing powers, quantum Monte Carlo (QMC) methods have become a leading contender for high accuracy calculations for the electronic structure of realistic systems. The performance gain on recent HPC systems is largely driven by increasing parallelism: the number of compute cores of a SMP and the number of SMPs have been going up, as the Top500 list attests. However, the available memory as well as the communication and memory bandwidth per element has not kept pace with the increasing parallelism. This severely limits the applicability of QMC and the problem size it can handle. OpenMP/MPI hybrid programming provides applications with simple but effective solutions to overcome efficiency and scalability bottlenecks on large-scale clusters based on multi/many-core SMPs. We discuss the design and implementation of hybrid methods in QMCPACK and analyze its performance on current HPC platforms characterized by various memory and communication hierarchies.
There are three different Quantum Monte Carlo (QMC) codes in the Targeting REal chemical accuracy at the eXascale (TREX) Center of Excellence (CoE), TurboRVB, Champ, and QMC=Chem, each with its own strengths and weaknesses. Instead of optimizing the three codes independently for exascale architectures, or re-writing a new monolithic code, our strategy is instead to design a new library, Quantum Monte Carlo kernel library (QMCkl), containing the state-of-the-art expertise in the implementation of specific kernels present in each of the three codes. The functions available in this library will allow all the codes to benefit from the optimal implementation of the major kernels of QMC. The three main objectives driving the development of QMCkl are performance, productivity and portability.
QMCPACK is an open source quantum Monte Carlo package for ab initio electronic structure calculations. It supports calculations of metallic and insulating solids, molecules, atoms, and some model Hamiltonians. Implemented real space quantum Monte Carlo algorithms include variational, diffusion, and reptation Monte Carlo. QMCPACK uses Slater-Jastrow type trial wavefunctions in conjunction with a sophisticated optimizer capable of optimizing tens of thousands of parameters. The orbital space auxiliary-field quantum Monte Carlo method is also implemented, enabling cross validation between different highly accurate methods. The code is specifically optimized for calculations with large numbers of electrons on the latest high performance computing architectures, including multicore central processing unit and graphical processing unit systems. We detail the program's capabilities, outline its structure, and give examples of its use in current research calculations. The package is available at http://qmcpack.org.
We review recent advances in the capabilities of the open source ab initio Quantum Monte Carlo (QMC) package QMCPACK and the workflow tool Nexus used for greater efficiency and reproducibility. The auxiliary field QMC (AFQMC) implementation has been greatly expanded to include k-point symmetries, tensor-hypercontraction, and accelerated graphical processing unit (GPU) support. These scaling and memory reductions greatly increase the number of orbitals that can practically be included in AFQMC calculations, increasing the accuracy. Advances in real space methods include techniques for accurate computation of bandgaps and for systematically improving the nodal surface of ground state wavefunctions. Results of these calculations can be used to validate application of more approximate electronic structure methods, including GW and density functional based techniques. To provide an improved foundation for these calculations, we utilize a new set of correlation-consistent effective core potentials (pseudopotentials) that are more accurate than previous sets; these can also be applied in quantum-chemical and other many-body applications, not only QMC. These advances increase the efficiency, accuracy, and range of properties that can be studied in both molecules and materials with QMC and QMCPACK.
Various strategies to implement efficiently quantum Monte Carlo (QMC) simulations for large chemical systems are presented. These include: (i) the introduction of an efficient algorithm to calculate the computationally expensive Slater matrices. This novel scheme is based on the use of the highly localized character of atomic Gaussian basis functions (not the molecular orbitals as usually done), (ii) the possibility of keeping the memory footprint minimal, (iii) the important enhancement of single-core performance when efficient optimization tools are used, and (iv) the definition of a universal, dynamic, fault-tolerant, and load-balanced framework adapted to all kinds of computational platforms (massively parallel machines, clusters, or distributed grids). These strategies have been implemented in the QMC=Chem code developed at Toulouse and illustrated with numerical applications on small peptides of increasing sizes (158, 434, 1056, and 1731 electrons). Using 10-80 k computing cores of the Curie machine (GENCI-TGCC-CEA, France), QMC=Chem has been shown to be capable of running at the petascale level, thus demonstrating that for this machine a large part of the peak performance can be achieved. Implementation of large-scale QMC simulations for future exascale platforms with a comparable level of efficiency is expected to be feasible.
Quantum Monte Carlo (QMC) methods deliver highly accurate electronic structure calculations but are computationally intensive. The quantum Monte Carlo kernel library (QMCkl) provides a modular, portable collection of high-performance kernels implementing the core building blocks of QMC calculations. It offers a C-compatible application programming interface, supports the TREXIO standard for input, and covers essential QMC kernels including atomic and molecular orbitals, cusp corrections, the Jastrow factor, and the necessary derivatives also to perform variational and structural optimization. QMCkl separates algorithmic development from hardware-specific tuning by combining human-readable reference implementations with performance-optimized kernels that produce identical numerical results. The library enables consistent, efficient, and reproducible simulations across different QMC codes and architectures and achieves substantial speedups in the evaluation of the energy and its derivatives. Beyond QMC, QMCkl can accelerate deterministic quantum chemistry workflows and visualization tools, promoting cross-code interoperability and simplifying high-performance scientific software development.