Danger
This page is tailored to experienced users and collaborators developing ACCESS models.
This step is not required if you only want to run a model. If you are looking for information on how to run a model, refer to the Run a Model section.
Set up Spack for building ACCESS models
Spack is a build-from-source package manager, specifically designed to simplify the installation of scientific software on supercomputers.
To use Spack, please familiarise yourself with the Basic Usage instructions and Environments.
We also recommend that you refer to the Spack 101 Tutorial.
Prerequisites
- NCI Account
These instructions are tailored specifically for Gadi. To use Spack on Gadi, you need to Set Up your NCI Account. - Bash shell
The following instructions must be run in a Bash shell, which is the default shell on Gadi. To check if you are using Bash, run:If you see output (i.e. the Bash version), you are already in a Bash shell. If there is no output, start a Bash shell by running:echo "$BASH_VERSION"
bash
Set up Spack on Gadi
Tip
The steps in this section only need to be done once.
Create a directory for Spack
Create a directory on the filesystem where Spack will be installed (e.g. /g/data/$PROJECT/$USER/spack/0.22
). Use the /g/data
filesystem if you wish to run the binaries on the compute nodes.
mkdir -p /g/data/$PROJECT/$USER/spack/0.22
cd /g/data/$PROJECT/$USER/spack/0.22
Clone the relevant git repositories
Info
ACCESS-NRI maintains a fork of Spack to enable back-porting fixes from more recent spack versions. This fork is the one used in these instructions.
git clone -c feature.manyFiles=true https://github.com/ACCESS-NRI/spack.git --branch releases/v0.22
git clone https://github.com/ACCESS-NRI/spack-packages.git --branch main
git clone https://github.com/ACCESS-NRI/spack-config.git --branch main
Link Spack configuration files to the Spack instance
ln -s -r -v spack-config/v0.22/gadi/* spack/etc/spack/
Success
Your Spack setup is complete!
For instructions on how to build an ACCESS model using Spack, refer to Modify and build an ACCESS model's source code.
Enable Spack
Warning
For this step, it is recommended to use a new login Bash shell environment to avoid conflicting environment variables. Additionally, this step must be repeated for every new login or new shell session.
cd /g/data/$PROJECT/$USER/spack/0.22
module purge
. spack-config/spack-enable.bash
Warning
There is a space between the .
and the path to the file, as we are sourcing the file.
Test Spack (OPTIONAL)
To test that your Spack installation works as expected, we will create an ACCESS-TEST
environment and build the relevant packages (this will take approximately 30 minutes). Then, we will uninstall all the packages and remove the environment.
Create a Spack managed environment
git clone https://github.com/ACCESS-NRI/ACCESS-TEST.git
spack env create test ACCESS-TEST/spack.yaml
Activate the environment
Activate the test
Spack environment by running:
spack env activate -p test
Compile packages
spack find
spack concretize -f --fresh
spack install
Warning
Some of the commands above might take several minutes to complete.
Info
The full output has been truncated for brevity.
Check installed packages
spack find
Cleanup
spack uninstall --remove --all
spack env deactivate
spack env rm test
rm -rf ACCESS-TEST
Update Spack on Gadi
Keep your Spack instance up-to-date by doing the following:
cd /g/data/$PROJECT/$USER/spack/0.22
git -C spack fetch --all -Pp
git -C spack reset --hard origin/releases/v0.22
git -C spack-config pull
git -C spack-packages pull