Is your feature request related to a problem? Please describe.
21CMMC currently uses CosmoHammer as its mcmc framework (which wraps emcee). However, CosmoHammer is no longer developed, and doesn't support emcee 3. We get around some of these issues by heavily subclassing/overwriting CosmoHammer, but this is a lot of hacking.
Describe the solution you'd like
A couple of things we could do:
- Use a different framework that supports
emcee 3 and is actively developed (and will be into the future). I have not researched which frameworks would do this, though I myself have created one (https://github.com/steven-murray/yabf) which may or may not fit the bill.
- Not use a framework at all, and just support
emcee 3 (which can be used through MPI now by using this replacement for the mpi Pool: https://github.com/sibirrer/lenstronomy/blob/master/lenstronomy/Sampling/Pool/multiprocessing.py)
- Write our own mini framework within 21CMMC, replicating some of the interface of
CosmoHammer.
I'm not sure which one would be best, but I'd like to move towards something that could support different samplers (which, to be fair, CosmoHammer does to some extent). The framework should ideally be easily extensible, and importantly, actively developed (either by ourselves or others), so that we can make/suggest changes.
Is your feature request related to a problem? Please describe.
21CMMC currently uses
CosmoHammeras its mcmc framework (which wrapsemcee). However,CosmoHammeris no longer developed, and doesn't supportemcee3. We get around some of these issues by heavily subclassing/overwritingCosmoHammer, but this is a lot of hacking.Describe the solution you'd like
A couple of things we could do:
emcee3 and is actively developed (and will be into the future). I have not researched which frameworks would do this, though I myself have created one (https://github.com/steven-murray/yabf) which may or may not fit the bill.emcee3 (which can be used through MPI now by using this replacement for the mpi Pool: https://github.com/sibirrer/lenstronomy/blob/master/lenstronomy/Sampling/Pool/multiprocessing.py)CosmoHammer.I'm not sure which one would be best, but I'd like to move towards something that could support different samplers (which, to be fair,
CosmoHammerdoes to some extent). The framework should ideally be easily extensible, and importantly, actively developed (either by ourselves or others), so that we can make/suggest changes.