Installation Guide¶
Prerequisites¶
Python¶
First of all, you need a clean installation of Python (version 2.7 is better, though it works also with 2.6 and 2.5 (see below). version 3.0 is not supported), with at least the numpy module (version \(\geq 1.4.1\)) and the cython module. This last one is to convert the C code CLASS into a Python class.
If you also want the output plot to have cubic interpolation for analyzing chains, you should also have the scipy module (at least version 0.9.0). In case this one is badly installed, you will have an error message when running the analyze module of Monte Python, and obtain only linear interpolation. Though not fatal, this problem produces ugly plots.
To test for the presence of the modules numpy, scipy, cython on your machine, you can type
$ python
$ >>> import numpy
$ >>> import scipy
$ >>> import cython
$ >>> exit()
If one of these steps fails, go to the corresponding websites, and
follow the instructions (if you have the privilege to have the root
password on your machine, an apt-get install python-numpy,
python-scipy and cython will do the trick. Otherwise, all these
packages can also be downloaded and installed locally, with the
command python setup.py install --user
).
Note that you can use the code with Python 2.6 also, even though you need to download two packages separately ordereddict and argparse. For this, it is just a matter of downloading the two files ordereddict.py and argparse.py), and placing them in your code directory without installation steps.
Class¶
Next in line, you must compile the python wrapper of CLASS. Download
the latest version (\(\geq 1.5.0\)), and follow the basic instruction.
Instead of make class
, type make -j
. If you are using a Class
version \(\geq 2.3.0\), the wrapper will be installed by doing this step,
so skip ahead.
In case you are using an older version of Class, the compilation only created an archiv .ar of the code, useful in the next step. After this, do:
class]$ cd python/
python]$ python setup.py build
python]$ python setup.py install --user
If you have correctly installed cython, this should add Classy as a new python module. You can check the success of this operation by running the following command:
~]$ python
>>> from classy import Class
If the installation was successful, this should work within any directory. If you get no error message from this line, you know everything is fine.
Note
If the step python setup.py install --user
does not succeed, but that
the build
is successful, then as far as Monte Python is concerned, there are
no issues. The code will be found nonetheless.
If at some point you have several different coexisting versions of Class on the system, and you are worried that Monte Python is not using the good one, rest reassured. As long as you run Monte Python with the proper path to the proper Class in your configuration file (see Installation) then it will use this one.
Installation¶
Main code¶
Move the latest release of Monte Python to one of your folders, called e.g.
code/
(for instance, this could be the folder containing also
class/
), and untar its content:
code]$ bunzip montepython-v1.0.0.tar.bz2
code]$ tar -xvf montepython-v1.0.0.tar
code]$ cd montepython
You will have to create one file holding the path of the codes you want to use.
There is a predefined template, default.conf.template
, in the root
directory of the code. You should copy it to a new file called
default.conf
, which will tell Monte Python, where your other programs (in
particular Class) are installed, and where you are storing the data for the
likelihoods. It will be interpreted as a python file, so be careful to
reproduce the syntax exactly. At minimum, default.conf should contain one
line, filled with the path of your class/
directory:
path['cosmo'] = 'path/to/your/class/'
To check that Monte Python is ready to work, simply type python
montepython/MontePython.py --help
(or just montepython/MontePython.py
--help
). This will provide you with a short description of the
available command line arguments, explained in Parser module.
Planck likelihood¶
With the release of Planck data comes the release of its likelihood. It is distributed from this ESA website, along with the data. Download all tar.gz files, extract them to the place of your convenience.
The Planck Likelihood Code (plc) is based on a library called clik. It will be extracted, alongside several .clik folders that contain the likelihoods. The installation of the code is described in the archive, and it uses an auto installer device, called waf.
Warning
Note that you are strongly advised to configure clik with the Intel mkl library, and not with lapack. There is a massive gain in execution time: without it, the code is dominated by the execution of the low-l polarisation data from WMAP.
In your Monte Python configuration file, to use this code, you should add the following line
path['clik'] = 'path/to/your/plc/folder/'
The four likelihoods defined in Monte Python for Planck are Planck_highl, Planck_lowl, Planck_lensing, lowlike (the polarization data from WMAP). In each of the respective data files for these likelihood, please make sure that the line, for instance,
Planck_highl.path_clik = data.path['clik']+'../something.clik'
points to the correct clik file. Now, before trying to run this likelihood, you will need to source the code to your system, by typing:
~]$ source /path/to/your/plc/folder/bin/clik_profile.sh
Once you made sure of this, you can then use the base.param file distributed with MontePython, that defines all the needed nuisance parameters, the covariance matrix as well as the bestfit file, in this command:
python montepython/MontePython.py -o planck/ -p base.param -c covmat/base.covmat \
-bf bestfit/base.bestfit --conf default.conf -f 1.5
Note
The use of the factor 1.5 is to increase the acceptance rate, due to the non gaussianity of the nuisance parameters posterior.
WMAP likelihood¶
Warning
As of version 1.2.5, with Planck data being available, installing this likelihood might not be so important anymore. You might prefer to skip this, at it is an optional part of the installation process.
Warning
So far, the use of the WMAP wrapper is separated from the Planck wrapper, but it might be merged in the future, as it is based on the same code clik developped internally for Planck by Karim Benabed.
To use the likelihood of WMAP, we propose a python wrapper, located in
the wrapper_wmap
directory. Just like with the Class
wrapper, you need to install it, although the procedure differs. Go to
the wrapper directory, and enter:
wrapper_wmap]$ ./waf configure install_all_deps
This should read the configuration of your distribution, and install the WMAP likelihood code and its dependencies (cfitsio) automatically on your machine. For our purpose, though, we prefer using the intel mkl libraries, which are much faster. To tell the code about your local installation of mkl libraries, please add to the line above some options:
--lapack_mkl=/path/to/intel/mkl/10.3.8 --lapack_mkl_version=10.3
Once the configuration is done properly, finalize the installation by typing:
wrapper_wmap]$ ./waf install
The code will generate a configuration file, that you will need to
source before using the WMAP likelihood with Monte Python. The file is
clik_profile.sh
, and is located in wrapper_wmap/bin/
.
So if you want to use the likelihood 'wmap'
, before any call
to Monte Python (or inside your scripts), you should execute
~]$ source /path/to/MontePython/wrapper_wmap/bin/clik_profile.sh
The wrapper will use the original version of the WMAP likelihood codes
downloaded and placed in the folder
wrapper_wmap/src/likelihood_v4p1/
during the installation
process. This likelihood will be compiled later, when you will call it
for the first time from the Monte Python code. Before calling it for the first
time, you could eventually download the WMAP patch from Wayne Hu’s web
site, for a faster likelihood.
You should finally download the WMAP data files by yourself, place
them anywhere on your system, and specify the path to these data files
in the file likelihoods/wmap/wmap.data
.