Introduction¶
There are two ways to access the software on the cluster
Environment Modules¶
Modules provide a way for a dynamic modification of a user's environment via modulefiles. They are very useful in managing large number of applictions, especially when there are multiple versions and dependencies present.
Each modulefile contains information needed to set up your environment for the
application In most cases will alter or define shell variables such as
PATH
, LD_LIBRARY_PATH
, etc.
Listing available software¶
To find out what software is available on the cluster use
module avail
This should produce something similar to
[k1234567@login3(rosalind) ~]$ module avail --- /opt/apps/etc/modules/prod --- apps/gaussian/09E/avx apps/gaussian/09E/sse4 apps/matlab/2019a *default* apps/namd/2.13/multicore apps/namd/2.13/multicore-cuda apps/openjdk/12.0.1 apps/orca/4.2.0 *default* apps/plumed/2.5.1/openmpi/4.0.1/python/3.7.3 apps/R/3.6.0 apps/xtb/6.1.4 *default*
Use spacebar
key to paginate through the list.
The *default*
tag next to the module names indicates the version
of the software that will be loaded if no explicit version has not been
provided during the module load, e.g. module load apps/matlab
.
Tip
To avoid surprises when the defaults change, we recommend using explicit version numbers when loading the modules.
In some cases the same version of the software might be offered with different
build options, for example 1.70.0-gcc7.3.0-python3.7.3
will refer to the
version 1.70.0
, built using gcc 7.3.0
with python 3.7.3
support.
Choose the version that is the most appropriate for your needs.
Loading modules¶
To set-up your environment for a specific software you need to load
the
relevant modulefile. The command should include the name of the application
and the desired version
module load apps/matlab/2019a
If an application has dependencies such as libraries, compilers, etc, those will be automatically loaded for you.
Tip
We recommend that you always include relevant module load
statements in
your job scripts.
You can check which modules are currently enabled within your environment with
module list
This should result in a output like:
[k1234567@login3(rosalind) ~]$ module list Currently Loaded Modulefiles: 1) services/s3cmd 2) null
Unloading modules¶
You can remove any modules loaded within the current session using module unload
or module rm
command
module unload apps/matlab/2019a
Tip
You do not need to explicitly unload modules when your job, or session terminates. The changes made by the module files are temporary and will only last for the duration of the job/session.
If you want to remove all of the currently loaded modules, use
module purge
Warning
Purging might remove the utility modules loaded as part of your shell set-up/login process.
Finding out more about specific module¶
You can find out more about a particular module by running module what-is
command:
[k1234567@login3(rosalind) ~]$ module whatis apps/matlab/2019a apps/matlab/2019a : loads the apps/matlab/2019a environment Name: matlab URL: https://www.mathworks.com/products/matlab.html Downloaded From: https://www.mathworks.com/products/matlab.html Install date: 25th June 2019 Modulefile: /opt/apps/etc/modules/prod/apps/matlab/2019a Install path: /opt/apps/apps/matlab/2019a Matlab is a programming platform designed specifically for engineers and scientists. The heart of Matlab is the Matlab language, a matrix-based language allowing the most natural expression of computational mathematics.
Development environment¶
We provide dedicated area for modules designated for testing or experimental
workloads. Those modules are not available by default and have to be enabled
explicitly by loading the use.dev
module:
module load utilities/use.dev
After the dev environment has been enabled, a new section will appear
with the software that can be activated via the normal module load
process:
[k1234567@login3(rosalind) ~]$ module load utilities/use.dev [k1234567@login3(rosalind) ~]$ module avail --- /opt/apps/etc/modules/dev --- apps/samtools/1.9.0-singularity *default* --- /opt/apps/etc/modules/prod --- apps/gaussian/09E/avx apps/gaussian/09E/sse4 apps/matlab/2019a *default* apps/namd/2.13/multicore apps/namd/2.13/multicore-cuda apps/openjdk/12.0.1 apps/orca/4.2.0 *default* apps/plumed/2.5.1/openmpi/4.0.1/python/3.7.3 apps/R/3.6.0 apps/xtb/6.1.4 *default* [k1234567@login3(rosalind) ~]$ module load apps/samtools/1.9.0-singularity
Warning
The modules contained within the dev section are for testing purposes and in general should not be used for production workloads.
Personal modules¶
In some circumstances, especially if you building your own software,
you might benefit from your own environment that integrates with
the modules ecosystem. You can enable it through the use of
use.own
module:
module load use.own
After it has been enabled, a new section will be appended to the list of module locations:
[k1234567@login3(rosalind) ~]$ module load use.own [k1234567@login3(rosalind) ~]$ module avail --- /opt/apps/etc/modules/prod --- apps/gaussian/09E/avx apps/gaussian/09E/sse4 apps/matlab/2019a *default* apps/namd/2.13/multicore apps/namd/2.13/multicore-cuda apps/openjdk/12.0.1 apps/orca/4.2.0 *default* apps/plumed/2.5.1/openmpi/4.0.1/python/3.7.3 apps/R/3.6.0 apps/xtb/6.1.4 *default* --- /users/k1234567/privatemodules --- bar/1.0 *default*
Any module files placed in the $HOME/privatemodules
directory will be available
for loading via the module load
call.
Info
Private modules enabled via this environment will only be accessible to your account.