Module Software

The Module package provides for the dynamic modification of a users's environment via module files. Module can be used:

  • to manage necessary changes to the environment, such as changing the default path or defining environment variables
  • to manage multiple versions of applications, tools and libraries
  • to manage software where name conflicts with other software would cause problems

Interactive use

Module is available automatically for interactive use. However, if you are using modules, you should not switch your shell from your login shell during your interactive session.

Batch use

To use module commands in a batch job, add this command to your script:

On Pople or Salk:
source /usr/share/modules/init/shell-name
On Warhol
source /usr/share/Modules/init/shell-name 
(note the capital M in Modules in the path)
On Bigben
source /opt/modules/default/init/shell-name

On all machines, shell-name is the shell you are using, e.g., csh, tcsh, bash, sh or ksh.

Module commands

Some useful module commands are:

module avail lists all the available modules
module help foo displays help on module foo
module display foo indicates what changes would be made to the environment by loading module foo without actually loading it
module load foo loads module foo
module list displays your currently loaded modules
module swap foo1 foo2 switches loaded module foo1 with module foo2
module unload foo reverses all changes to the environment made by previously loading module foo

Creating module files

Many software packages have associated modules already defined for you (type module avail for a list), but you can create your own. For more information on module and how to create a modulefile, see the man pages for module and modulefile.

Examples

The module load command loads a specific module. For example, the command

module load icc/10.1.015

sets the proper definitions for you to use version 10.1.015 of the icc compiler. When you are done with a module you can unload it and undo its effect.

module unload icc/10.1.015

Or you can swap it with another module if you want to use a different version of the same software.

module swap icc/10.1.015 icc/10.1.017

After you issue this command, when you run the icc compiler you will be using version 10.1.017 of the compiler, not version 10.1.015.

More information

For more information on the module command see the module and modulefile man pages. Additional information is also available at http://modules.sourceforge.net