FIX: update README.md
This commit is contained in:
176
README.md
176
README.md
@ -2,63 +2,159 @@
|
|||||||
|
|
||||||
[Official Spack documentation](https://spack.readthedocs.io/en/latest/)
|
[Official Spack documentation](https://spack.readthedocs.io/en/latest/)
|
||||||
|
|
||||||
## How to use on Merlin7
|
## How to use on Merlin systems (Merlin6/Merlin7)
|
||||||
|
```bash
|
||||||
|
module load spack
|
||||||
|
|
||||||
|
# If you want to use the unstable software stack do:
|
||||||
|
spack env activate -p unstable
|
||||||
|
```
|
||||||
|
|
||||||
### Install your own software
|
### Install your own software
|
||||||
```bash
|
```bash
|
||||||
# Check if your package is already in Spack
|
# Check if your package is already implemented in Spack
|
||||||
user@login001:~> spack list $pkg_name # e.g opal
|
# You can also use the following website: https://packages.spack.io/
|
||||||
|
[stable] user@login001:~> spack list $pkg_name # e.g opal
|
||||||
|
|
||||||
# Check the package variants you want to set e.g +cuda +openmp ^openmpi ...
|
# Check the package variants you want to set e.g +cuda +openmp ^openmpi ...
|
||||||
user@login001:~> spack info $pkg_name # e.g opal
|
[stable] user@login001:~> spack info $pkg_name # e.g opal
|
||||||
|
|
||||||
# Check the whole dependency tree of your spec and
|
# Add your package to the environment
|
||||||
|
[stable] user@login001:~> spack add $pkg_name@version +variant1 ^dep1@version1
|
||||||
|
|
||||||
|
# If you want to install from local source clone your source under
|
||||||
|
# /afs/psi.ch/sys/spack/user/$USER/spack-environment/$pkg_name
|
||||||
|
# and tell Spack you want to use it using:
|
||||||
|
[stable] user@login001:~> spack develop $pkg_name@version # Skip this if you don't want to develop from local source
|
||||||
|
|
||||||
|
# Check the whole dependency tree of your spec and
|
||||||
# if you don't need to set more variants
|
# if you don't need to set more variants
|
||||||
user@login001:~> spack spec $pkg_name@version +variant1 ^dep1@version ...
|
[stable] user@login001:~> spack concretize
|
||||||
|
|
||||||
# e.g spack spec opal@2022.1%gcc@7.5.0 +mithra ~python ^openmpi@4.1.6 ^openblas
|
# Install your packages
|
||||||
|
[stable] user@login001:~> spack install # -v for verbose
|
||||||
# Install your package
|
|
||||||
user@login001:~> spack install $pkg_name@version +variant1 ^dep1@version1
|
|
||||||
|
|
||||||
# Load your package
|
# Load your package
|
||||||
user@login001:~> spack load $pkg_name@version +variant1 ^dep1@version1
|
[stable] user@login001:~> spack load $pkg_name@version +variant1 ^dep1@version1
|
||||||
|
|
||||||
# Submit your script
|
# Submit your script
|
||||||
user@login001:~> sbatch batch.script
|
[stable] user@login001:~> sbatch batch.script
|
||||||
```
|
```
|
||||||
|
### Switching between environments
|
||||||
|
|
||||||
|
There are two environment available to users; stable and unstable. <br/>
|
||||||
|
The first one is loaded by default when loading the module. <br/>
|
||||||
|
If you want to switch between the two and use different software stack you can use the following command:
|
||||||
|
|
||||||
### Develop your own software
|
|
||||||
```bash
|
```bash
|
||||||
# Check if your package is already in Spack
|
spack env activate -p unstable # or stable
|
||||||
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
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Managing your environments
|
||||||
|
|
||||||
|
When adding the following command you actually add a package to your own software stack;
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[stable] user@login001:~> spack add $pkg_name@version +variant1 ^dep1@version1
|
||||||
|
```
|
||||||
|
|
||||||
|
You can check which package will be concretized and are in your environment using;
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[unstable] user@login001:~> spack find
|
||||||
|
==> In environment unstable
|
||||||
|
==> 1 root specs
|
||||||
|
- visit ~adios2+vtkm+gui
|
||||||
|
|
||||||
|
==> Included specs
|
||||||
|
-- no arch / gcc ------------------------------------------------
|
||||||
|
gromacs%gcc
|
||||||
|
|
||||||
|
-- no arch / gcc@12.3.0 -----------------------------------------
|
||||||
|
cp2k@2024.1%gcc@12.3.0 opal@master%gcc@12.3.0 py-alphafold@2.3.2%gcc@12.3.0
|
||||||
|
cp2k@2024.1%gcc@12.3.0 py-alphafold@2.3.2%gcc@12.3.0 quantum-espresso@7.3.1%gcc@12.3.0
|
||||||
|
|
||||||
|
-- no arch / oneapi@2024.1.0 ------------------------------------
|
||||||
|
gromacs@2024.1%oneapi@2024.1.0
|
||||||
|
|
||||||
|
==> Installed packages
|
||||||
|
-- linux-rhel7-x86_64 / gcc@4.8.5 -------------------------------
|
||||||
|
autoconf@2.72 curl@8.7.1 gdbm@1.23 libffi@3.4.6 mpfr@4.2.1 pkg-config@0.29.2 readline@8.2
|
||||||
|
autoconf@2.72 diffutils@3.10 gettext@0.19.8.1 libidn2@2.3.7 mpfr@4.2.1 pkg-config@0.29.2 sqlite@3.43.2
|
||||||
|
autoconf-archive@2023.02.20 diffutils@3.10 gettext@0.19.8.1 libmd@1.0.4 ncurses@6.5 py-fypp@3.1 texinfo@7.0.3
|
||||||
|
autoconf-archive@2023.02.20 expat@2.6.2 git@2.42.0 libpciaccess@0.17 ncurses@6.5 py-fypp@3.1 util-linux-uuid@2.36.2
|
||||||
|
automake@1.16.5 findutils@4.9.0 glibc@2.17 libsigsegv@2.14 nghttp2@1.57.0 py-pip@23.1.2 util-macros@1.19.3
|
||||||
|
automake@1.16.5 findutils@4.9.0 glibc@2.17 libsigsegv@2.14 ninja@1.11.1 py-setuptools@59.4.0 xz@5.4.6
|
||||||
|
berkeley-db@18.1.40 flex@2.6.3 gmake@4.4.1 libtool@2.4.7 numactl@2.0.14 py-wheel@0.41.2 zlib-ng@2.1.6
|
||||||
|
berkeley-db@18.1.40 gawk@5.3.0 gmake@4.4.1 libunistring@1.2 nvhpc@24.3 python@3.8.18 zlib-ng@2.1.6
|
||||||
|
binutils@2.42 gawk@5.3.0 gmp@6.2.1 libxcrypt@4.4.35 openssh@9.7p1 python@3.9.18 zstd@1.5.6
|
||||||
|
binutils@2.42 gcc@12.3.0 gmp@6.2.1 libxml2@2.10.3 openssl@3.3.0 python@3.11.7 zstd@1.5.6
|
||||||
|
binutils@2.42 gcc@12.3.0 krb5@1.20.1 m4@1.4.19 openssl@3.3.0 python-venv@1.0
|
||||||
|
bison@3.8.2 gcc-runtime@4.8.5 libbsd@0.12.1 m4@1.4.19 pcre2@10.43 python-venv@1.0
|
||||||
|
bzip2@1.0.8 gcc-runtime@4.8.5 libedit@3.1-20230828 mpc@1.3.1 perl@5.38.0 re2c@2.2
|
||||||
|
bzip2@1.0.8 gdbm@1.23 libevent@2.1.12 mpc@1.3.1 perl@5.38.0 readline@8.2
|
||||||
|
|
||||||
|
-- linux-rhel7-x86_64 / gcc@12.3.0 ------------------------------
|
||||||
|
abseil-cpp@20240116.2 libogg@1.3.5 py-beniget@0.3.0 py-ml-collections@0.1.0 py-tabulate@0.8.9
|
||||||
|
amrex@18.07 libpng@1.6.39 py-biopython@1.79 py-networkx@2.7.1 py-tensorboard@2.11.2
|
||||||
|
aria2@1.37.0 libssh2@1.11.0 py-bottleneck@1.3.2 py-numexpr@2.8.4 py-tensorboard-data-server@0.6.1
|
||||||
|
boost@1.85.0 libtheora@1.1.1 py-cachetools@5.2.0 py-numpy@1.17.5 py-tensorboard-plugin-wit@1.8.1
|
||||||
|
boost@1.85.0 libxc@6.2.2 py-certifi@2023.7.22 py-numpy@1.21.6 py-tensorflow@2.11.0
|
||||||
|
c-ares@1.27.0 libxsmm@1.17 py-charset-normalizer@3.3.0 py-oauthlib@3.2.2 py-termcolor@1.1.0
|
||||||
|
cmake@3.27.9 libyaml@0.2.5 py-chex@0.0.7 py-opt-einsum@3.3.0 py-tomli@2.0.1
|
||||||
|
cp2k@2024.1 llvm@16.0.6 py-contextlib2@21.6.0 py-packaging@23.1 py-toolz@0.12.0
|
||||||
|
cp2k@2024.1 lua@5.3.6 py-cython@0.29.36 py-pandas@1.3.4 py-typing-extensions@4.8.0
|
||||||
|
cuda@12.4.0 lz4@1.9.4 py-decorator@5.1.1 py-pdbfixer@1.7 py-urllib3@1.26.12
|
||||||
|
fftw@3.3.10 mesa-glu@9.0.2 py-dm-haiku@0.0.9 py-pip@23.0 py-websocket-client@1.6.3
|
||||||
|
fftw@3.3.10 mesa18@18.3.6 py-dm-tree@0.1.6 py-pip@23.1.2 py-werkzeug@2.0.2
|
||||||
|
freetype@2.10.2 metis@5.1.0 py-docker@5.0.3 py-ply@3.11 py-wheel@0.37.1
|
||||||
|
gcc-runtime@12.3.0 mithra@2.0 py-etils@0.9.0 py-poetry-core@1.8.1 py-wheel@0.41.2
|
||||||
|
gcc-runtime@12.3.0 netlib-scalapack@2.2.0 py-flatbuffers@23.5.26 py-protobuf@3.19.4 py-wrapt@1.15.0
|
||||||
|
gettext@0.19.8.1 opal@master py-flit-core@3.9.0 py-pyasn1@0.4.8 py-zipp@3.17.0
|
||||||
|
gl2ps@1.4.2 openblas@0.3.25 py-gast@0.4.0 py-pyasn1-modules@0.2.8 python@3.8.18
|
||||||
|
googletest@1.12.1 openblas@0.3.26 py-google-auth@2.27.0 py-pybind11@2.12.0 python@3.11.7
|
||||||
|
gsl@2.7.1 openblas@0.3.26 py-google-auth-oauthlib@0.4.6 py-pytest-runner@6.0.0 python-venv@1.0
|
||||||
|
h5hut@2.0.0rc6 openjdk@11.0.20.1_1 py-google-pasta@0.2.0 py-python-dateutil@2.8.2 python-venv@1.0
|
||||||
|
hdf5@1.12.3 openmm@7.5.1 py-grpcio@1.60.1 py-pythran@0.9.11 quantum-espresso@7.3.1
|
||||||
|
hdf5@1.14.3 openmpi@4.1.6 py-h5py@3.11.0 py-pytz@2023.3 re2@2023-09-01
|
||||||
|
hdf5@1.14.3 openmpi@4.1.6 py-idna@3.4 py-pyyaml@6.0 rust-bootstrap@1.78.0
|
||||||
|
hh-suite@3.3.0 osmesa@11.2.0 py-immutabledict@2.2.1 py-requests@2.31.0 slurm@23-11-0-1
|
||||||
|
hmmer@3.4 parmetis@4.0.3 py-importlib-resources@5.12.0 py-requests-oauthlib@1.3.1 swig@4.1.1
|
||||||
|
hwloc@2.9.1 pcre@8.45 py-jax@0.3.25 py-rsa@4.9 trilinos@13.4.0
|
||||||
|
jsoncpp@1.9.5 perl-data-dumper@2.173 py-jaxlib@0.3.25 py-scipy@1.7.0 unzip@6.0
|
||||||
|
kalign@3.4.0 protobuf@3.19.4 py-jmp@0.0.2 py-setuptools@57.4.0 zip@3.0
|
||||||
|
libgcrypt@1.10.3 py-absl-py@1.0.0 py-libclang@16.0.0 py-setuptools@69.2.0
|
||||||
|
libgpg-error@1.49 py-alphafold@2.3.2 py-mako@1.2.4 py-setuptools@69.2.0
|
||||||
|
libint@2.6.0 py-alphafold@2.3.2 py-markdown@3.3.4 py-setuptools-scm@8.0.4
|
||||||
|
libjpeg@9f py-astunparse@1.6.3 py-markupsafe@2.1.3 py-six@1.16.0
|
||||||
|
|
||||||
|
-- linux-rhel7-x86_64 / oneapi@2024.1.0 -------------------------
|
||||||
|
gromacs@2024.1 hwloc@2.9.1 intel-oneapi-mkl@2024.0.0 intel-oneapi-runtime@2024.1.0 intel-tbb@2021.9.0 openmpi@4.1.6 slurm@23-11-0-1
|
||||||
|
==> 257 installed packages
|
||||||
|
```
|
||||||
|
|
||||||
|
The root spec is the specs that are personal to you and that will be concretized and installed. <br/>
|
||||||
|
The installed packages are either packages that were previously installed by admins or packages that you already installed but that are not root. <br/>
|
||||||
|
|
||||||
|
If you want to remove this package from your personal env, you can use the following command: <br/>
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[stable] user@login001:~> spack rm $pkg_name@version +variant1 ^dep1@version1
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[stable] user@login001:~> spack config edit
|
||||||
|
spack:
|
||||||
|
...
|
||||||
|
specs:
|
||||||
|
-- - visit~adios2+gui+vtkm ^harfbuzz%gcc@12.3.0
|
||||||
|
++ []
|
||||||
|
...
|
||||||
|
```
|
||||||
|
and remove it manually from the spec list.
|
||||||
|
|
||||||
## How to use on other systems
|
## How to use on other systems
|
||||||
|
|
||||||
### Install Spack
|
### Install Spack
|
||||||
|
Reference in New Issue
Block a user