2024-07-11 –, Function (4.1)
Rimu.jl aims to be an extensible platform for quantum many-body calculations. We have implemented the full configuration interaction quantum Monte Carlo (FCIQMC) algorithm and exact diagonalisation for quantum many-body models defined through a universal interface. The pure Julia implementation relies on native threading and uses MPI.jl for inter-node parallelism on the HPC. We will showcase solving an impurity problem in the Bose-Hubbard model where the linear matrix dimension exceeds 10^60
.
Quantum many-body physics problems map into linear-algebra problems of a size that grows exponentially with the number of constituent particles. While exact diagonalisation is useful for small toy problems, it quickly becomes infeasible. Projector quantum Monte Carlo aims at providing a stochastic sample of the ground state wave function (or extremal eigenpair) for larger quantum Hamiltonians.
In this talk we will discuss how we implemented a flavour of projector quantum Monte Carlo (FCIQMC), which can be seen as a simple stochastic extension of exact diagonalisation, in native Julia. The package is designed to be fully extensible with interfaces. This allows for the easy implementation of custom many-body models or modification of the stochastic algorithms. Besides the option to convert small-enough models into sparse matrices for use with standard linear algebra solvers, Rimu.jl also allows for the matrix-free exact diagonalisation of model Hamiltonians with the external package Krylovkit.jl.
The choice of Julia as a language was ideal for this software project where speed and performance-tuning of hot-loop code is critical, while the flexibility of experimenting with models and algorithms as well as the ease of data analysis (all in the same language) enhances productivity greatly. After giving a quick tour of what you can do with Rimu.jl, we will discuss the structure of the package and some of the design choices around parallelisation by threading and message passing (mpi).
FCIQMC is already popular in quantum chemistry (targeted by existing Fortran codes) and could be useful in a number of different domains. We are looking for new users, collaborators and contributors who may be interested in exploring new use cases or extensions for Rimu.jl.