Softwares¶
Environment modules¶
Most of the softwares that we offer are available through the Environment Modules Lmod system, allowing users to list available software and dynamically load it into their session. If your software is not availble in modules, several compilers are available in modules for building softwares. Many languages also have systems in place for user local installations. If it's a common software, we can do a system installation.
We use EasyBuild to build/install all software systematically. If you find easyconfigs for your softwares are already availble but not on our cluster, you can send a software installation request.
You can also use libraries, build tools, and compilers from the module system to build your own software.
Using software in modules¶
The module command¶
The module command (or the ml shortcut) allows you to manage available software:
To search for a module names:¶
To search for keywords in a module (such as extensions in bundles):¶
To view available software possible to load directly:¶
To see what modules are loaded at the moment use:¶
To load/unload a module:¶
module load <modulename>
module unload <modulename>
module purge # Unloads all currently loaded modules`
ml <modulename>
ml unload <modulename>
ml purge
If you do not load a specific software version, the system will use the most recent available version.
Viewing Module Details:¶
To see what a module does, use
Example: loading modules for the right Python packages¶
Loading modules is simple:
- You find the module and version using
module availor search for it usingmodule spider. - You load the module directly and/or the module toolchain to access to the module.
Example:
In this example we will load scipy.
$ module spider scipy
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scipy:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Versions:
scipy/1.11.1 (E)
scipy/1.11.4 (E)
scipy/1.13.1 (E)
scipy/1.16.0 (E)
scipy/1.16.1 (E)
Other possible modules matches:
SciPy-bundle
Names marked by a trailing (E) are extensions provided by another module.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
To find other possible module matches execute:
$ module -r spider '.*scipy.*'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For detailed information about a specific "scipy" package (including how to load the modules) use the module's full name.
Note that names that have a trailing (E) are extensions provided by other modules.
For example:
$ module spider scipy/1.16.1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
At this time there are multiple versions of scipy available. We are interested in the latest version.
$ module spider scipy/1.16.1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scipy: scipy/1.16.1 (E)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This extension is provided by the following modules. To access the extension you must load one of the following modules. Note that any module names in parentheses show the modul
e location in the software hierarchy.
SciPy-bundle/2025.07-gfbf-2025b
Names marked by a trailing (E) are extensions provided by another module.
scipy/1.16.1 can be provided by SciPy-bundle/2025.07-gfbf-2025b module.
We finish with listing all our loaded modules:
$ module list
Currently Loaded Modules:
1) GCCcore/14.3.0 9) bzip2/1.0.8-GCCcore-14.3.0 17) Python/3.13.5-GCCcore-14.3.0
2) zlib/1.3.1-GCCcore-14.3.0 10) ncurses/6.5-GCCcore-14.3.0 18) cffi/1.17.1-GCCcore-14.3.0
3) binutils/2.44-GCCcore-14.3.0 11) libreadline/8.2-GCCcore-14.3.0 19) cryptography/45.0.5-GCCcore-14.3.0
4) GCC/14.3.0 12) Tcl/9.0.1-GCCcore-14.3.0 20) virtualenv/20.32.0-GCCcore-14.3.0
5) AOCL-BLAS/5.1-GCC-14.3.0 13) SQLite/3.50.1-GCCcore-14.3.0 21) Python-bundle-PyPI/2025.07-GCCcore-14.3.0
6) FlexiBLAS/3.4.5-GCC-14.3.0 14) XZ/5.8.1-GCCcore-14.3.0 22) SciPy-bundle/2025.07-gfbf-2025b
7) FFTW/3.3.10-GCC-14.3.0 15) libffi/3.5.1-GCCcore-14.3.0
8) gfbf/2025b 16) OpenSSL/3
That was a lot of modules needed! Luckily the module system handled all dependencies for us.
Toolchains¶
A toolchain is a set of modules that makes up the necessary components to build most software.
Most commercial (closed source) tools, do not require a toolchain, e.g. Mathematica, MATLAB. These can be loaded directly;
other software is build for a particular toolchain, predominatly foss (GCC,
OpenMPI, OpenBLAS), and intel.
graph TD
GCCcore --> GCC & intel-compilers & NVHPC
GCC --> gompi & gfbf --> foss
intel-compilers --> iimpi & iimkl --> intel
NVHPC --> nvompi --> nvofbf
Note: You can see the CUDA version in as a version suffix, indicating GPU support (but remember to look at the job statistics to verify that you are actually using the GPUs).
Finding compatible software¶
You can't mix toolchains; something built with e.g. foss-2024a can not be
combined with anything built for foss-2023b. Loading most modules will load
many additional modules which it depends on, and trying to swap them out will
not be compatible. If you need a library updated for a newer toolchain you can
request it by contacting the support.
The module command will complain if you accidentally try to load incompatible modules.
module load matplotlib/3.10.5-gfbf-2025b
module load CMake/3.27.6-GCCcore-13.2.0 # This will fail; it uses a different compiler version
To find which compiler you have currently loaded (via
matplotlib/3.10.5-gfbf-2025b here) you can list them
Where you will see it was GCCcore-14.3.0. You can also refer to the table below.
If incorrect modules are loaded, reset with:
Recent toolchains¶
Key software in recent toolchains (each row is a separate toolchain):
| Release | GCC | OpenMPI | Intel | CUDA | Python |
|---|---|---|---|---|---|
| 2023a | 12.3.0 | 4.1.5 | 2023.1.0 | 12.1.1 | 3.11.3 |
| 2023b | 13.2.0 | 4.1.6 | 2023.2.1 | 12.4.0 | 3.11.5 |
| 2024a | 13.3.0 | 5.0.3 | 2024.2.0 | 12.6.0 | 3.12.3 |
| 2025a | 14.2.0 | 5.0.7 | 2025.1.1 | 12.8.0 | 3.13.1 |
| 2025b | 14.3.0 | 5.0.8 | 2025.2.0 | 12.9.1 | 3.13.5 |
| 2026.1 | 15.2.0 | 5.0.10 | 2025.3.3 | 13.3.0 | 3.14.2 |
Licenses¶
Important
C3SE does not purchase any licensed software for users. We also do not operate any license servers.
Some modules which we provide are pre-configured to point to the license servers hosted by Chalmers IT administration by default. Please contact Chalmers IT support at support@chalmers.se in case of any issues with the license servers themselves.
Software packages can almost always be pointed to use a different license server by the user. Refer to the manual for the specific software if you need this.
FlexLM license information¶
The very common FlexLM license server allows you to check for the number of available licenses to a software package and its many components.
Use the command line tool lmutil to collect statistics about the current
license usage, e.g. checking usage for ANSYS: