Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ella GCC Setup #288

Open
wants to merge 16 commits into
base: ella-setup
Choose a base branch
from
Open

Ella GCC Setup #288

wants to merge 16 commits into from

Conversation

Edric-Matwiejew
Copy link

@Edric-Matwiejew Edric-Matwiejew commented Oct 23, 2024

Progress

The installation stages scripts/install_spack.sh and scripts/install_python.sh should be functional, all subsequent stages are currently broken.

Changes

GCC Installation

On Ella we'd like to deploy a software stack built on a version of GCC that is more recent than the system compilers. To support this:

  • scripts/install_python.sh installs GCC with spack if the ${gcc_version} is not present in its site compilers.yaml. After installation, compilers.yaml is updated with spack compiler add.
  • gcc is configured as buildable in systems/ella/configs/site/packages.yaml.

Other

  • Various changes to the Ella settings.sh.
    • GCC version increased to 13.3.0
    • Updated paths to match the current filesystem, architecture specified as aarch64.
    • Lists specifying module categories, environments, and shpc modules have been set to "". These will be re-populated as we move through the subsequent stages of the software stack installation.
  • site compilers.yaml configuration for system GCC (11.4.1).
  • Cray-specific commands in scripts/install_python.sh are conditioned on CRAYPE_VERSION.
  • Spack version increased to 0.21.0 and repo/* bought across from main to support the version increase.
  • External package versions in systems/ella/configs/site/packages.yaml coincide with the Roky Linux package repo.

@Edric-Matwiejew Edric-Matwiejew marked this pull request as draft October 25, 2024 02:04
@Edric-Matwiejew
Copy link
Author

Fixes:

  • Removed archs="zen3 zen2" in scripts/create_system_moduletree.sh and scripts/templates/spack_create_user_moduletree.sh, which shadowed the archs definition in settings.sh.
  • Bought spack patches over from the main branch for compatibility with spack 0.22.0
  • Corrected checks for definition of CRAYPE_VERSION
  • Using sg when installing gcc to ensure that the module is created in the directory for site-wide module files.

Non-essential:

  • The GCC and Python installs take quite some time, so -j $(nproc) is passed to spack.

@Edric-Matwiejew
Copy link
Author

Edric-Matwiejew commented Oct 25, 2024

Changes:

  • systems/ella/configs/spackuser/modules.yaml
    • Packages that depend on gcc autoload its dependencies
    • gcc module projection: programming-languages/{name}/{version}
  • scripts/templates/pawseyenv.lua
    • Architecture aarch64 set if the CPU model name is "Neoverse-V2"
    • For instances where paths would be prepended to Cray Lmod hierarchy variables, the function pawsey_prepend_path(cray_var, path) wraps prepend_path such that path is appended to MODULEPATH if arch == aarch64 and cray_var otherwise.
    • If arch == aarch64, the path to the spack-installed GCC module is identified with find. There are certainly more elegant solutions, but for now this minimises changes to settings.sh and the install scripts.

The pawseyenv module is now functional:

[edric_matwiejew@ella-n002 pawsey-spack-config]$ export MODULEPATH=$MODULEPATH:/software/ella/2024.10.24/staff_modulefiles
[edric_matwiejew@ella-n002 pawsey-spack-config]$ module load pawseyenv/2024.10.24

The following have been reloaded with a version change:
  1) pawseyenv/2024.10 => pawseyenv/2024.10.24

[edric_matwiejew@ella-n002 pawsey-spack-config]$ module avail

----------------------------------------------------------------- /software/ella/2024.10.24/modules/aarch64/gcc/11.4.1/programming-languages ------------------------------------------------------------------
   gcc/13.2.0    perl/5.38.0 (D)

----------------------------------------------------------------- /software/ella/2024.10.24/modules/aarch64/gcc/13.2.0/programming-languages ------------------------------------------------------------------
   perl/5.38.0    python/3.10.10

---------------------------------------------------------------------------------- /software/ella/2024.10.24/pawsey/modules -----------------------------------------------------------------------------------
   spack/0.21.0

@Edric-Matwiejew Edric-Matwiejew marked this pull request as ready for review October 25, 2024 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants