Texas A&M Supercomputing Facility Texas A&M University Texas A&M Supercomputing Facility

Application Environment

Introduction

TAMU SC has implemented the modules approach to managing the user environment for most commercial software installed on our systems. In UNIX operating systems, users are often required to define certain parameters that affect the computing environment and the operation of programs executed within that environment: this is usually referred to as "setting environment variables". Environment variables are most commonly used to inform the system of the location (in the filesystem) of executable programs, related documentation, or configuration files. The distinct advantage of the modules approach is that the users are no longer burdend with configuring their "environment" so that the relevant software will function as expected. That process is automated by scripts (called modulefiles) written by the staff and used by the modules package. With the modules approach, users simply "load" and "unload" modules to control the environment.

Modules provides an easy mechanism for updating a user's environment, especially the PATH, MANPATH, NLSPATH, and LD_LIBRARY_PATH environment variables to name a few.

When you get an account on hydra, your "dot-files" (files that initialize your environment as you login to the machine) should be set up correctly to use modules. If you delete or modify these files in such a way as to make modules fail, contact the SC Helpdesk for help.

You can modify your environment so that certain modules are loaded whenever you log in. To see which modules are loaded by default for you, do the following:

% module initlist

If you want to add other modules to this list of automatically loaded modules, do the following:

% module initadd modulename

where modulename is the name of the module you want loaded. Likewise, to remove a module from this default list, do the following:

% module initrm modulename

Module Commands

To get a usage list of module options type the following (the listing has been abbreviated to only those commands discussed in this webpage):

% module help

  Available Commands and Usage:

        +  add|load     modulefile [modulefile ...]
        +  rm|unload    modulefile [modulefile ...]
        +  switch|swap  modulefile1 modulefile2
        +  display|show modulefile [modulefile ...]
        +  avail        path [path]
        +  list
        +  help         modulefile [modulefile ...]
module list
This lists all the modules which are currently loaded into the users environment.
module avail
This option lists all the modules which are available to be loaded. Notice that many of them have version numbers associated with them. Modules makes it easy to switch compiler application versions. The module name without a version number is the production default.
module help modulefile
If a module looks interesting, to get more information use this command to display the `help' information contained within the given module file.
hydra# module help fluent

----------- Module Specific Help for 'fluent' ---------------------

Sets up environment for Fluent and Gambit
module display modulefile
Use this command to see exactly what a given modulefile will do to your environment, such as what will be added to the PATH, MANPATH, etc. environment variables.
module load modulefile
This adds one or more modulefiles to the user's current environment. It does so silently, unless there is a problem with a modulefile. If there is problem, please notify the SC Helpdesk. If you load the generic name of a module, you will get the default version. To load a specific version, load the module using its full specification, e.g.:
% module load fluent
module unload modulefile
This removes the specified modules from the user's current environment. The modules can be removed in any order.
% module unload fluent
module switch modulefile_old modulefile_new
This command demonstrates the true advantages of modules. Different versions of entire software packages can be replaced with a single module command.

Additional Information on Modules

The full list of switches and subcommands for the module command can be viewed with the following command:

% module help
Other information on modules can be found by reading the module man page on our systems (man module).