Quick Start#
Accessing RHEL9#
All users are encouraged to test their workflows on a set of nodes that are already upgraded to RHEL9 to prepare for the system-wide transition. To do so, you must first be connected to a dedicated RHEL9 login node. Please reach out to HPC-Help@nlr.gov with any issues or questions.
Frequently Asked Questions (FAQ)#
Please see our dedicated page for FAQs about RHEL9 on Kestrel.
Using Legacy (RHEL8) Software#
Kestrel users can still use old (RHEL8) software modules at their own risk and with the understanding that those modules will no longer be maintained by support staff after the OS upgrade. Refer to the dedicated Legacy Software page for more information.
Software modules on RHEL9#
Note
This subsection is targeted towards users who manage their own software environments and need access to specific modules for compilers, MPI, scientific libraries, etc. The new module system still allows for end-use applications to be loaded directly (e.g., module load vasp). If you primarily run such end-use applications, you should not notice a major change in your experience using Kestrel.
Kestrel's module system design is significantly changing with the RHEL9 upgrade. In general, to use the Cray Programming Environments (CPE), you must first run module load cpe-stack for the CPE modules to become available. For environments outside of CPE (e.g., a user-defined one built with GNU), you must load the compiler first as a "base module" to reveal software built for that specific toolchain.
Warning
Mixing CPE and non-CPE environments in the same job or build script is not recommended.
RHEL9 Module "Cheat Sheet"#
Please refer to the non-exhaustive translation table below to note how to load the equivalent module(s) between RHEL8 and RHEL9 for common module operations.
RHEL8 → RHEL9 Module Translation Table (CPU side)#
| RHEL8 module(s) | RHEL9 equivalent | Environment type |
|---|---|---|
vasp |
vasp |
End-use application (unchanged) |
lammps |
lammps |
End-use application (unchanged) |
PrgEnv-intel |
cpe-stack + PrgEnv-intel |
CPE |
PrgEnv-cray |
cpe-stack + PrgEnv-cray |
CPE |
PrgEnv-gnu |
cpe-stack + PrgEnv-gnu |
CPE |
gcc-stdalone |
gcc |
User-defined (NLR toolchain) |
intel-oneapi-compilers |
oneapi |
User-defined (NLR toolchain) |
conda / anaconda3 |
miniforge3 (conda/mamba inside) |
Python / Miniforge |
openmpi (standalone) |
openmpi (load after gcc/oneapi) |
User-defined (NLR toolchain) |
application (flat app tree) |
application/26.05 |
Research Applications |
| (n/a — RHEL8-only builds) | application/rhel8 (compat bridge) |
Legacy bridge |
cce/17.0.0 (D) |
cpe-stack + PrgEnv-cray |
CPE |
PrgEnv-aocc |
cpe-stack + PrgEnv-aocc |
CPE |
cray-libsci/23.12.5 |
cpe-stack + PrgEnv-gnu (bundles cray-libsci/25.03.0) |
CPE |
cray-mpich/8.1.28 (L,D) |
cray-mpich/8.1.32 / cray-mpich/9.0.0 |
CPE |
cray-fftw/3.3.10.6 (D) |
cpe-stack (bundles cray-fftw/3.3.10.10) |
CPE |
cray-hdf5/1.12.2.9 (D) |
cpe-stack (bundles cray-hdf5/1.14.3.5) |
CPE |
cray-netcdf/4.9.0.9 |
cpe-stack (bundles cray-netcdf/4.9.0.17) |
CPE |
intel-oneapi-compilers/2024.1.0 |
oneapi/2025.3.1 |
User-defined (NLR toolchain) |
intel-oneapi-mpi/2021.12.1-intel |
intel-oneapi-mpi/2021.17.2 (after oneapi) |
User-defined (NLR toolchain) |
openmpi/5.0.1-gcc |
openmpi/5.0.3 (load gcc first) |
User-defined (NLR toolchain) |
mpich/4.1-gcc |
mpich/5.0.0 (load gcc first) |
User-defined (NLR toolchain) |
cmake/3.29.2 (D) |
cmake/3.31.11 |
Core module (any toolchain) |
git/2.48.1 (D) |
git/2.52.0 |
Core module (any toolchain) |
python/3.11.4 (D) |
python/3.11.14 (3.10–3.14 also avail) |
Core module (any toolchain) |
boost/1.85.0-openmpi-gcc (D) |
boost/1.90.0-mpi (load gcc+openmpi) |
User-defined (NLR toolchain) |
hdf5/1.14.3-openmpi-gcc |
hdf5/1.14.6-mpi (load gcc+openmpi) |
User-defined (NLR toolchain) |
netcdf-c/4.9.2-openmpi-gcc (D) |
netcdf-c/4.9.3-mpi (load gcc+openmpi) |
User-defined (NLR toolchain) |
hypre/2.25.0-openmpi-gcc (D) |
hypre/3.1.0-mpi (load gcc+openmpi) |
User-defined (NLR toolchain) |
matlab/R2023a |
matlab/R2025a or matlab/R2025b |
End-use application |
gurobi/13.0.0 (D) |
gurobi/13.0.3 |
End-use application (unchanged name) |
nwchem/7.0.0 |
nwchem/7.3.1 |
End-use application (unchanged name) |
ansys/2025R2 (D) |
ansys/2026R1 (D) or ansys/default |
End-use application (unchanged name) |
wrf/4.6.1-cray-mpich-gcc |
wrf/4.8.0-craype-gnu (or 4.5.1-craype-gnu) |
End-use application |
Note: this table is non-exhaustive. Always confirm with
module spider <old_module_name>.
RHEL8 → RHEL9 Module Translation Table (GPU side)#
| RHEL8 module(s) | RHEL9 equivalent | Environment type |
|---|---|---|
PrgEnv-nvhpc |
cpe-stack + PrgEnv-nvidia |
CPE |
nvhpc-nompi / nvhpc-stdalone |
nvhpc |
User-defined (NLR toolchain) |
cuda (various point versions) |
cuda/12.8.1 (D) or cuda/13.2 |
User-defined (NLR toolchain) |
openmpi/4.1.6-nvhpc |
openmpi/5.0.3-gpu (with gcc+cuda) |
User-defined (NLR toolchain) |
gcc-standalone |
gcc (native/standalone builds removed from RHEL9 GPU catalog — see §3) |
User-defined (NLR toolchain) |
conda / anaconda3 |
miniforge3 |
Python / Miniforge |
vasp (GPU builds) |
vasp/6.5.1_openMP (D), etc. |
End-use application (unchanged) |
lammps-gpu builds |
lammps/22Jul2025-gpu-double\|mixed etc. |
End-use application (unchanged) |
application (flat GPU app tree) |
application/26.05 |
Research Applications |
nvhpc/23.9 (D) |
nvhpc/26.1 (D) (also 22.7/23.3/24.3/25.11 available) |
User-defined (NLR toolchain) |
gcc/13.1.0 (compilers_mpi) |
gcc/14.2.0 (Base Modules) |
User-defined (NLR toolchain) |
cudnn/9.2.0.82-12 (D) |
cudnn/9.17.0.29-13-gpu (D), also cudnn/9.17.0.29-12-gpu |
Core module (any toolchain) |
intel-oneapi-mpi/2021.13.0-intel |
intel-oneapi-mpi/2021.17.2 |
User-defined (NLR toolchain) |
hdf5/1.14.3-openmpi-gcc (D) |
hdf5/1.14.6-mpi (load gcc+openmpi) |
User-defined (NLR toolchain) |
boost/1.85.0-openmpi-gcc (D) |
boost/1.90.0-mpi (also 1.84.0-mpi, 1.89.0-mpi available) |
User-defined (NLR toolchain) |
python/3.12.4 (D) |
python/3.12.13 (3.10–3.14 also avail) |
Core module (any toolchain) |
cmake/3.29.6 (D) |
cmake/3.31.11 |
Core module (any toolchain) |
gdb/12.1 |
gdb/17.1 |
Core module (any toolchain) |
emacs/29.2 |
emacs/30.2 |
Core module (any toolchain) |
htop/3.2.2 |
htop/3.4.1 |
Core module (any toolchain) |
hwloc/2.9.3 |
hwloc/2.12.2 (or 2.9.3-mpi / 2.9.3-gpu-mpi for MPI-aware builds) |
Core module (any toolchain) |
forge/25.1.1 (D) |
forge/26.0.1 (D) |
End-use application (unchanged name) |
julia/1.12.1 (D) |
julia/1.12.1 (also 1.10.4/1.11.4) |
End-use application (mostly unchanged) |
paraview/5.12.0-egl-server (D) |
paraview/5.13.3-gui (D) / 5.12.0-egl-server still available |
End-use application (unchanged name) |
Note: this table is non-exhaustive. Always confirm with
module spider <old_module_name>.
Troubleshooting#
| Problem | Fix |
|---|---|
| Can't find a module | module spider <name> |
| Won't load (deps missing) | module spider <name>/<version> then load listed prereqs first |
| Mixed/conflicting toolchains | module reset, then reload one workflow only |
| Weird broken shell state | module reset NOT module purge) |
Quick Reference Table#
| Workflow | Commands |
|---|---|
| NLR gcc | module reset; module load gcc/14.2.0 |
| NLR oneAPI | module reset; module load oneapi/2025.3.1 |
| CPE | module reset; module load cpe-stack/25.03; module load PrgEnv-gnu |
| Miniforge | module reset; module load miniforge3/26.1.1-3 |
| Container | module reset; module load apptainer/1.4.1-runonly |
| Find any package | module spider <name> |
| Find package deps | module spider <name>/<version> |
| See what's loaded | module list |
| Inspect a module | module show <name> |
| Undo everything safely | module reset |