This version is outdated by a newer approved version.DiffThis version (2023/05/17 14:42) was approved by msiegel.The Previously approved version (2023/05/17 14:45) is available.Diff

This is an old revision of the document!


Having worked with spack environments for some time, we have encountered several severe issues which have convinced us that we need to find a more practical way of maintaining software packages at VSC.

There are now three separate spack installation trees corresponding to the CPU/GPU architectures on VSC:

  • skylake - Intel CPUs; works on Intel Skylake and Cascadelake CPUs
  • zen - AMD CPUs; works on Zen 2 and 3 CPUs
  • cuda-zen - AMD CPUs + NVIDIA GPUs; works on all nodes equipped with graphics cards

By default the spack installation tree suitable for the current compute/login node is activated and will be indicated by a prefix on the command line, e.g.:

zen [user@l51 ~]$

Read more at:

Transition to new SPACK without Environments

Most software on VSC4/5 is installed via spack, to list available software packages use:

spack find

List all available packages compiled with a specific compiler:

spack find %gcc@9.1.0

A specific version can be requested as well:

spack find openmpi@4.1.0

List a specific version compiled with a specific compiler:

spack find openmpi@4.1.0%gcc@9.1.0

The detail level of information can be specified with the following options:

spack find -l openmpi@4.1.0%gcc@9.1.0
spack find -lv openmpi@4.1.0%gcc@9.1.0
spack find -lvd openmpi@4.1.0%gcc@9.1.0

The latter lists all dependencies of the package.

Dependencies: dependencies of software packages can be specified with a ^. e.g.:

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

This will list all available versions of py-scipy which have been build with python@3.7.4 and any version of intel-mkl.

List all currently loaded packages:

spack find --loaded

The spack command can be used to load software modules. The general form is:

spack load <package>

package has to be a uniquely defined software package where all dependencies have been resolved, e.g.:

spack load openmpi@4.1.0%gcc@9.1.0

This will load the corresponding module:

# module list
Currently Loaded Modulefiles:
 1) openmpi/4.1.0-gcc-9.1.0-2cmze2s

and is equivalent to loading the module as:

module load openmpi/4.1.0-gcc-9.1.0-2cmze2s

Alternatively a package can be loaded by using the unique hash of a package. The option -l will display the short hash of a package:

# spack find -l openmpi@4.1.0%gcc@9.1.0
==> 1 installed package
-- linux-centos7-x86_64 / gcc@9.1.0 -----------------------------
2cmze2s openmpi@4.1.0

The hash 2cmze2s uniquely identifies the package and can also be used to load the software module:

spack load /2cmze2s

Unload all currently loaded packages:

spack unload --all
  • doku/spack.1684334768.txt.gz
  • Last modified: 2023/05/17 14:46
  • by msiegel