77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# The PSI Spack Deployment
|
|
|
|
## How to use on Merlin7
|
|
|
|
### Install your own software
|
|
```bash
|
|
# Check if your package is already in Spack
|
|
user@login001:~> spack list $pkg_name # e.g opal
|
|
|
|
# Check the package variants you want to set e.g +cuda +openmp ^openmpi ...
|
|
user@login001:~> spack info $pkg_name # e.g opal
|
|
|
|
# Check the whole dependency tree of your spec and
|
|
# if you don't need to set more variants
|
|
user@login001:~> spack spec $pkg_name@version +variant1 ^dep1@version ...
|
|
|
|
# e.g spack spec opal@2022.1%gcc@7.5.0 +mithra ~python ^openmpi@4.1.6 ^openblas
|
|
|
|
# Install your package
|
|
user@login001:~> spack install $pkg_name@version +variant1 ^dep1@version1
|
|
|
|
# Load your package
|
|
user@login001:~> spack load $pkg_name@version +variant1 ^dep1@version1
|
|
|
|
# Submit your script
|
|
user@login001:~> sbatch batch.script
|
|
```
|
|
|
|
### Develop your own software
|
|
```bash
|
|
# Check if your package is already in Spack
|
|
user@login001:~> spack list $pkg_name # e.g opal
|
|
|
|
# Check the package variants you want to set e.g +cuda +openmp ^openmpi ...
|
|
user@login001:~> spack info $pkg_name # e.g opal
|
|
|
|
# Create your own env and load it
|
|
user@login001:~> spack env activate --create -p myenv
|
|
|
|
# Add the spec you want to build to your environement
|
|
user@login001:~> spack add $pkg_name@version +variant1 ^dep1@version ...
|
|
|
|
# e.g spack add opal@master%gcc@7.5.0 +mithra ~python ^openmpi@4.1.6 ^openblas
|
|
|
|
# Tell Spack you want to develop locally under
|
|
# /afs/psi.ch/sys/spack.x86_64_cos3.0/user/$USER/spack-environment/$pkg_name
|
|
user@login001:~> spack develop $pkg_name@version
|
|
|
|
# Install the package locally
|
|
user@login001:~> spack install # first time, then you can just use make directly
|
|
|
|
# Load your package
|
|
user@login001:~> spack load $pkg_name@version +variant1 ^dep1@version1
|
|
|
|
# Submit your script
|
|
user@login001:~> sbatch batch.script
|
|
|
|
```
|
|
|
|
## How to use on other systems
|
|
|
|
### Install Spack
|
|
|
|
```bash
|
|
user@supersystem:~> cd /scratch/$USER
|
|
|
|
user@supersystem:~> git clone -c feature.manyFiles=true https://github.com/spack/spack.git
|
|
|
|
user@supersystem:~> . spack/share/spack/setup-env.sh
|
|
|
|
# Add PSI specific recipes
|
|
user@supersystem:~> git clone https://gitlab.psi.ch/lsm-hpce/alps/spack-psi.git
|
|
|
|
user@supersystem:~> spack repo add $PWD/spack-psi
|
|
|
|
user@supersystem:~> spack install $pkg_name # -v for verbose
|