Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt
nameSoftware Modules

Overview

Supercomputing software environments are highly domain dependent, and to prevent conflicts while balancing ease of use, the software that your research needs will likely need to be loaded into the environment as a software module.

Note

No software modules are loaded when you start a new session, so you must load software in every session.

Listing Available Modules

The following command will list all available software modules.

Code Block
languagebash
$ module avail

To search available modules with a keyword, i.e. “rust”:

Code Block
$ module avail rust

You can also see available modules from the web portal.

Sol: https://links.asu.edu/sol-modules

Phoenix: https://links.asu.edu/phx-modules

Info

Research Computing uses two methods to create modules, which is reflected in two naming schemes. Modules that are built manually follow the naming scheme software/version.number. Modules that are built with a program called Spack follow the naming scheme software-version.number-compiler-version.number. There is no difference between the methods otherwise.

Loading a module

To use software, you must first load the module into your shell environment using the module load command.

Code Block
languagebash
module load aspect/2.3.0 

In this example, Aspect software has been loaded and can be used as normal.

Tip: you can use “ml” as a shorthand for “module load”

Listing Loaded Modules

To see a list of modules that are currently loaded use the following command.

Code Block
languagebash
module list

Unloading modules by name

To unload only a single module use the following command.

Code Block
languagebash
module unload aspect/2.3.0

Unloading all loaded modules

To unload all modules that are currently loaded run the following.

Code Block
languagebash
module purge

Module purge is useful for starting over with a clean environment, like when incorporating modules into an sbatch job script.

Example

Code Block
languagebash
$ module avail aspect
------------------------------ /packages/modulefiles/apps ------------------------------
aspect/2.3.0  aspect/2.3.0-debug  aspect/2.4.0  aspect/2.4.0-debug  aspect/2.5.0-pre

----------------------------- /packages/modulefiles/spack ------------------------------
aspect-2.3.0-gcc-11.2.0
$ module load aspect/2.3.0
$ module list
Currently Loaded Modulefiles:
 1) dealii-9.3.3-gcc-11.2.0   2) openmpi-4.1.3-gcc-11.2.0   3) aspect/2.3.0
$ module purge
$ module list
No Modulefiles Currently Loaded.

Using Modules in SBATCH Job Scripts

Many sbatch scripts will include a module load command as part of the script.

Examples of this can be found here: Slurm - SBATCH Job Scripts

...