Native distributed and MPI parallelism in the high-level language Julia for quantum Monte Carlo
presentationposted on 2020-12-07, 22:01 authored by Mingrui Yang
Julia is a very young programming language but has already proven powerful. Its parallel computing feature provides essential tools for efficient implementation of the quantum Monte Carlo method in computational physics research. The quantum Monte Carlo method is a parallelisable approach for finding the eigenvalue and vectors of a gigantic matrix which appears very often in quantum many body problems. For example, finding the ground state energy (the eigenvalue) and wave function (the eigenvector) of a 200-boson chain involves a 10118-element vector and a 10118x10118 matrix. The Monte Carlo method utilises random numbers to work the magic of diagonalising a matrix without building the full matrix. In this talk, we showcase an implementation of the Monte Carlo algorithm for solving quantum many-body problems in Julia, and how the parallelisation is done with the built-in native distributed computing and the external MPI.jl package. We also present experiences with profiling and running the parallelised Julia code on the NeSI cluster as the result of a NeSI consultancy project, as well as the challenges we have faced within the consultancy project.
ABOUT THE AUTHOR(S)
Mingrui is a PhD student from Massey University, with the background of computational chemistry and physics.
Dr. Elke Pahl is a senior lecturer from University of Auckland, Her research spans topics in computational physics and chemistry and solid state physics with an emphasis on computational modelling.
Prof. Joachim Brand is a theoretical physicist from New Zealand Institute for Advanced Study, Massey University. His research expertise is in ultracold atomic gases.