We present BAT.jl 2.0, the next generation of the Bayesian Analysis Toolkit. BAT.jl is a highly efficient and easy to use software package for Bayesian Inference. It's predecessor, BAT 1.0 in C++, has been very successful over the years with a large number of citations. Our new incarnation of BAT was rewritten from scratch in Julia and we recently released the long-term stable version 2.0.
Solving inference problems in the natural sciences, in particular High Energy Physics, often requires flexibility in using multiple programming languages, differentiable programming, and parallel execution on both CPU and GPU architectures. BAT.jl enables this by drawing on the unique capabilities of the Julia Programing Language. It provides efficient Metropolis-Hastings sampling, Hamiltonian Monte Carlo with automatic differentiation and nested sampling. We also provide algorithms to estimate the evidence (integral of the posterior), necessary to compute Bayesian factors, from posterior samples. BAT.jl uses a minimal set of dependencies and new algorithms can be easily added due to the toolbox structure of the package.
BAT.jl continues to evolve, one of its new experimental features is a sampling algorithm with space partitioning. This algorithm can efficiently utilize distributed computing resources and sample posteriors with reduced burn-in overhead while dealing with multi-modal densities. We also provide the user with a set of plotting recipes to quickly visualize results.