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 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 summaryProgram title: Pfaffine and PfUpdates library for mVMC [1]CPC Library link to program files:https://doi.org/10.17632/rz9rs8cpws.1Developer's repository link:https://github.com/issp-center-dev/mVMC/tree/master/src/pfupdates, https://github.com/xrq-phys/PfaffineLicensing 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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call