Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
doku:spack [2021/08/26 07:02] – mhickel | doku:spack [2023/05/17 14:45] – msiegel | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | == Finding Packages | + | ===== SPACK - a package manager for HPC systems ===== |
- | Most software on VSC4 is installed via spack, to list available software packages use: | + | [[https:// |
+ | |||
+ | |||
+ | ==== New SPACK without environments ==== | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | < | ||
+ | zen [user@l51 ~]$ | ||
+ | </ | ||
+ | |||
+ | Read more at: | ||
+ | |||
+ | [[doku: | ||
+ | |||
+ | |||
+ | ==== List available packages ==== | ||
+ | |||
+ | Most software on VSC4/5 is installed via spack, to list available software packages use: | ||
< | < | ||
Line 7: | Line 33: | ||
</ | </ | ||
- | List all available packages compiled with a specific compiler | + | List all available packages compiled with a specific compiler: |
< | < | ||
Line 25: | Line 51: | ||
</ | </ | ||
+ | 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**: | ||
+ | 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 '' | ||
+ | |||
+ | List all currently loaded packages: | ||
+ | < | ||
+ | spack find --loaded | ||
+ | </ | ||
+ | |||
+ | ==== Loading modules ==== | ||
+ | |||
+ | The '' | ||
+ | < | ||
+ | spack load < | ||
+ | </ | ||
+ | '' | ||
+ | |||
+ | < | ||
+ | spack load openmpi@4.1.0%gcc@9.1.0 | ||
+ | </ | ||
+ | |||
+ | This will load the corresponding module: | ||
+ | < | ||
+ | # module list | ||
+ | Currently Loaded Modulefiles: | ||
+ | 1) openmpi/ | ||
+ | </ | ||
+ | |||
+ | and is equivalent to loading the module as: | ||
+ | |||
+ | < | ||
+ | module load openmpi/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | Alternatively a package can be loaded by using the unique hash of a package. | ||
+ | The option '' | ||
+ | |||
+ | < | ||
+ | # 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 '' | ||
+ | |||
+ | |||
+ | < | ||
+ | spack load /2cmze2s | ||
+ | </ | ||
+ | |||
+ | Unload all currently loaded packages: | ||
+ | < | ||
+ | spack unload --all | ||
+ | </ | ||