Analysis kit for large-scale structure datasets, the massively parallel way
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarks restore original emulator benchmark [ci skip] Nov 29, 2017
docs allow other versions of sphinx. Jan 24, 2019
nersc do not use deprecated syntax in Oct 30, 2017
.coveragerc do not coverage test style directory Aug 7, 2017
.gitignore ignore __pycache__ and docs/_build. Apr 30, 2018
.gitmodules remove cookbook submodule Nov 2, 2017
.travis.yml Add astropy cache directory to cache. Oct 18, 2018
CHANGES.rst update change log for release. Feb 7, 2019
CONTRIBUTING.rst remove all references to firebot. Apr 16, 2018
LICENSE adding basic package files back Dec 3, 2016 to Sep 1, 2017
README.SGI-MPT Add a readme for using with SGI-MPT. Aug 11, 2017
README.rst Update README file Oct 17, 2018
readthedocs.yml install the package with Jun 8, 2017
requirements-extras.txt add fitsio as an optional requirement Jun 15, 2017
requirements.txt update dask requirement for optimization Sep 16, 2017 mv to Aug 30, 2017 Use setuptools. Nov 1, 2018


nbodykit: a massively parallel large-scale structure toolkit

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
  • an interactive user interface that performs as well in a Jupyter notebook as on super-computing machines

All algorithms are parallel and run with Message Passing Interface (MPI).

Build Status

We perform integrated tests of the code, including all built-in algorithms, in a miniconda environment for Python 2.7, 3.5, and 3.6.

Build Status Test Coverage Conda PyPi


The official documentation is hosted on ReadTheDocs at

Cookbook Recipes

Users can dive right into an interactive cookbook of example recipes using binder. We've compiled a set of Jupyter notebooks to help users learn nbodykit by example — just click the launch button below to get started!


Users can also view a static version of the cookbook recipes in the documentation.


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.

Using nbodykit on NERSC

On the Cori and Edison machines at NERSC, we maintain a nightly conda build of the latest stable release of nbodykit. See the documentation for using nbodykit on NERSC for more details.

Bumping to a new version

  1. git pull - confirm that the master branch is up-to-date
  2. Edit Changelog (CHANGES.rst) - Make sure to include all issues which have arisen since the last version. (git add ... -> git commit -m "Update Changelog" -> git push)
  3. Edit -> git push ("bump version to ...")
  4. Go to and make sure it merged without any problems.
  5. Go to bccp/conda-channel-bccp repo and do "Restart build"
  6. git tag 0.3.? -> git push --tags
  7. bump to a development version (0.3.?dev0)