QMCPACK is open source scientific software designed to perform Quantum Monte Carlo simulation, a first-principles method for describing many-fermion systems. The evaluation of each Monte Carlo move requires finding the determinant of a dense matrix of wave functions. This calculation forms a key computational kernel in QMCPACK. After each accepted event, the wave function matrix undergoes a rank-one update to represent a single particle move within the system. The Sherman-Morrison formula is used to update the matrix inverse. Occasionally, the explicit inverse must be recomputed to maintain numerical stability. An alternate approach to this kernel utilizes QR factorization to maintain stability without re-factorization.
Algorithms based on a novel delayed update scheme are explored in this effort. This strategy involves calculating probabilities for multiple successive Monte Carlo moves and delaying their application to the matrix of wave functions until an event is denied or a predetermined limit of acceptances is reached. Updates grouped in this manner are then applied to the matrix en bloc to achieve enhanced computational intensity.
GPU-accelerated delayed update algorithms are tested and profiled for both Sherman-Morrison and QR based probability evaluation kernels. Results are evaluated against existing methods for numerical stability and efficiency; emphasis is placed on large systems, where acceleration is critical.