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).
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.
The official documentation is hosted on ReadTheDocs at http://nbodykit.readthedocs.org/.
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
- git pull - confirm that the master branch is up-to-date
- 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)
- Edit version.py -> git push ("bump version to ...")
- Go to https://travis-ci.org/bccp/nbodykit and make sure it merged without any problems.
- Go to bccp/conda-channel-bccp repo and do "Restart build"
- git tag 0.3.? -> git push --tags
- bump to a development version (0.3.?dev0)