lukas-weber / Carlo.jl

Monte Carlo framework that provides MPI parallelization, checkpointing and statistical postprocessing in an algorithm-agnostic way.
MIT License
28 stars 2 forks source link

Support for parallel tempering? #14

Open rkr8 opened 3 weeks ago

rkr8 commented 3 weeks ago

Hi everyone,

Thanks for developing this nice software package! I was thinking about rewriting my not-so-organized MC code using this software package and was wondering if there is support for parallel tempering / replica-exchange MCMC sampling using MPI?

All the best, Roman

lukas-weber commented 3 weeks ago

In the old c++ version of this code, I did have parallel tempering support, however it did not make it into the Julia version.

The way I would implement it nowadays is as a kind of adapter ParallelTemperingMC{MC <: AbstractMC} <: AbstractMC that itself acts like a normal AbstractMC (in parallel-run mode) and performs parallel tempering on an underlying MC implementation.

This is on the to-do list for a future version of Carlo.jl. In case someone needs it for their research now, I am happy to provide support with implementing it yourself.

rkr8 commented 3 weeks ago

Thanks for the quick response! That sounds promising. I would have to get more familiar with the software, but I’d be interested to have a look at the parallel tempering in the future. Thank you for the offer of support!

All the best, Roman