Installation

The OpenCosmo library is available for Python 3.11 and later on Linux and MacOS (and Windows via WSL). It can be installed with pip:

pip install opencosmo

If you are interested in the tools in the analysis module, they need to be installed seperately:

pip install opencosmo[analysis]

There’s a good chance the default version of Python on your system is less than 3.11. Whether or not this is the case, we recommend installing opencosmo into a virtual environment. If you’re using Conda you can create a new environment with Python 3.11 and install opencosmo into it like so:

conda create -n opencosmo_env python=3.11
conda activate opencosmo_env
pip install opencosmo

This will create a new environment called opencosmo with Python 3.11 and install the opencosmo package into it with all necessary dependencies. If you plan to use opencosmo in a Jupyter notebook, you can install the ipykernel package to make the environment available as a kernel:

conda install ipykernel
python -m ipykernel install --user --name=opencosmo

Be sure you have run the activate command shown above before running the ipykernel command.

Installing with MPI Support

opencosmo can leverage MPI to distribute analysis on a very large dataset across multiple cores or nodes. You simply need to install the mpi4py package:

pip install mpi4py

opencosmo Can both read and write data in an MPI context with no additional setup. By default, ranks must write to the file one at a time. This may result in poor performance if the data being written is large. This can be improved by installing the h5py package with MPI support. Pre-built wheels with MPI support are not generally available on PyPI, so you will need to build h5py from source against a version of the HDF5 library that was built with MPI support. Many HPC systems have an optimized MPI-enabled version of HDF5 available. For example, on Polaris at the Argonne Leadership Computing Facility (ALCF), run the follwing commands in the Python environment you plan to use with opencosmo:

pip uninstall h5py # If a non-MPI version is already installed in your environment
HDF5_MPI="ON" HDF5_DIR=$HDF5_DIR  CC="cc" pip install --no-cache-dir --force-reinstall --no-binary=h5py h5py

Parallel HDF5 is also available at NERSC and OLCF. See the linked documentation for details of getting your environment set up at one of those facilities.