Open saudiwin opened 5 months ago
This tripped me up recently. I switched from variational
to pathfinder
and was confused why my threads = 12
didnt' work anymore.
I think we should have threads
for all of them. The samplers should be using the multi-threading across chains available in cmdstan. So then the user just specifies how many chains they want and stan internally does thread management for within and across chain parallelization
We have not done that yet because it is a pretty big rewrite of some internals of cmdstanr
Is your feature request related to a problem? Please describe. This isn't a big deal, but now that we have multiple sampling algorithms, it would be nice if we could condense the syntax for specifying multi-threading. Currently, the sample method has
threads_per_chain
, pathfinder hasnum_threads
, and laplace hasthreads
. Especially as some of the utility of the variational methods is in using them as testing or initialization for MCMC, it would be nice if we could unify this syntax.Describe the solution you'd like Perhaps just a single argument like
num_threads
or perhaps for compatibility withsample
the others could all usethreads_per_chain
.Describe alternatives you've considered Perhaps the other variational methods could also take
threads_per_chain
as an additional argument ifthreads
ornum_threads
isn't specified.Additional context This is mainly for using
cmdstanr
in a pre-compiled model context in which switching from one sampling method to another may be done for the same data/model.