Stack Modules: Release 24.4.0

After 2nd of June 2025, all spack releases have been renamed to stack.

The software stack/24.4.0 is a major release that brings many changes. Please refer below for a detailed list of major and minor changes to the software stack.

Highlights & changes with the new software stack,

  • As with previous software stack updates this release ...
    • ... will not auto-load any of the modules, giving users a clean environment to start with.
    • ... brings new versions (refer Change log below) of various packages, ensuring you have access to the latest features and improvements.

How to use the new software stack/24.4.0?

This software stack is rolled out  on both machines (CoolMUC-4 as default and SuperMUC-NG Phase 1 as non default). You will have to explicitly swap/switch stack modules to access the new software stack on SuperMUC-NG Phase 1. The best way is to purge all loaded modules and load the stack/24.4.0 like,

$> module purge ; module load stack/24.4.0

Please be aware, 

  • Using the "module purge" command will unload all previously loaded modules from your terminal shell, including automatically loaded ones such as "intel," "intel-mpi," and "intel-mkl." This step is crucial to prevent potential errors that may arise due to lingering modules.

Change Log

Changes

Status in Spack/24.4.0

Notes: 

Available on Plattformx86_64, Icelake and Sapphire Rapids (CoolMUC4), Skylake (SuperMUC-NG)
date of release19.05.2025
OSSLES 15.6 (CoolMUC4), SLES 15.3 (SuperMUC-NG)
Spack Version0.23.x 
Environment Modules Version

5.5.0

 

Compilers
GCCIntelNAGNVHPC

gcc/8.5.0

gcc/9.5.0

gcc/10.5.0

gcc/12.4.0

gcc/13.2.0

gcc/13.3.0

gcc/14.2.0

intel/17.0

intel/18.0

intel/2024.0.0

intel/2024.1.0

intel/2024.2.1

nag/7.2 

nvhpc/22.9

nvhpc/22.11

nvhpc/23.1

nvhpc/24.9

  • Multiple compiler modules can be loaded together.
    • $> module load intel gcc
  • Different versions of the same compilers shall not be loaded together. 
  • For the sake of clarity, module alias will not be created for compiler modules
    • For example, gcc module is provided as "gcc/12.2.0" instead of "gcc12"
Module Names

PACKAGE/version-suffix1-suffix2-suffix3

suffices are as follows

Suffix

Description

-intel<version>

E.g. intel21, intel23

compiled with the Intel 23 (major version) compiler suite 

-gcc<version>

E.g. gcc11, gcc12

compiled with the gcc 12 (major version) compiler suite 
-impiwith MPI support (Intel MPI)
-ompi

with MPI support (OpenMPI)

-openmpwith threading support by OpenMP

-i32 / -i64
-r32 / -r64

32/64 bit integer/float support
-X11with X11 support
-pythonwith python support

Example:

$> module avail gsl

gsl/2.6-gcc12

gsl/2.6-intel23

gsl/2.7-gcc12

gsl/2.7-intel23

  • Application packages made available in the tree with haswell, skylake-avx512 are built using optimization flags for underlying architecture.

 


MPI Modules
Intel-MPIOpenMPI

intel-mpi/2018.4.274

intel-mpi/2019.12.320

intel-mpi/2021.6.0

intel-mpi/2021.7.0

intel-mpi/2021.9.0

intel-mpi/2021.10.0

intel-mpi/2021.11.0

openmpi/3.1.6-gcc12

openmpi/3.1.6-intel23

openmpi/3.1.6-nag7.1

openmpi/4.0.7-gcc12

openmpi/4.0.7-intel23

openmpi/4.0.7-nag7.1

openmpi/4.1.5-gcc12

openmpi/4.1.5-intel23

openmpi/4.1.5-nag7.1


  • Intel MPI modules will not have -intel and -gcc suffixes.
    • Intel-mpi will have a module naming scheme such as

      • intel-mpi/version

      compared to the existing naming scheme, the module with suffixes such as,

      • intel-mpi/version-gcc or -intel


  • MPI variables (MPI_CC, MPI_CXX, MPI_FC, MPI_F77, MPI_F90) in the module will be set to compatible MPI wrappers based on the already loaded compiler module (intel or gcc).
  • What if both intel and gcc modules are loaded together?
    • In this case, when loading intel-mpi the preferred compiler will be Intel (that means MPI_* variables will set intel-compatible wrappers).
  • module swap intel gcc or other way around will swap intel-mpi module with correct MPI_* variables.


  • Any MPI modules, intel-mpi or openmpi,  will have a prereq of the compatible compiler. What does it mean?
    • If you load an MPI module, a compiler module will be auto-loaded.
  • For OpenMPI modules, 
    • openmpi module naming scheme is openmpi/version-compilername-majorcompilerversion
    • if you load a openmpi module with -intel*, this will auto load intel compiler. 
    • if you load a openmpi module with -gcc*, this will auto load gcc compiler.


  • We have introduced the prerequeste of compatible MPI module in all the packages which are dependents of MPI.
MKL Modules

intel-mkl/2020.4.304

intel-mkl/2021.4.0

intel-mkl/2023.1.0

  • Intel MKL modules will not have -gcc and -seq suffixes.
    • Intel-mkl will have a module naming scheme such as

      • intel-mkl/version

      compared to the existing naming scheme, the module with suffixes such as,

      • intel-mkl/version-gcc or -seq
  • Extra variables have been provided in the MKL modules that will help users to get linker flags(with default options).
  • $> module show intel-mkl will provide you further information about default options used for provided variables stating linker flags.  
  • We strongly recommend to use MKL linker tool available in your shell (after loading MKL module) or use web interface of MKL linker tool. 

 

Python Modules

python/3.7.16-base

python/3.7.16-extended

python/3.8.16-base

python/3.8.16-extended

python/3.10.10-base

python/3.10.10-extended

Please check the python documentation.

The old intel python modules are still available but need to be loaded explicitly.

 

intel-toolkit

Performance tools (advisor, inspector, itac, ...) Modules

With the latest software stack, we have added components of intel-oneapi toolkits. Checkout Intel-OneAPI Toolkit components

intel-toolkit/2021.4.0

intel-toolkit/2023.1.0

intel-toolkit/2023.2.0

  • OneAPI components are provided as a bundle module. Use the intel-toolkit module to get more oneAPI components in your terminal. 
  • Observe that we have shortened the module name from intel-oneapi-* (compilers, mpi, mkl, vtune, etc...) to intel-* (removing the oneapi).