Optimized implementation for calculation and fast-update of Pfaffians installed to the open-source fermionic variational solver mVMC

COMPUTER PHYSICS COMMUNICATIONS(2022)

Cited 2|Views11
No score
Abstract
In this article, we present a high performance, portable and well templated implementation for computing and fast-updating Pfaffian and inverse of an even-ranked skew-symmetric (antisymmetric) matrix. It is achieved with a skew-symmetric, blocked variant of the Parlett-Reid algorithm and a blocked update scheme based on the Woodbury matrix identity. Installation of this framework into the geminalwavefunction-based many-variable Variational Monte Carlo (mVMC) code boosts sampling performance to up to more than 6 times without changing Markov chain's behavior. The implementation is based on an extension of the BLAS-like instantiation software (BLIS) framework which has optimized kernel for many state-of-the-art processors including Intel Skylake-X, AMD EPYC Rome and Fujitsu A64FX. Program summary Program title: Pfaffine and PfUpdates library for mVMC [1] CPC Library link to program files: https://doi .org /10 .17632 /rz9rs8cpws .1 Developer's repository link: https://github .com /issp -center-dev /mVMC /tree /master /src /pfupdates, https:// github .com /xrq -phys /Pfaffine Licensing provisions: MPL-2.0 (for new Library part) Programming language: C++14 (for new Library part) Nature of problem: Finding a method for computing and updating Pfaffian and inverse of a skewsymmetric matrix that yields a high performance on modern processor architectures. Solution method: Deploying a blocked version of the Parlett-Reid algorithm with BLIS serving as assemblylevel backend. Updating is approached using a modified Woodbury matrix identity.
More
Translated text
Key words
Variational Monte Carlo,Ground-state method,Quantum lattice model,Skew-symmetric matrix,Pfaffian,Blocked algorithm,LAPACK,BLAS
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined