How to use or install software
On HPC systems you generally cannot use sudo
or install software system-wide. Instead, software is provided via environment modules and can be extended using EasyBuild1.
Using Environment Modules
Environment Modules provide a convenient way to dynamically change the users’ environment through modulefiles. With this module system, different versions of software, like compilers or special math libraries, are easily accessable and usable. Different modules are available, varying from GCC or Intel Compilers, Python versions and software compiled from source and ready to use. Environment modules can activate commercial software and thier licenses.
The most common used module commands are:
Command | Description | Alias |
---|---|---|
module avail | Lists available (loadable) modules | ml av |
module list | Lists loaded modules | ml |
module load MOD/X | Loads module MOD/X (and dependencies) | ml MOD/X |
module switch MOD/Y | Switch to version Y of MOD (and deps) | ml sw MOD/Y |
module purge | unload all modules | ml purge |
Modules are case insensitive
The command module avail
finds and lists modules case insensitive but module load
is case sensitive.
Usage Example (Python)
module avail
$ module avail
...
Cantera/2.6.0-foss-2022a PycURL/7.45.2-GCCcore-12.3.0 libepoxy/1.5.10-GCCcore-11.3.0
Cantera/3.0.0-foss-2023a (D) Python-bundle-PyPI/2023.06-GCCcore-12.3.0 libepoxy/1.5.10-GCCcore-12.3.0
CasADI/3.6.7-gfbf-2023a Python-bundle-PyPI/2024.06-GCCcore-13.3.0 libepoxy/1.5.10-GCCcore-13.3.0 (D)
CasADI/3.6.7-linux64-matlab Python-bundle-PyPI/2025.04-GCCcore-14.2.0 (D) libevent/2.1.12-GCCcore-11.3.0
CasADI/3.7.0-gfbf-2023a Python/2.7.18-GCCcore-11.3.0-bare libevent/2.1.12-GCCcore-12.3.0
CasADI/3.7.0-gfbf-2024a Python/3.8.20-GCCcore-11.3.0 libevent/2.1.12-GCCcore-13.3.0
CasADI/3.7.0-linux64-matlab (D) Python/3.10.4-GCCcore-11.3.0-bare libevent/2.1.12-GCCcore-14.2.0 (D)
CasADi/3.7.2-foss-2024a Python/3.10.4-GCCcore-11.3.0 libfabric/1.15.1-GCCcore-11.3.0
CasADi/3.7.2-linux64-matlab (D) Python/3.10.13-GCCcore-11.3.0 libfabric/1.18.0-GCCcore-12.3.0
Catch2/2.13.9-GCCcore-12.3.0 Python/3.11.3-GCCcore-12.3.0 libfabric/1.21.0-GCCcore-13.3.0
Catch2/2.13.10-GCCcore-13.3.0 Python/3.12.3-GCCcore-13.3.0 libfabric/2.0.0-GCCcore-14.2.0 (D)
Catch2/2.13.10-GCCcore-14.2.0 (D) Python/3.13.1-GCCcore-14.2.0 (D) libfdf/0.5.1-GCC-13.3.0
Cbc/2.10.12-foss-2024a QCG-PilotJob/0.13.1-foss-2022a libffi/3.4.2-GCCcore-11.3.0
...
module spider Python
$ ml spider Python
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Python:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Description:
Python is a programming language that lets you work more quickly and integrate your systems more effectively.
Versions:
Python/2.7.15-foss-2018b
Python/2.7.15-GCCcore-7.3.0-bare
Python/2.7.16-GCCcore-8.3.0
Python/2.7.18-GCCcore-9.3.0
Python/2.7.18-GCCcore-10.3.0-bare
Python/2.7.18-GCCcore-11.3.0-bare
Python/3.7.4-GCCcore-8.3.0
Python/3.8.2-GCCcore-9.3.0
Python/3.8.20-GCCcore-11.3.0
Python/3.9.5-GCCcore-10.3.0-bare
Python/3.9.5-GCCcore-10.3.0
Python/3.10.4-GCCcore-11.3.0-bare
Python/3.10.4-GCCcore-11.3.0
Python/3.10.13-GCCcore-11.3.0
Python/3.11.3-GCCcore-12.3.0
Python/3.12.3-GCCcore-13.3.0
Python/3.13.1-GCCcore-14.2.0
Other possible modules matches:
Biopython Boost.Python GitPython IPython Python-bundle-PyPI flatbuffers-python meson-python protobuf-python spglib-python
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
To find other possible module matches execute:
$ module -r spider '.*Python.*'
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For detailed information about a specific "Python" 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 Python/3.13.1-GCCcore-14.2.0
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
module load Python/3.11.3-GCCcore-12.3.0
$ module load Python/3.11.3-GCCcore-12.3.0
$ module list
Currently Loaded Modules:
1) GCCcore/12.3.0 5) ncurses/6.4-GCCcore-12.3.0 9) XZ/5.4.2-GCCcore-12.3.0
2) zlib/1.2.13-GCCcore-12.3.0 6) libreadline/8.2-GCCcore-12.3.0 10) libffi/3.4.4-GCCcore-12.3.0
3) binutils/2.40-GCCcore-12.3.0 7) Tcl/8.6.13-GCCcore-12.3.0 11) OpenSSL/1.1
4) bzip2/1.0.8-GCCcore-12.3.0 8) SQLite/3.42.0-GCCcore-12.3.0 12) Python/3.11.3-GCCcore-12.3.0
$ python --version
Python 3.11.3
module purge
$ module purge
$ module list
No modules loaded
$ python --version
-bash: python: command not found
If you recurrently need lots of modules, this loading can be automated with a (ba)sh-file, so that you just have to execute the file once and it loads all modules, you need. Be aware the loading modules by default (via a (ba)sh-file) can result in conflics when loading modules from the command-line or in a Job-script.
We've a full overview of all available (and supported) modules.
-
The documentation regarding EasyBuild is currently missing and will be added soon. ↩