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, modules located in /apps/modulefiles/ are the most up-to-date and likely to work on the current M3. The modules located in /usr/local/ 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:
[user@m3-login1 ~]$ 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:
[user@m3-login1 ~]$ 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.
[user@m3-login1 ~]$ module load amber/24
[user@m3-login1 ~]$ 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:
[user@m3-login1 ~]$ 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
[user@m3-login1 ~]$ 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.
[user@m3-login1 ~]$ 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:
[user@m3-login1 ~]$ module list
Currently Loaded Modulefiles:
1) amber/24 2) blast/2.2.9 3) hmmer/3.4
Key:
default-version
[user@m3-login1 ~]$ module purge
[user@m3-login1 ~]$ 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:
[user@m3-login1 ~]$ 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>:
[user@m3-login1 ~]$ 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.
Licensed software for M3 is now managed via the eResearch Resource Allocation System
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 Name:" in the eResearch Resource Allocation System 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.