Closed florianhartig closed 5 years ago
The general issue here is that MCMCs are not arbitrarily parallelizable. What you can do is to parallelize the independent MCMC chains, and you can usually partly parallelize samplers, but it's usually not efficient to use an arbitrary large number of cores.
For the case of BT, we currently only parallelize single MCMC samplers, but not the chains. How much speedup you can get per sampler depends on the sampler settings. Metropolis samplers can only use 1 core. The DE sampler family can use as many cores as you have internal chains. The default for the DEzs is 3 internal chains, thus you request 59 cores, but the sampler will only use 3 and the rest are idle.
We are working on parallelizing the chains as well, but with the current settings what you should do to get maximum parallelization is the following:
start the chains as independent processes, see https://github.com/florianhartig/BayesianTools/issues/9
for each process, request only as many cores as your MCMC can use. It might speed up the DEzs when you use more internal chains (see help of the sampler), but that might not always be the case (communication overhead, waiting for processes to finish). You have to try.
Question from a user