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). There is also an array of scientific application software, especially from the fields physics, chemistry and machine learning, varying from system to system.
Additionally, there are ways of installing software yourself.
On this page, we explain how you can see the installed software and install your own.
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.
You're welcome to check out the section on environments in our Linux video tutorial.
We use EasyBuild to install most of our software. On Bender and Marvin, the software is installed in /software
and /opt/software
, respectively. See here for information regarding Bonna.
Since both Marvin and Bender have heterogeneous hardware, all software in our Easybuild-based central installation locations is installed twice. You can learn more about this setup and its implications on our page on dual stacks.
module list
... show the currently active modulesmodule avail
... list available software modulesmodule load <module>
... set up the enviroment to use the softwaremodule spider
... shows more detailed information for all modulesmodule spider <partialmodulename>
... lets you search through all modules, e.g. module spider binu
will show binutils
modulesmodule purge
... remove all modules, clear your shell environmentmodule help
... get helpFull LMod user guide: https://lmod.readthedocs.io/en/latest/010_user.html
Tip: If the
module
command is not available to you, your console might not be configured as a login shell. Try runningbash -l
or configure your terminal to run as login shell.
module avail
outputSince our systems have a large amount of environment modules, looking through the output of module avail
can become cumbersome. However, LMod offers features to help you with this.
These are only two tips, LMod can do a lot more than the basic functionality. For additional information, please refer to the official website here.
By default, LMod sorts capital letters before small ones. If you do not know the capitalization of your module, you might miss it, because you have to look in at least two places for your module.
You can use the environment variable LMOD_CASE_INDEPENDENT_SORTING
to control this behavior. By using the following in your .bash_profile
:
export LMOD_CASE_INDEPENDENT_SORTING=yes
all modules will be sorted strictly alphabetically.
Most software on our systems is installed in multiple versions, with one (usually the newest one) defined as the default. If you do not care about the exact version of your software, you can tell module avail
to only list the defaults by using the -d
option, i.e.:
module -d avail
If you try this, you can see that for each software, now only one module is listed and the list becomes much shorter.
Remember that you can use aliases in your .bash_profile
to define shortcuts for commonly used commands.
Before you consider installing additional software, please check the full list of already installed software with module avail
.
We decide on a case-by-case basis whether to install additional software centrally. This takes into account compatibility and maintenance overhead. Contact support@hpc.uni-bonn.de if you want to suggest a software installation.
If you want to install software in your own home directory, you generally have the following 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.
System-level package managers require root (administrator) rights and are therefore not an option on HPC systems.
If your software has installation instructions that involve RPM packages, yum
or dnf
, that is not possible. The same applies to instructions mentioning apt
or apt-get
. Not to mention that apt
is a tool for the Debian family (which includes Ubuntu), while our systems run on Linuxes from the Red Hat family (Rocky 8 for Bender and Alma 9 for Marvin), so it is impossible for two reasons.
In those cases, your alternatives are the methods described below. If none of this works, you can often build software from source. That is usually not trivial and depends highly on the software, but it can be a last resort.
As of March 2024, Anaconda and Miniconda cost money to use.
It is not allowed to use any packages from the main Anaconda channels, which are the default in both Anaconda and Miniconda. Use
conda-forge
channels instead. This also implies that you cannot use a self-installed Anaconda or Miniconda. See our Conda page, specifically our Anaconda to Miniforge migration guide.
While Anaconda and Miniconda are disallowed, the actual Conda package manager is available and can be used on all our systems. We recommend to use the centrally installed Miniforge as an alternative to Anaconda. See our Conda page for further information.
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 eb
.
On Bender, the
eb
command 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
The --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 -D
option.
As with Conda above, make sure you install the correct variant of your software, especially if GPUs are involved. Remember that the login nodes have 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.
Marvin has the software Apptainer installed. Apptainer is a system for running containers that is geared towards HPC use. Apptainer is a fork of Singularity, and Singularity and Apptainer containers can be used interchangeably. The Apptainer documentation is here.
You can download and run existing containers just like any executable program, please consult the Apptainer documentation on that. You cannot build containers on our systems because that requires root permissions, but you can build them on any Linux PC and then upload them to the cluster.
Docker is not and will not be available on any of our systems. However Docker containers can be converted to Apptainer containers, this is also described in the Apptainer documentation.