tl;dr
Put the following in your .bashrc
use_build() {
if hostname | grep bebop &>/dev/null; then
echo "loading bebop spack"
module load gcc/11.4.0
module load intel-oneapi-mpi/2021.12.1-tjkrnei
module load intel-oneapi-mkl/2024.0.0-jfwrhz5
source $HOME/git/spack-bebop/share/spack/setup-env.sh
source $HOME/git/spack-bebop/share/spack/spack-completion.bash
export clustername=bebop
fi
#other LCRC Machines
export SPACK_USER_CONFIG_PATH="$HOME/.spack/$clustername"
export SPACK_USER_CACHE_PATH="$SPACK_USER_CONFIG_PATH"
}
Then run
mkdir -p ~/git
git clone https://github.com/spack/spack git/spack-bebop
git clone https://github.com/robertu94/spack_packages git/robertu94_packages
source ~/.bashrc
# for extra packages like libpressio
spack repo add ~/git/robertu94_packages
Bebop provides default configurations for packages and compilers so you are ready to go!
And now spack should work. On your next login, just call use_build
to reload spack.
For the longer version see the guide on [configuring spack]({% link _guides/spack.markdown %})
What makes this machine special?
- Spack shares a home filesystem with other machines like
swing
these machines are completely different hardware wise and use different module systems. The load function loads a copy of spack specifically for Bebop and uses a separate spark instance for other machines. We use spack’sSPACK_USER_CONFIG_PATH
to keep these cleanly separate. - The Bebop admins have configured spack with a bunch of sane defaults, so you can leave these alone :)
Changelog
- 2022-07-19 created this document
- 2022-08-11 updated to use Intel-MPI
- 2024-07-11 updated after the bebop update