phoebe2 icon indicating copy to clipboard operation
phoebe2 copied to clipboard

UltraNest support

Open JohannesBuchner opened this issue 3 years ago • 3 comments

Would you be interested to add support for https://johannesbuchner.github.io/UltraNest/ ? The interface should be very similar to dynesty.

UltraNest is a very reliable tuning-parameter-free algorithm. It can be faster than dynesty, especially if you take advantage of vectorization.

It also supports resuming from disk and MPI parallelisation, if that is useful to you.

JohannesBuchner avatar Feb 11 '21 11:02 JohannesBuchner

Absolutely! Would you be interested in working with us to get it implemented optimally?

aprsa avatar Feb 11 '21 12:02 aprsa

Sure!

JohannesBuchner avatar Feb 11 '21 12:02 JohannesBuchner

Great! It definitely would be nice to have additional built-in options to compare (and to easily choose whichever is most appropriate for a given situation).

I looked a bit through the UltraNest docs and it does seem like it should be fairly straightforward to get up and running. From a logistics perspective, I think the most difficult parts will be trying to get the resuming from disk working within the existing framework in PHOEBE (i.e. preferably not relying on an external file, at least by default, but rather storing what is needed internally in the PHOEBE structure... I do see you have support for resuming from ascii, not just hdf5... so that looks promising!) and getting the multiprocessing to play nice (for emcee, for example, we use parallelization within emcee only if the number of available processors is <= the number of walkers, otherwise we run emcee serially and run the forward-model in PHOEBE in parallel).

I just added this to the running list of future extensions to the "fitting" framework (https://github.com/phoebe-project/phoebe2/discussions/407#discussioncomment-359833), so let's continue the discussion there, just to keep everything in one place.

kecnry avatar Feb 11 '21 15:02 kecnry