Modules

We use the Lmod module system to provide compilers, MPI stacks, libraries, and tools.

The legacy module tree (elysium/2024) is currently the default view. To switch to the current tree, load:

module load elysium/2026

The elysium/202x modules modify the MODULEPATH. They are sticky, so they are not removed by module purge. elysium/2024 and elysium/2026 are mutually exclusive: loading one unloads the other. The legacy tree (elysium/2024) is frozen and no longer updated by admins. The 2026 tree is built with gcc@13.4.0, which provides better optimization support for Elysium’s Zen 4 CPUs than gcc@11.

Known Issues

  • Intel MPI in elysium/2024 (legacy tree) is known to be unstable in this version. It can cause random MPI deadlocks where applications stop progressing while the Slurm job is still running.
  • In the current tree (elysium/2026), Intel MPI is stable and recommended.
  • MPICH versions before 5.0.0 are not suitable for multi-node runs. Use 5.0.0 or newer for multi-node jobs.
  • If you must use MPICH < 5.0.0, restrict jobs to single-node execution.

Common module commands

ml is a short alias for module.

  • ml av: list available modules in the current module path.
  • ml load <module>: load a module. Example: ml load openmpi/5.0.9.
  • ml list: show currently loaded modules.
  • ml unload <module>: unload a module. Example: ml unload openmpi/5.0.9.
  • ml purge: unload all currently loaded modules except sticky ones.
  • ml help <module>: show module help text. Example: ml help openmpi/5.0.9.
  • ml show <module>: print the contents of the modulefile.
  • ml whatis <module>: show a short module description.
  • ml spider <name>: search all known versions. Use ml spider -A <name> to also show hidden entries.
  • ml use <path>: add a directory to your module search path.
  • ml unuse <path>: remove a directory from your module search path.

Using your own modulefiles

You can keep your own modulefiles in a personal directory and add it with ml use.

mkdir -p "$HOME/modules/mytool"
cat > "$HOME/modules/mytool/1.0.lua" <<'LUA'
help([[MyTool 1.0]])
whatis("Name: MyTool")
whatis("Version: 1.0")
depends_on("openmpi/5.0.9")
prepend_path("PATH", "/path/to/mytool/bin")
LUA

ml use "$HOME/modules"
ml load mytool/1.0

In this example, loading mytool/1.0 also loads openmpi/5.0.9 as a dependency.

To make your personal modules always visible, add this to your ~/.bashrc:

ml use "$HOME/modules"

If you need additional software or module versions, please contact support.