I am happy to announce that a release candidate for the next release of Cmdstan is now available on Github.
You can find it here: https://github.com/stan-dev/cmdstan/releases/tag/2.23-candidate
Why a release candidate?
We want to do a more wide and thorough test of the next version before the official release planned for next week. To make sure nothing gets missed.
And that is why we need you, the users, to try out the release candidate. Play with new features or just compile and run your models. And let us know what you think.
How to install?
Download the tar.gz
file from the link above, extract it and use it the way you use any Cmdstan release.
If you are using cmdstanpy, make sure you point to the folder where you extracted the tar.gz file with set_cmdstan_path(os.path.join('path','to','cmdstan'))
With cmdstanr you can install the release candidate using
install_cmdstan(release_url = "https://github.com/stan-dev/cmdstan/releases/download/2.23-candidate/cmdstan-2.23-rc1.tar.gz", cores = 4)
What is new?
The highlight of this release is a new way of parallelizing your models. Other than that, the focus of this release was mostly bugfixes and stability/consistency for edge cases.
A quick rundown of the most notable changes is listed below:
New features:
- introduces
reduce_sum
andreduce_sum_static
functions that provide a new way of parallelizing a single chain across multiple cores. A tutorial on this new feature can be found here (based on the popular map_rect tutorial by @richard_mcelreath). You can also read the pre-release of the new user guide docs here. - added OpenCL (GPU) support for GLMs when using the “~” syntax (previously only supported with target +=)
- upgraded to Sundials 5.2.0
- including files snytax supports < > brackets
Notable user-facing bugfixes:
- Fixed problems with vectorizing neg_binomial_* functions that lead to wrong answers
- Fixed compiling of user-defined rng functions
- Improved lbeta to be more numerically stable with one large and one small argument
- Improved numerical stability with binomial_coefficient_log, neg_binomial_2_lpmf, and neg_binomial_2_log_lpmf computations
- Fixed problem with wrong gradients for large arguments to log_sum_exp
- Fixed bug where normal_id_glm did not work with a sigma is not an autodiff type
- Cleaned up makefile error messages on Windows
- Better checks for positive-definitnes in mdivide_left_spd
- More consistent throwing behaviour on QR functions
- Clearer messages when using a variable name as a keyword
- Arbitrary spaces allowed betweeen words in “transformed data” and “transformed parameters”
There are also some ongoing refactors and projects that don’t have a direct user-facing impact at the moment like for example:
- generalizing functions in the Math library
- adding complex numbers support
- more OpenCL supported functions via the kernel generator
These currently do not have an effect on your models, but will in the future (with speedups or new features). We want to also make sure those changes in the background didn’t break any of your models.
Thanks,
Stan Development Team