Skip to content

Background

Marc Paterno edited this page Jun 27, 2019 · 5 revisions

Background and context for our integration program

The physics context

The integration task that prompted this project appears in the context of an analysis being performed by some of the members of the Dark Energy Survey (DES). This analysis is looking to obtain constraints on the values of several parameters of a cosmological model by analyzing the distribution of clusters of galaxies observed by DES.

The analysis technique employed is Bayesian parameter estimation, and the calculational tool used for the analysis is CosmoSIS. CosmoSIS is modular software for Markov Chain Monte Carlo (MCMC) parameter estimation.

For the clusters analysis in question, we are writing a CosmoSIS module that calculates the predicted number and mass densities of galaxy clusters expected to be observed by DES, and some related quantities. The calculation of these predictions requires the calculation of some integrals that are computationally expensive.

The calculational context

CosmoSIS is a modular Python-based MPI program, which can call modules written in any of Python, Fortran, C, and C++. For each MCMC sample generated in a CosmoSIS run, a pipeline of modules are invoked; each module is passed the set of cosmological parameters being sampled, as well as a host of derived quantities, which are accumulated by the calls to each module in the pipeline.

In a typical analysis, hundreds of thousands of MCMC samples (or even millions of samples) might be needed to allow the parameter estimation to have the necessary statistical accuracy.

The cluster analysis calculations

The modules being developed to calculate the galaxy cluster number density, etc., are written in C++. The calculation of the predictions makes use of a variety of quantities calculated from the cosmological parameters (and which therefore vary for each MCMC sample). They are implemented by a moderately complicated set of models, each of which calculates a physically meaningful set of quantities, combined to yield the predicted quantities.

These models consist of a mixture of one- and two-dimensional lookup tables, as well as analytic mathematical functions. The CPU-based version of the code uses mathematical functions provided by the C++ standard library, as well as some functions provided by GSL (for interpolation).

For each MCMC sample produced, the integrand in question is used to calculate integrals for several different volumes of integration. For each volume of integration, the calculated integral is evaluated on a grid of several hundred values of radius and redshift (two quantities that constant parameters involved in the calculation of the integrals).

Clone this wiki locally