This is an old revision of the document!
SPACK - a package manager for HPC systems
New Spack without Environments
List available Packages
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
Loading modules
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