11.6.2.4. Initialising several chains

As already explained in [Bla17], initialising multiple chains can help assess the convergence of MCMC algorithms more reliably. Since these algorithms are inherently sequential (each state of the chain depending on the previous one), running several chains in parallel also makes it possible to exploit modern computational power more effectively. At present, this parallelization is not yet implemented—the chains are still computed sequentially—but it will be supported in a future release.

If you wish to initialise multiple chains, this should be done using the following prototype:

void setMultistart(int nb_multistart);

The method takes a single integer argument that specifies the number of chains to be initialised.

Warning

As explained, this method duplicates the file of the initial chain to prepare several chains, preserving the properties that have already been defined. For this reason, it should be performed immediately after selecting the MCMC algorithm, to ensure that all chains use the same algorithm. If the default algorithm is used, this step should be done after creating the TMCMC object and assigning its likelihood.