nbodykit is an open source project and Python package providing a set of algorithms useful in the analysis of cosmological datasets from N-body simulations and large-scale structure surveys.
Driven by the optimism regarding the abundance and availability of large-scale computing resources in the future, the development of nbodykit distinguishes itself from other similar software packages (i.e., nbodyshop, pynbody, yt, xi) by focusing on :
- a unified treatment of simulation and observational datasets by insulating algorithms from data containers
- reducing wall-clock time by scaling to thousands of cores
- deployment and availability on large, super computing facilities
All algorithms are parallel and run with Message Passing Interface (MPI).
For users using the NERSC super-computers, we provide a ready-to-use tarball of nbodykit and its dependencies; see Using nbodykit on NERSC for more details.
We perform integrated tests of the code, including all built-in algorithms, in a miniconda environment for Python 2.7 and Python 3.4.
We recommend using the anaconda distribution of Python.
To obtain the dependencies and install a package on OSX or Linux, use
conda install -c bccp nbodykit
We are considering support for Windows, but this depends on the status of mpi4py.
For manual install, please refer to .travis.yml, the build section:
At NERSC, nbodykit's master branch is built every night.
salloc -N 1 source /usr/common/contrib/bccp/nbodykit/activate.sh dev srun -n 4 python-mpi example.py
The file, example.py can be found at https://github.com/bccp/nbodykit/blob/master/nersc/example.py
The official documentation is hosted on ReadTheDocs at http://nbodykit.readthedocs.org/.