PulseExploreJournal ClubDebatesTrendingResearchersJournals
Instagram
HomeExploreJournal ClubTrending
Synapse
⌘+K
Synapse
July 1, 2017Computer Physics Communications61 citationsOpen Access

GPU accelerated population annealing algorithm

LBLev BarashMarina Del Rey HospitalMWMartin WeigelEmory UniversityMBM. BorovskýUniversity of Pavol Jozef Šafárik

Key Points

Key points are not available for this paper at this time.

Abstract

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 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 β. 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, θ=100, β0=0, βf=1, Δβ=0.005, R=20000, 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).

Ask AI
Helpful
Bookmark
Share
View Full Paper

Cite This Study

Barash et al. (2017) studied this question.

synapsesocial.com/papers/6a2222185c15637a50580c69https://doi.org/10.1016/j.cpc.2017.06.020
Ask AI
Helpful
Bookmark
Share
View Full Paper

Also Consider

Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context:

  1. 1Exploring first-order phase transitions with population annealing2017 · 13 citations
  2. 2Introduction to the Diffusion Monte Carlo Method1996 · 116 citations
  3. 3The two-dimensional Ising model2018 · 1,255 citations
  4. 4Tests of the multi-spin-coding technique in Monte Carlo simulations of statistical systems1981 · 69 citations
  5. 5A Guide to Monte Carlo Simulations in Statistical Physics2005 · 923 citations