Installation
Mpi4py-fft has a few dependencies
that are mostly straight-forward to install, or already installed in most Python environments. The first two are usually most troublesome. Basically, for mpi4py you need to have a working MPI installation, whereas FFTW is available on most high performance computer systems. If you are using conda, then all you need to install a fully functional mpi4py-fft, with all the above dependencies, is
conda install -c conda-forge mpi4py-fft h5py=*=mpi*
You probably want to install into a fresh environment, though, which can be achieved with
conda create --name mpi4py-fft -c conda-forge mpi4py-fft
conda activate mpi4py-fft
Note that this gives you mpi4py-fft with default settings. This means that you will probably get the openmpi backend. To make a specific choice of backend just specify which, like this
conda create --name mpi4py-fft -c conda-forge mpi4py-fft mpich
If you do not use conda, then you need to make sure that MPI and FFTW are installed by some other means. You can then install any version of mpi4py-fft hosted on pypi using pip
pip install mpi4py-fft
whereas the following will install the latest version from github
pip install git+https://github.com/mpi4py/mpi4py-fft@master
You can also build mpi4py-fft yourselves from the top directory, after cloning or forking
pip install .
Additional dependencies
For storing and retrieving data you need either HDF5 or netCDF4, compiled with support for MPI. Both are available with parallel support on conda-forge and can be installed into the current conda environment as
conda install -c conda-forge h5py=*=mpi* netcdf4=*=mpi*
Note that parallel HDF5 and NetCDF4 often are available as optimized modules on supercomputers. Otherwise, see the respective packages for how to install with support for MPI.
Test installation
After installing (from source) it may be a good idea to run all the tests
located in the tests
folder. A range of tests may be run using the
runtests.sh
script
conda install scipy, coverage
cd tests/
./runtests.sh
This test-suit is run automatically on every commit to github, see, e.g.,