Spack
For provisioning scientific software, we are primarily leveraging Spack where feasible.
Spack is an HPC-focussed package manager for scientific software that allows to easily build customised software stacks, taking care of dependencies and library conflicts. Amongst other things it enables having multiple parallel coexisting versions of the same software on one system.
The Spack documentation can be found at https://spack.readthedocs.io . If you are new to Spack, you may want to have a look at the Basic Usage guide.
While the Spack documentation assumes you set up a Spack instance yourself, we have set up a dedicated spack user with some common and requested packages already available.
In order to make use of any of the Spack-installed software, you first have to explicitly load them with the spack command, from the terminal or from your scripts.
spack findwill return a list of the installed Spack packages. (One way to look for a particular match:spack find | grep <partial name>)spack load <package name>will load them for use
Essentially a spack load will set up the environment variables for the package in question as well as any of its dependencies, making the binaries and libraries available for your session, similar to the traditional environment modules system.
As an alternative to using ‘spack’, environment modules (e.g. module load) is available to use as well, although Spack generally handles dependencies better and would thus be the preferred option.
Spack has its own way to create and manage ‘virtual environments’, where you can create an environment which loads a collection of relevant spack packages, and makes for an easy way to set up a customised environment for a specific project. e.g.:
spack env create foo
spacktivate -p foo
spack add <spack package> <another spack package>
Note that when using the default shared Spack setup, Spack will be read-only and you won’t be able to install anything yourself. If you are wanting to manage your own Spack package (spec) installs, you would have to set up your own local Spack instance in your home directory. If you would rather let us manage any new packages, just let us know what you need and we can provision the requested software via the shared spack instance.