Skip to content

[Feature Req.] Move away from CosmoHammer #44

@steven-murray

Description

@steven-murray

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:

  1. 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.
  2. 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)
  3. 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.

Metadata

Metadata

Assignees

Labels

API BreakingA change that breaks backwards compatibilitytype: feature: codeNew ability in the code (user-side)type: refactorCode refactoring / restyling for internal benefit

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions