You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the distributed parallelisation we build an mc_walker for each worker but are then also required to pass the mcwalker to the NestedSampling class. This particular instance of the mc_walker will not be used, because it is up to the workers to do the MCMC.
I find it confusing that the nested sampling object takes something that it doesn't need. So we could either make the mc_walker an optional parameter or we could pass the mc_walker to the workers from the master. Although dependency injection in this case would be more elegant, this solution is more cumbersome to implement and we would have to deal with making the mc_walker pickable.
I would just put in the documentation that mc_walker will be ignored if we use distributed parallelization.
I was just looking over the NestedSampling class and it's a bit of a mess with the three different versions of how to do mc walking. Would it make sense to have a simple non parallel class with the rest inheriting from it and overloading certain functions?
When using the distributed parallelisation we build an mc_walker for each worker but are then also required to pass the mcwalker to the NestedSampling class. This particular instance of the mc_walker will not be used, because it is up to the workers to do the MCMC.
I find it confusing that the nested sampling object takes something that it doesn't need. So we could either make the mc_walker an optional parameter or we could pass the mc_walker to the workers from the master. Although dependency injection in this case would be more elegant, this solution is more cumbersome to implement and we would have to deal with making the mc_walker pickable.
@js850 any ideas?
The text was updated successfully, but these errors were encountered: