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 geminal-wavefunction-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  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 skew-symmetric 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 assembly-level backend. Updating is approached using a modified Woodbury matrix identity. References:  T. Misawa, S. Morita, K. Yoshimi, M. Kawamura, Y. Motoyama, K. Ido, T. Ohgoe, M. Imada and T. Kato, Comput. Phys. Commun. 235 (2019) 447–462.
ASJC Scopus subject areas