PawseySC / pawsey-spack-config

Automated deployment system for the scientific software stack in use at Pawsey
BSD 3-Clause "New" or "Revised" License
4 stars 9 forks source link

Pawsey Spack Configuration

Scripts and configuration files used by the Pawsey Supercomputing Research Centre to deploy Spack and to install the scientific software stack on its supercomputing systems.

Installation

Here is how to launch the software stack installation.

  1. Make sure the system you want to install the software stack on has a corresponding directory in systems. If not, you can start by creating a copy of an existing one.
  2. Edit the file systems/<system>/settings.sh as needed.
  3. Set and export the INSTALL_PREFIX variable to the full path of the filesystem location where you want the installation to be placed in. Note that it has to end with the same string as the one stored in the DATE_TAG variable, meaning that installations are versioned by installation date.
  4. Set and export the INSTALL_GROUP variable to the linux group that is going to own the installed files.
  5. Set and export the SYSTEM variable to the system you want to run the installation for, if it differs from the content of the PAWSEY_CLUSTER environment variable.
  6. Run the scripts/install_software_stack.sh script, preferably in a Slurm job or as a process detached from the login shell to prevent the installation from being aborted in case the SSH connection were to be interrupted unexpectedly.

Singularity

You will need to ask the platforms team to apply root permissions to Singularity ss soon as it is installed. The script to run as root is found in the bin directory within the spack installation prefix.

Software stack modulefile

The platforms team will need to install the $INSTALL_PREFIX/staff_modulefiles/pawseyenv/*lua module such that it will be loaded before the Cray compilers. They will also need to update user account creation process, following the updated $INSTALL_PREFIX/spack/bin/spack_create_user_moduletree.sh.

Repository structure

The repository is composed of the directories:

The scripts/install_software_stack.sh is the top-level script that executes the installation from start to finish except licensed software, that need some manual work. Refer to this script also as documentation of the installation process.

The scripts directory

This project makes up a build system for the scientific software stack on Pawsey supercomputers. On a high level, there are two logical compontents to it: one to deploy Spack and SHPC (a software package to manage containers), and the other to use the tools mentioned before to install scientific software.

The deployment of Spack and SHPC is implemented through the following executables BASH scripts within the scripts directory:

The software stack deployment is implemented in these scripts instead:

The systems/<system> directory

This is where system specific configurations are placed. In particular, the following items must always be present.

Notes

Module categories in use

Testing Modules

Current modules.yaml and the template modulefile.lua rely on additional features of Spack found in the feature/improved-lmod-modules (https://github.com/PawseySC/spack/tree/feature/improved-lmod-modules).
The update provides extra tokens that can be used when creating the module name and also extra keywords to the template.
These features have now been packaged in a patch, that is applied by install_spack.sh.