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
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
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
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.