This Github organization puts together several codes, whose aim is to emulate cosmological observables as predicted by Einsten-Boltzmann solvers and Perturbation Theory codes.
Actually, the observables we emulates are:
- CMB angular Power Spectrum, with
Capse.jl
- BAO correlation function with
Bora.jl
- Galaxy Clustering Power Spectrum multipoles based on EFT with
Effort.jl
Our emulators are built using the Julia programming language, although most of them have a Python wrapper to enable usage in the pipelines commonly employed by the cosmological community. Furthermore, we are currently working on pure Jax translations for some of our emulators.
Currently, we employ two different neural network backends for the Julia emulators:
SimpleChains.jl
, a high-performance framework tailored for small NNs running on a CPULux.jl
, which is fully GPU compatible
Although the former is (in general) faster for our applications, the latter opens to the possibility of using samplers, such as MicroCanonical Hamiltonian MonteCarlo, that can easily run on a GPU.
Our emulators are differentiable, i.e. we can use automatic (also dubbed algorithmic) differentiation in order to evaluate derivatives. This enable for gradient-based methods, such as the minimization L-BFGS algorithm (as implemented in Optim.jl
) or the Hamiltonian MonteCarlo inference algorithm (as implemented in Turing.jl
).
The codes previously listed are used in the following publications: