Table of Contents

Spack - a package manager for HPC systems

Spack - a package manager for HPC systems

https://spack.readthedocs.io


Essential commands

List all available software packages:

spack find

List all available packages which have been compiled with gcc 9.1.0:

spack find %gcc@9.1.0

Essential commands, continued

List all available versions of a particular package:

spack find openmpi

List all available versions of a package which have been compiled with intel@19.0.5.281:

spack find openmpi %intel@19.0.5.281

List all available variants of a particular package (detail level can be specified with options):

spack find openmpi@3.1.4
spack find -l openmpi@3.1.4
spack find -lv openmpi@3.1.4

Essential commands, continued

List all available variants of Scipy compiled with intel and intel-mkl for python3:

spack find -lvd py-scipy %intel@19.0.5.281 ^python@3.7.4 ^intel-mkl

Load a specific version of Scipy and all its dependecies:

spack load -r /dv72zy3

Spack modules

Modules are of the general form:

package/<version>-<compiler>-<version>-<hash>

e.g.

module load python/3.7.4-intel-19.0.5.281-x3acxqc

The hash x3acxqc reflects all dependencies of the package and corresponds to the hash found when using the command:

spack find -ld <package>

Disadvantage of using modules: you cannot automatically load all dependencies. This is in particular relevant for:

which can have a huge list of packages they depend on.