-
Software engineering to sustain a high-performance computing scientific application: QMCPACK
Authors:
William F. Godoy,
Steven E. Hahn,
Michael M. Walsh,
Philip W. Fackler,
Jaron T. Krogel,
Peter W. Doak,
Paul R. C. Kent,
Alfredo A. Correa,
Ye Luo,
Mark Dewing
Abstract:
We provide an overview of the software engineering efforts and their impact in QMCPACK, a production-level ab-initio Quantum Monte Carlo open-source code targeting high-performance computing (HPC) systems. Aspects included are: (i) strategic expansion of continuous integration (CI) targeting CPUs, using GitHub Actions runners, and NVIDIA and AMD GPUs in pre-exascale systems, using self-hosted hard…
▽ More
We provide an overview of the software engineering efforts and their impact in QMCPACK, a production-level ab-initio Quantum Monte Carlo open-source code targeting high-performance computing (HPC) systems. Aspects included are: (i) strategic expansion of continuous integration (CI) targeting CPUs, using GitHub Actions runners, and NVIDIA and AMD GPUs in pre-exascale systems, using self-hosted hardware; (ii) incremental reduction of memory leaks using sanitizers, (iii) incorporation of Docker containers for CI and reproducibility, and (iv) refactoring efforts to improve maintainability, testing coverage, and memory lifetime management. We quantify the value of these improvements by providing metrics to illustrate the shift towards a predictive, rather than reactive, sustainable maintenance approach. Our goal, in documenting the impact of these efforts on QMCPACK, is to contribute to the body of knowledge on the importance of research software engineering (RSE) for the sustainability of community HPC codes and scientific discovery at scale.
△ Less
Submitted 21 July, 2023;
originally announced July 2023.
-
Evaluating Portable Parallelization Strategies for Heterogeneous Architectures in High Energy Physics
Authors:
Mohammad Atif,
Meghna Battacharya,
Paolo Calafiura,
Taylor Childers,
Mark Dewing,
Zhihua Dong,
Oliver Gutsche,
Salman Habib,
Kyle Knoepfel,
Matti Kortelainen,
Ka Hei Martin Kwok,
Charles Leggett,
Meifeng Lin,
Vincent Pascuzzi,
Alexei Strelchenko,
Vakhtang Tsulaia,
Brett Viren,
Tianle Wang,
Beomki Yeo,
Haiwang Yu
Abstract:
High-energy physics (HEP) experiments have developed millions of lines of code over decades that are optimized to run on traditional x86 CPU systems. However, we are seeing a rapidly increasing fraction of floating point computing power in leadership-class computing facilities and traditional data centers coming from new accelerator architectures, such as GPUs. HEP experiments are now faced with t…
▽ More
High-energy physics (HEP) experiments have developed millions of lines of code over decades that are optimized to run on traditional x86 CPU systems. However, we are seeing a rapidly increasing fraction of floating point computing power in leadership-class computing facilities and traditional data centers coming from new accelerator architectures, such as GPUs. HEP experiments are now faced with the untenable prospect of rewriting millions of lines of x86 CPU code, for the increasingly dominant architectures found in these computational accelerators. This task is made more challenging by the architecture-specific languages and APIs promoted by manufacturers such as NVIDIA, Intel and AMD. Producing multiple, architecture-specific implementations is not a viable scenario, given the available person power and code maintenance issues.
The Portable Parallelization Strategies team of the HEP Center for Computational Excellence is investigating the use of Kokkos, SYCL, OpenMP, std::execution::parallel and alpaka as potential portability solutions that promise to execute on multiple architectures from the same source code, using representative use cases from major HEP experiments, including the DUNE experiment of the Long Baseline Neutrino Facility, and the ATLAS and CMS experiments of the Large Hadron Collider. This cross-cutting evaluation of portability solutions using real applications will help inform and guide the HEP community when choosing their software and hardware suites for the next generation of experimental frameworks. We present the outcomes of our studies, including performance metrics, porting challenges, API evaluations, and build system integration.
△ Less
Submitted 27 June, 2023;
originally announced June 2023.
-
Portability: A Necessary Approach for Future Scientific Software
Authors:
Meghna Bhattacharya,
Paolo Calafiura,
Taylor Childers,
Mark Dewing,
Zhihua Dong,
Oliver Gutsche,
Salman Habib,
Xiangyang Ju,
Michael Kirby,
Kyle Knoepfel,
Matti Kortelainen,
Martin Kwok,
Charles Leggett,
Meifeng Lin,
Vincent R. Pascuzzi,
Alexei Strelchenko,
Brett Viren,
Beomki Yeo,
Haiwang Yu
Abstract:
Today's world of scientific software for High Energy Physics (HEP) is powered by x86 code, while the future will be much more reliant on accelerators like GPUs and FPGAs. The portable parallelization strategies (PPS) project of the High Energy Physics Center for Computational Excellence (HEP/CCE) is investigating solutions for portability techniques that will allow the coding of an algorithm once,…
▽ More
Today's world of scientific software for High Energy Physics (HEP) is powered by x86 code, while the future will be much more reliant on accelerators like GPUs and FPGAs. The portable parallelization strategies (PPS) project of the High Energy Physics Center for Computational Excellence (HEP/CCE) is investigating solutions for portability techniques that will allow the coding of an algorithm once, and the ability to execute it on a variety of hardware products from many vendors, especially including accelerators. We think without these solutions, the scientific success of our experiments and endeavors is in danger, as software development could be expert driven and costly to be able to run on available hardware infrastructure. We think the best solution for the community would be an extension to the C++ standard with a very low entry bar for users, supporting all hardware forms and vendors. We are very far from that ideal though. We argue that in the future, as a community, we need to request and work on portability solutions and strive to reach this ideal.
△ Less
Submitted 15 March, 2022;
originally announced March 2022.
-
QMCPACK : An open source ab initio Quantum Monte Carlo package for the electronic structure of atoms, molecules, and solids
Authors:
Jeongnim Kim,
Andrew Baczewski,
Todd D. Beaudet,
Anouar Benali,
M. Chandler Bennett,
Mark A. Berrill,
Nick S. Blunt,
Edgar Josue Landinez Borda,
Michele Casula,
David M. Ceperley,
Simone Chiesa,
Bryan K. Clark,
Raymond C. Clay III,
Kris T. Delaney,
Mark Dewing,
Kenneth P. Esler,
Hongxia Hao,
Olle Heinonen,
Paul R. C. Kent,
Jaron T. Krogel,
Ilkka Kylanpaa,
Ying Wai Li,
M. Graham Lopez,
Ye Luo,
Fionn D. Malone
, et al. (23 additional authors not shown)
Abstract:
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 wave functions in conjunction with a s…
▽ More
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 wave functions 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 (CPU) and graphical processing unit (GPU) 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://www.qmcpack.org .
△ Less
Submitted 4 April, 2018; v1 submitted 19 February, 2018;
originally announced February 2018.
-
The Coupled Electronic-Ionic Monte Carlo Simulation Method
Authors:
David Ceperley,
Mark Dewing,
Carlo Pierleoni
Abstract:
Quantum Monte Carlo (QMC) methods such as Variational Monte Carlo, Diffusion Monte Carlo or Path Integral Monte Carlo are the most accurate and general methods for computing total electronic energies. We will review methods we have developed to perform QMC for the electrons coupled to a classical Monte Carlo simulation of the ions. In this method, one estimates the Born-Oppenheimer energy E(Z) w…
▽ More
Quantum Monte Carlo (QMC) methods such as Variational Monte Carlo, Diffusion Monte Carlo or Path Integral Monte Carlo are the most accurate and general methods for computing total electronic energies. We will review methods we have developed to perform QMC for the electrons coupled to a classical Monte Carlo simulation of the ions. In this method, one estimates the Born-Oppenheimer energy E(Z) where Z represents the ionic degrees of freedom. That estimate of the energy is used in a Metropolis simulation of the ionic degrees of freedom. Important aspects of this method are how to deal with the noise, which QMC method and which trial function to use, how to deal with generalized boundary conditions on the wave function so as to reduce the finite size effects. We discuss some advantages of the CEIMC method concerning how the quantum effects of the ionic degrees of freedom can be included and how the boundary conditions can be integrated over. Using these methods, we have performed simulations of liquid H2 and metallic H on a parallel computer.
△ Less
Submitted 1 July, 2002;
originally announced July 2002.
-
Monte Carlo methods: Application to hydrogen gas and hard spheres
Authors:
Mark Dewing
Abstract:
Quantum Monte Carlo (QMC) methods can very accurately compute ground state properties of quantum systems. We applied these methods to a system of boson hard spheres to get exact, infinite system size results for the ground state at several densities.
Variational Monte Carlo (VMC) requires optimizing a parameterized wave function to find the minimum energy. We examine several techniques for opti…
▽ More
Quantum Monte Carlo (QMC) methods can very accurately compute ground state properties of quantum systems. We applied these methods to a system of boson hard spheres to get exact, infinite system size results for the ground state at several densities.
Variational Monte Carlo (VMC) requires optimizing a parameterized wave function to find the minimum energy. We examine several techniques for optimizing VMC wave functions, focusing on the ability to optimize parameters appearing in the Slater determinant.
The kinds of problems that can be simulated with Monte Carlo methods are expanded through the development of new algorithms for combining a QMC simulation of the electrons with a classical Monte Carlo simulation for the nuclei, which we call Coupled Electronic-Ionic Monte Carlo (CEIMC). The new CEIMC method is applied to a system of molecular hydrogen at temperatures ranging from 2800K to 4500K and densities from 0.25 to 0.46 g/cm**3.
The challenges in constructing an efficient CEIMC simulation center mostly around the noisy results generated from the QMC computations of the electronic energy. The penalty method is a modification of the Metropolis method that can tolerate noise. An improved correlated sampling method, the two-sided energy difference method, is also presented as a method for reducing the noise.
△ Less
Submitted 14 December, 2000;
originally announced December 2000.
-
Improved efficiency with variational Monte Carlo using two level sampling
Authors:
Mark Dewing
Abstract:
A two level sampling method is applied to variational Monte Carlo (VMC) that samples the one and two body parts of the wave function separately. The method is demonstrated on a single Li_2 molecule in free space and 32 H_2 molecules in a periodic box. This simple modification increases the efficiency of a VMC simulation by up to 72%.
A two level sampling method is applied to variational Monte Carlo (VMC) that samples the one and two body parts of the wave function separately. The method is demonstrated on a single Li_2 molecule in free space and 32 H_2 molecules in a periodic box. This simple modification increases the efficiency of a VMC simulation by up to 72%.
△ Less
Submitted 7 July, 2000;
originally announced July 2000.
-
The Penalty Method for Random Walks with Uncertain Energies
Authors:
D. M. Ceperley,
M. Dewing
Abstract:
We generalize the Metropolis et al. random walk algorithm to the situation where the energy is noisy and can only be estimated. Two possible applications are for long range potentials and for mixed quantum-classical simulations. If the noise is normally distributed we are able to modify the acceptance probability by applying a penalty to the energy difference and thereby achieve exact sampling e…
▽ More
We generalize the Metropolis et al. random walk algorithm to the situation where the energy is noisy and can only be estimated. Two possible applications are for long range potentials and for mixed quantum-classical simulations. If the noise is normally distributed we are able to modify the acceptance probability by applying a penalty to the energy difference and thereby achieve exact sampling even with very strong noise. When one has to estimate the variance we have an approximate formula, good in the limit of large number of independent estimates. We argue that the penalty method is nearly optimal. We also adapt an existing method by Kennedy and Kuti and compare to the penalty method on a one dimensional double well.
△ Less
Submitted 18 February, 1999; v1 submitted 18 December, 1998;
originally announced December 1998.