Monte Carlo simulations often can take advantage of HPC hardware by using embarrassingly parallel workloads. However, these algorithms must first equilibrate from their initial state before useful statistical samples can be generated. In simulations of certain physical systems (especially those with "glassy" dynamics) this equilibration processes is one of the most computationally demanding parts of the calculation, yet cannot easily benefit from parallelization without communication between tasks. This project will involve implementing the "population annealing" method to speed up the equilibration process of a Monte Carlo code. The implementation of population annealing will use distributed computing techniques, in particular using MPI, to allow the equilibration process to take advantage of a large number of CPU cores in an HPC environment.
Monte Carlo simulations often can take advantage of HPC hardware by using embarrassingly parallel workloads. However, these algorithms must first equilibrate from their initial state before useful statistical samples can be generated. In simulations of certain physical systems (especially those with "glassy" dynamics) this equilibration processes is one of the most computationally demanding parts of the calculation, yet cannot easily benefit from parallelization without communication between tasks. This project will involve implementing the "population annealing" method to speed up the equilibration process of a Monte Carlo code. The implementation of population annealing will use distributed computing techniques, in particular using MPI, to allow the equilibration process to take advantage of a large number of CPU cores in an HPC environment.