Modules are a system for managing dynamic environmental variables. These are used to manage binary/library paths and environmental variables for most programs on Joule 3.0. The Modules system is used extensively in job submission scripts.
Listing Available Modules
To see a list of available modules, type the following at a command prompt:
login:~> module avail
Loading a Module
To take advantage of a module, you must first load it into your environment. To load a module or modules into your environment, use:
login:~> module load
This is followed by the name(s) of the module(s). It is important to note that the ORDER of modules being loaded matter. Some modules may have dependencies on other modules. If a dependency is forgotten, an error message will be displayed.
Listing Modules Being Used
To retrieve a list of modules currently being used in your environment, use:
login:~> module list
Removing a Module
To remove a module from your environment, use:
login:~> module remove
This will be followed by the name(s) of the module(s) to remove.
Removing All Modules
To remove all (purge) modules currently being used in your environment, use:
login:~> module purge
Module Example
To run the VASP program, you must load the appropriate VASP module and its dependencies. Type “module avail” to see a list of available VASP modules. To properly load the VASP module, the following module load line would be used:
login:~> module load vasp/6.4.2/standard
Differences from Joule 2.0
Joule 3.0 uses the lmod Modules system. All module related commands from 2.0 will work the same on 3.0. In contrast, lmod offers improvements such as tab completion for bash shell users. Also, most program modules now load their own dependencies. This will translate into shorter load lines. If a user attempts to load multiple modules of a specific program category, the previous module will be swapped with the most recent request. Finally, there are minor differences in naming conventions between similar modules on Joule 2.1 and 3.0.