Although sampling in NS is not as easily parallelizable as MCMC, there are still opportunities for multi-threading/multi-processing during the sample proposal step. Following the formalism of https://www.wesleyhenderson.me/pdfs/Parallelized_Nested_Sampling_Henderson_Goggans.pdf when we propose a new point during the sample steps, the proposals can be done in parallel, accepting the first new point that fulfills the likelihood constraints. This is implemented in dynesty using Python's multiprocessing.pool.
If we overload AbstractMCMC.sample methods using the MCMCDistributed and MCMCThreads structs, we should be able to do something similar, although I don't have a clear idea of the implementation figured out.
Although sampling in NS is not as easily parallelizable as MCMC, there are still opportunities for multi-threading/multi-processing during the sample proposal step. Following the formalism of https://www.wesleyhenderson.me/pdfs/Parallelized_Nested_Sampling_Henderson_Goggans.pdf when we propose a new point during the sample steps, the proposals can be done in parallel, accepting the first new point that fulfills the likelihood constraints. This is implemented in dynesty using Python's
multiprocessing.pool.If we overload
AbstractMCMC.samplemethods using theMCMCDistributedandMCMCThreadsstructs, we should be able to do something similar, although I don't have a clear idea of the implementation figured out.