All our systems have some commonly used HPC- and Linux-related software centrally installed for you, particularly compilers, multiple MPI installations and various programming languages (e.g. Python). Additionally, there are ways of installing software yourself.
On our systems, most software is available through environment modules. We use a software named LMod for this. To use software, you need to load the corresponding module.
To see what software is installed, run the
module avail command.
We use EasyBuild to install most of our software. On Bender and Marvin, the software is installed in
/software. See here for information regarding Bonna.
module list ... show the currently active modules
module avail ... list available software modules
module load <module> ... set up the enviroment to use the software
module spider ... shows more detailed information for all modules
module spider <partialmodulename> ... let's you search through all modules e.g.
module spider binu will show
binutils modules e.g.
module purge ... remove all modules, clear your shell environment
module help ... get help
Full LMod user guide: https://lmod.readthedocs.io/en/latest/010_user.html
Tip: If the
modulecommand is not available to you, your console might not be configured as a login shell. Try running
bash -lor configure your terminal to run as login shell.
Before you consider installing additional software, please check the full list of already installed software with
We decide on a case-by-case basis whether to install additional software centrally. This takes into account compatibility and maintenance overhead. Contact email@example.com if you want to suggest a software installation.
If you want to install software in your own home directory, you generally have three options:
Some package managers might throw error messages because they cannot write to the default install directory. In that case you might have to specify an install directory inside your home directory. Pip for example has the
--user option for this, see Pip documentation.
Please make sure that your software actually uses the cluster efficiently and does not waste resources. Particularly, if your software has GPU support, please make sure that it works properly. See notes on using GPUs and remember your responsibilities on the cluster.
The package manager Conda is available on all our systems. The first-time setup requires loading the
Anaconda3 module and performing a
conda init, Conda will modify your
.bashrcfile to add paths and other settings, bypassing the environment module system. This may lead to conflicts because the order of directories in the
PATHenvironment variable might be different than expected.
From that point on, you can use
conda commands to create environments and install packages as normal. They will be installed into your home directory, so keep an eye on your disk quota. The Conda user guide can be found here.
No matter what method you use, make sure you install the correct variant of your package. For example,
conda installon Bender will install non-GPU variants because Conda will detect that the login node does not have a GPU. Either select the correct variant manually or do the
conda installinside of an interactive job.
In the past, users have experienced problems which consisted of a complex interplay between the following factors:
There is no general solution to this problem. Remember that you can use
source ~ /.bashrc,
conda deactivate and
module unload in your script to manipulate the order of environment changes, as in the following example:
conda activate <environment>
EasyBuild is a build system that provides a lot of software for you to compile. We use EasyBuild for most of our centrally installed software. You can also use EasyBuild to install software into your home directory. To use EasyBuild on your own, you first need to load the module with
module load EasyBuild . The main command for EasyBuild is
On Bender, the
ebcommand is available even without loading a module. However that is an outdated version of EasyBuild and should not be used.
The official documentation is here and the options can be shown with
eb -H. You can search for available Easyconfigs (see the official documentation on easyconfig files) with the
-S option, for example if you are looking to install ScaLAPACK:
$ eb -S scalapack
This will give you a list (typically quite a long one) of available software. You can then simulate installing an Easyconfig by specifiying its name:
$ eb --robot -D ScaLAPACK-2.2.0-gompi-2022a-fb.eb
--robot option makes sure that all dependencies are also installed, and is very likely always necessary. The
-D option performs a dry run, i.e. simulates what operations would be performed.
To actually install it, run the same command without the
As with Conda above, make sure you install the correct variant of your software, especially if GPUs are involved. Remember that the Bender login node has no GPUs and build scripts might misdetect hardware. EasyBuild also has options to install Easyconfigs inside of SLURM jobs.
Tip: The Easyconfig names usually have the names of their main dependencies already in the name. You can and should check the available environment modules and pick a version where most dependencies are already installed.