Installation

PyZFS uses the mpi4py package for parallelization. An existing MPI implementation (e.g. MPICH or OpenMPI) is required to install mpi4py and PyZFS. Many supercomputers provide modules for pre-compiled MPI implementations. MPI can also be installed from package managers such as APT and Homebrew, or built from source.

PyZFS requires Python 3.6+. It is recommended to install PyZFS using pip. First, clone the git repository:

$ git clone https://github.com/MICCoMPy/pyzfs.git

Then, execute pip in the folder containing setup.py

$ pip install .

PyZFS depends on the following packages, which will be installed automatically by pip

  • numpy

  • scipy

  • mpi4py

  • h5py

  • ase

  • lxml

If using pip is not possible, one can manually install the above dependencies, and then add the directory of PyZFS to the PYTHONPATH environment variable by, e.g.,

# Bash shell as an example
$ export PYTHONPATH=$PYTHONPATH:path/to/pyzfs

GPU

PyZFS optionally uses the cupy package to offload the calculation to NVIDIA GPUs. To use this feature, install cupy by, e.g.,

$ pip install cupy-cuda110

Note that the version of cupy must be compatible to the version of CUDA installed on the system, which in the above example is version 11.0. At runtime, PyZFS automatically tries to import the cupy module and uses all available GPUs. If cupy cannot be imported, PyZFS falls back to NumPy and runs on CPUs.