Setting up Spack¶
Spack is a generic package manager for HPC. We rely on it in the following to install WDMapp and its components. Setting up Spack is a one-time process on a given machine – if you already have a working Spack install, you should be able to use it. However, in practice there are plenty of ways that things can wrong, so we provide tested Spack setups for a selection of machines. Following our instructions makes sure that WDMapp is built with compatible compilers and machine-specific system packages (e.g., MPI, CUDA, etc.).
Installing Spack¶
Follow the instructions from the Spack Documentation.
$ git clone -b v0.15.4 https://github.com/spack/spack.git
Note
v0.15.4 is the latest spack stable version on 2020-10-20; newer versions will likely work but have not been tested. Using the default ‘develop’ branch is not recommended, as it does break sometimes and introduces a lot of package version churn if you try to track it.
Enable shell support for Spack.
# For bash/zsh users
$ export SPACK_ROOT=/path/to/spack
$ . $SPACK_ROOT/share/spack/setup-env.sh
# For tcsh or csh users (note you must set SPACK_ROOT)
$ setenv SPACK_ROOT /path/to/spack
$ source $SPACK_ROOT/share/spack/setup-env.csh
Cloning the WDMapp package repo¶
Just clone the repository from github to the same machine that you just set up Spack on.
$ git clone git@github.com:wdmapp/wdmapp-config.git
Adding the WDMapp package repo to Spack¶
This will let Spack search the WDMapp repository for packages that aren’t found in its builtin package repository.
$ spack repo add path/to/wdmapp-config/spack/wdmapp
==> Added repo with namespace 'wdmapp'.
Note
To update the wdmapp package repository to the latest, just run git
pull
in the directory where you cloned wdmapp-config/
.