Always set npool if request-cpus>1
Now that the samplers have been refactored bilby (bilby!1043 (merged)), npool
is keyword argument for all of the samplers. This means we no longer need the logic in Input.update_sampler_kwargs_conditional_on_request_cpus
that sets npool
(or equivalent) based on the sampler being used.
bilby version
This change requires bilby>=1.2.0
but this was already pinned in !472 (merged)
Unit tests
I've added a simple unit test to make sure the logic is correct.
End-to-end tests
I've run tests with dynesty, bilby_mcmc, nessai and pymultinest. The first three should all use npool
whereas multinest should ignore it. The output directory is here: https://ldas-jobs.ligo.caltech.edu/~michael.williams/bilby-dev/bilby-pipe/request-cpus-npool/
- dynesty & bilby_mcmc: the logs show the multiprocessing pool starting with the correct number of cores (4)
- nessai:
npool
is correctly translated ton_pool
and the log shows the multiprocessing pool starting - multinest: no pool is started but sampling runs to completion