The Module System and What is Available

Goal: Introduce the LMOD Module System and the concept of dependencies.


What Have We Seen

Although on the login nodes we do have a gcc compiler and the Python language this only caters for a minority of users.

We can see that R is not available, nor most of the applications that researchers will require.

There are:

  • 10s of compilers and languages

  • 100s of applications and utilities.

  • 1000s of underlying libraries and commands.

We can not provide a system that provides everything all at once.

What we need is a method to enable users to find and select that they specifically need, and a method to allow them to configure and setup their sessions/environment to allow them to perform their analysis and research.


LMOD: An Environment Module System


What do we have available?

  • Compilers and eco systems: GNU family, Intel’s oneAPI, Nvidia’s hpc-sdk

  • Languages: C/C+, Fortran, Go, Java, Julia, Perl, Python, R, Ruby, Rust

  • Scientific libraries and toolkits: Built with a specific compiler: GNU by default

  • Standalone applications and utilities: Installed using:

    • Conda

    • Containers: running Singularity (not Docker)

      • We can create a Singularity image from a Docker image.

    • Binaries/Executables

Check the MedicineBow Software Page.


What is Available?


What’s available: Using the Module System

# Modules currently loaded. []$ module list Currently Loaded Modules: 1) slurm/latest (S) 2) arcc/1.0 (S)
# What's available within my 'current' environment. # With respect to what modules I 'currently' have loaded. []$ module avail ...

What’s available? Compiler tree

[]$ module purge []$ module load gcc/13.2.0 []$ ml Currently Loaded Modules: 1) slurm/latest (S) 3) gmp/6.2.1 5) mpc/1.3.1 7) zstd/1.5.5 2) arcc/1.0 (S) 4) mpfr/4.2.0 6) zlib-ng/2.1.4 8) gcc/13.2.0

Change Compiler


Purge Your Modules


Looking for Modules: module spider


Module load/spider: Dependencies


What Do You Notice?


What’s different between these command-lines?


What’s different between these command-lines? Dependencies


More module commands