Abstract
The development of MCMC algorithms involves an implementation in a mathematical language, in addition to one in a programming language. Often a third version is written in a faster, lower-level language (e.g., R with C++). This development cycle comes with obvious drawbacks. It requires a separate manual code “translation” for each programming language, which may lead to errors and does not scale.
Our contribution is a system for MCMC algorithms based on a newly developed domain-specific language (DSL). DSLs are special-purpose languages, designed for one narrow task (e.g., SQL). Our DSL allows the implementation of algorithms using mathematical notation, which is then translated to the users’ preferred languages, e.g., R, Julia, or MATLAB.
Our newly developed DSL constitutes a concise, easily comprehensible, and extensible yet powerful system to streamline MCMC development. While researchers retain complete control over the algorithm, highly optimized backends (e.g. GPU) can be provided by domain specialists.
In the full paper, we will showcase the DSL implementation of multiple MCMC algorithms based on global-local shrinkage priors (Gibbs, Metropolis within Gibbs, etc.). We demonstrate that the same model can be compiled to R, Julia, and MATLAB code.
Our contribution is a system for MCMC algorithms based on a newly developed domain-specific language (DSL). DSLs are special-purpose languages, designed for one narrow task (e.g., SQL). Our DSL allows the implementation of algorithms using mathematical notation, which is then translated to the users’ preferred languages, e.g., R, Julia, or MATLAB.
Our newly developed DSL constitutes a concise, easily comprehensible, and extensible yet powerful system to streamline MCMC development. While researchers retain complete control over the algorithm, highly optimized backends (e.g. GPU) can be provided by domain specialists.
In the full paper, we will showcase the DSL implementation of multiple MCMC algorithms based on global-local shrinkage priors (Gibbs, Metropolis within Gibbs, etc.). We demonstrate that the same model can be compiled to R, Julia, and MATLAB code.
Originalsprache | Englisch |
---|---|
Publikationsstatus | Veröffentlicht - 2021 |