arrow
Return

GPU accelerated population annealing algorithm

delete2017-11-01
delete39
delete
OA
AI
L
Lev Barash
M
Martin Weigel *
M
M. Borovský
W
Wolfhard Janke
L
Lev Shchur
DOI:10.1016/j.cpc.2017.06.020delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Population annealing is a promising recent approach for Monte Carlo simulations in statistical physics, in particular for the simulation of systems with complex free-energy landscapes. It is a hybrid method, combining importance sampling through Markov chains with elements of sequential Monte Carlo in the form of population control. While it appears to provide algorithmic capabilities for the simulation of such systems that are roughly comparable to those of more established approaches such as parallel tempering, it is intrinsically much more suitable for massively parallel computing. Here, we tap into this structural advantage and present a highly optimized implementation of the population annealing algorithm on GPUs that promises speed-ups of several orders of magnitude as compared to a serial implementation on CPUs. While the sample code is for simulations of the 2D ferromagnetic Ising model, it should be easily adapted for simulations of other spin models, including disordered systems. Our code includes implementations of some advanced algorithmic features that have only recently been suggested, namely the automatic adaptation of temperature steps and a multi-histogram analysis of the data at different temperatures. Program summary Program Title: PAIsing Program Files doi: http://dx.doi.org/10.17632/sgzt4b7b3m.1 Licensing provisions: Creative Commons Attribution license (CC BY 4.0) Programming language: C, CUDA External routines/libraries: NVIDIA CUDA Toolkit 6.5 or newer Nature of problem: The program calculates the internal energy, specific heat, several magnetization moments, entropy and free energy of the 2D Ising model on square lattices of edge length L with periodic boundary conditions as a function of inverse temperature beta. Solution method: The code uses population annealing, a hybrid method combining Markov chain updates with population control. The code is implemented for NVIDIA GPUs using the CUDA language and employs advanced techniques such as multi-spin coding, adaptive temperature steps and multi-histogram reweighting. Additional comments: Code repository at https://github.com/LevBarash/PAising. The system size and size of the population of replicas are limited depending on the memory of the GPU device used. For the default parameter values used in the sample programs, L = 64, theta = 100, beta(0) = 0, beta(f) = 1, Delta beta = 0.005, R = 20 000, a typical run time on an NVIDIA Tesla K80 GPU is 151 seconds for the single spin coded (SSC) and 17 seconds for the multi-spin coded (MSC) program (see Section 2 for a description of these parameters). (C ) 2017 Elsevier B.V. All rights reserved.
Keywords:
Population annealing
Monte Carlo simulations
Ising model
Parallel computing
Graphics processing units
Multi-spin coding
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Computer Physics Communications cover
Computer Physics Communications
IF:
3.4
Papers:
1.2W
Citations:
3.7W

Organization

U
university of pavol jozef safarik kosice
Scholars:
3.2K
Papers: 2.3K
Citations: 1
S
science center in chernogolovka ras
Scholars:
55
Papers: 29
Citations: 0
R
russian academy of sciences
Scholars:
9.1W
Papers: 6.0W
Citations: 60
Landau Institute for Theoretical Physics cover
Landau Institute for Theoretical Physics
Scholars:
128
Papers: 115
Citations: 173
researcher View more organizations