Modules on M3
M3 uses environment modules to manage most software. Each version of each software will have its own module, prepared by the M3 admins. Users simply need to load a module to start using it!
Some modules require the user to explicitly request access before using them. See Licensed software.
Listing available modules
Use module avail
to see all available modules on M3.
$ module avail
------------------------------------ /apps/modulefiles ------------------------------------
3dslicer/5.6.2 hmmer/3.4 tractseg/2022-10-28
afni/24.1.22 hpcx/2.14-redhat9.2 trekker/1.0-beta
alphafold/3.0.0 hpcx/latest trinity/2.15.2
amber/24 htslib/1.19.1 underworld/2.12.2b
amber/24-multi-gpu intel-compiler/2024.02 unicycler/0.5.0
... and many more modules ...
--------------------------------- /apps/spack/modulefiles ---------------------------------
hpl/2.3-gcc-11.3.1-npardb4 hpl/2.3-npardb4 hpl/2.3-snqgjtt
----------------------------- /usr/local/Modules/modulefiles ------------------------------
3daprecon/0.0.1
3daprecon/1.0
3depict/0.0.15
3dslicer/4.6.0
3dslicer/4.8.1
3dslicer/4.10.2
3dslicer/5.6.0
7zip/23.01
... and many more modules ...
You may notice our modules are found in a few different locations. Generally, /apps/modulefiles/
modules are the most up-to-date and likely to work on the current M3. /usr/local/
modules were installed on our old operating system (CentOS 7) and are now deprecated.
Use module avail tra
to see all modules whose name starts with tra
:
[lexg@m3-login3 ~]$ module avail tra
------------------------------------ /apps/modulefiles ------------------------------------
tractseg/2022-10-28
----------------------------- /usr/local/Modules/modulefiles ------------------------------
tracer/1.6 trackvis/0.6.1 tractseg/2.0 tractseg/2.3 transdecoder/5.5.0
Key:
modulepath default-version
Use module avail amber/
to see all versions of the amber
module only:
[lexg@m3-login3 ~]$ module avail amber/
------------------------------------ /apps/modulefiles ------------------------------------
amber/24 amber/24-multi-gpu amber/24-parallel amber/24-single-gpu
----------------------------- /usr/local/Modules/modulefiles ------------------------------
amber/18-multi-gpus amber/18-parallel-pmemd.gem amber/18-single-gpu
amber/18-parallel amber/18-serial
Key:
modulepath default-version
Loading a module
To actually use a module, simply module load
it, and you should gain access to that module's commands.
[lexg@m3-login3 ~]$ module load amber/24
[lexg@m3-login3 ~]$ sander --version
sander: Version 24.0
In the above example, I specified version 24
of the amber
module. If you don't specify the version, you get the default version of that module:
[lexg@m3-login3 ~]$ module load amber
Loading amber/24-single-gpu
Loading requirement: cuda/11.7
Note the default amber
version is 24-single-gpu
, not 24
.
For reproducibility, we recommend you always specify the version of the module in your scripts.
List your currently loaded modules
[lexg@m3-login3 ~]$ module list
Currently Loaded Modulefiles:
1) cuda/11.7 2) amber/24-single-gpu
Key:
default-version auto-loaded
Unload a module
Use module unload
. Note this will automatically unload dependent modules that are no longer needed.
[lexg@m3-login3 ~]$ module unload amber/24-single-gpu
Unloading amber/24-single-gpu
Unloading useless requirement: cuda/11.7
Unload all modules
To completely clear your environment, unload all loaded modules with module purge
:
[lexg@m3-login3 ~]$ module list
Currently Loaded Modulefiles:
1) amber/24 2) blast/2.2.9 3) hmmer/3.4
Key:
default-version
[lexg@m3-login3 ~]$ module purge
[lexg@m3-login3 ~]$ module list
No Modulefiles Currently Loaded.
Seeing what a module does
To see what loading a module will do without actually loading it, use module show
. To see what the default version of amber
does, use module show amber
:
[lexg@m3-login3 ~]$ module show amber
-------------------------------------------------------------------
/apps/modulefiles/amber/24-single-gpu:
conflict amber
module-whatis {Amber is a suite of biomolecular simulation programs. See https://ambermd.org/index.php (v24-single-gpu)}
module load cuda/11.7
prepend-path PATH /apps/amber/24-single-gpu/bin
prepend-path LD_LIBRARY_PATH /apps/amber/24-single-gpu/lib
prepend-path PERL5LIB /apps/amber/24-single-gpu/lib/perl
prepend-path PYTHONPATH /apps/amber/24-single-gpu/lib/python3.12/site-packages
setenv AMBERHOME /apps/amber/24-single-gpu
setenv QUICK_BASIS /apps/amber/24-single-gpu/AmberTools/src/quick/basis
-------------------------------------------------------------------
To see what a specific version of amber
does, use module show amber/<VERSION>
:
[lexg@m3-login3 ~]$ module show amber/24-multi-gpu
-------------------------------------------------------------------
/apps/modulefiles/amber/24-multi-gpu:
conflict amber
module-whatis {Amber is a suite of biomolecular simulation programs. See https://ambermd.org/index.php (v24-multi-gpu)}
module load hpcx/latest
module load cuda/11.7
prepend-path PATH /apps/amber/24-multi-gpu/bin
prepend-path LD_LIBRARY_PATH /apps/amber/24-multi-gpu/lib
prepend-path PERL5LIB /apps/amber/24-multi-gpu/lib/perl
prepend-path PYTHONPATH /apps/amber/24-multi-gpu/lib/python3.12/site-packages
setenv AMBERHOME /apps/amber/24-multi-gpu
setenv QUICK_BASIS /apps/amber/24-multi-gpu/AmberTools/src/quick/basis
-------------------------------------------------------------------
Explanation of module show
output
Read the official environment modules docs to fully understand all the different things that module show
can output. Generally, you'll see:
Example output | Meaning |
---|---|
module-whatis {Amber... | Brief summary of this software. |
module load hpcx/latest | If you load this module, then it will automatically load the hpcx/latest module as a dependency. |
prepend-path PATH /apps/amber/24-multi-gpu/bin | Adds this amber installation's bin/ directory to your PATH variable, allowing you to call all executables in this directory. |
setenv AMBERHOME /apps/amber/24-multi-gpu | Sets the AMBERHOME environment variable. Sometimes these environment variables are mandated in the software's documentation, but sometimes we admins make our own to e.g. help you locate key directories for this module. |
conflict amber | Means you cannot load any other amber module at the same time as this one. Prevents weird conflicts between modules that use the same executables or libraries. |
Licensed software
Some software in module avail
is not actually usable straight away. If you module load
something, but then when you try to run the programs you see Permission denied
or Command not found
errors, that software is likely restricted due to licensing.
Let's use alphafold
as an example.
First, navigate to the Karaage software page. Then find your desired software. Luckily, alphafold
is right at the top of our list of Karaage software. You may need to scroll down and use the Next
and Previous
buttons to see other software.
Click on the name of the software to view its page.
In the "Software details" section, you should see the following:
Field | Meaning |
---|---|
Category | Broad category that this software belongs to. Doesn't really matter. |
Description | Brief summary of what this software is. Very important to read, because this may include details about who owns the license and whether you can even access this software. |
Homepage | Optional, link to homepage of the software. |
Tutorial | Optional, link to a tutorial for the software. |
Group | The Linux group that this Karaage software corresponds to. This is how we manage access to the software's files on M3. You will be added to this group if you are approved access to this software. |
Restricted | If "No", this means you can access this software without admin approval. If "Yes", you must wait to be approved access by an admin. |
Read all of the fields to familiarise yourself with the software. Then scroll down to read the license/terms of use of this software.
If you agree to the license/terms of use, click I accept
.
If the software says it is "Restricted" in Karaage, please wait up to 2 weeks for an admin to review your request and approve/reject it. You will be notified by email once a decision has been made. If the software is not "Restricted", then you will be automatically added to the software group.
Once you have been approved for software in Karaage, it still takes a little time for that change to propagate to our backend systems. This typically only takes a few minutes.
The change only applies to new shell/desktop sessions in M3. Any existing sessions from before you were approved to use this software will not be able to access the software.
To verify if the approval has worked, connect to a new shell/terminal session, and type groups
to list all of the Linux groups you belong to on M3. You should see a group name corresponding to the "Group:" in the Karaage software page.
Advanced module usage
Feel free to read the official environment modules docs if you want to see advanced flags for playing with modules, or even to try setting up your own modules. Remember that the version of environment-modules
on M3 lags behind the latest version.