Installation¶
PPMD is developed to run on Linux 64bit machines. Other operating systems may work but are not actively developed upon at this time.
Dependencies and Installation¶
Required System tools:
Python 3+ (
PYTHONHASHSEED
must be set to the same non-zero value on all MPI hosts).mpi4py compatible MPI3.0+ (with development headers e.g.
libopenmpi-dev openmpi-bin mpi-default-bin
on ubuntu 17.04.).A C/C++ compiler, preferably intel (see
PPMD_CC_MAIN
environment variable).CUDA Toolkit if targeting CUDA.
The recommended installation method (and upgrade method) is to create a Python virtual environment then install (or upgrade) PPMD with:
pip install --upgrade --no-cache-dir git+https://github.com/ppmd/ppmd@master
For CUDA support please install PyCUDA:
pip install --no-cache-dir pycuda
The installation can then by customised with the environment variables defined below.
Environment Variables¶
The code generation system relies on consistency of the following environment variable across all MPI processes, this value must be set for parallel MPI execution.
PYTHONHASHSEED
: e.gexport PYTHONHASHSEED=123
.
Set the following environment variables to alter compilers used and default temporary directories. If these variables are not set the default behaviour is to use GCC and build temporary files to /tmp/build
.
PPMD_BUILD_DIR
: The directory used as a storage location for generated libraries. For example:export PPMD_BUILD_DIR=/tmp/build
PPMD_CC_MAIN
: Name of the compiler to use from compilers defined inppmd/config/compilers
or in a directory given byPPMD_EXTRA_COMPILERS
. For example:export PPMD_CC_MAIN=ICC
PPMD_CC_OMP
: Name of the OpenMP compiler to use, as above. For example:export PPMD_CC_OMP=$PPMD_CC_MAIN
PPMD_EXTRA_COMPILERS
: Directory that should be parsed for user defined compilers.PPMD_DISABLE_CUDA
: Disable CUDA initialisation.
The following should be set if CUDA support is desired.
CUDA_SDK
: location of CUDA_SDK (or path containing the helper header files from the sdk).MPI_HOME
: Used by the default CUDA compiler configuration to locate the desired MPI implementation.