Modules and Available Third Party Software

From HPCC Wiki
Jump to navigation Jump to search

Jobs Environment Management

Modules

“Modules” makes it easier for users to run a standard or customized application and/or system environment. HPCC uses Lmod - an advanced module system that easily handles the MODULEPATH hierarchical problem common in UNIX based "modules" implementation. Application packages can be loaded and unloaded cleanly through the module system using modulefiles. This includes easily adding or removing directories to the PATH environment variable. Modulefiles for Library packages provide environment variables that specify where the library and header files can be found.

All the popular shells are supported: bash, ksh, csh, tcsh, zsh. LMOD is also available for perl and python. Modules is available on KARLE, PENZIAS, APPEL and SALK.

Modules - getting started

The basic module commands are listed below. Note that almost all applications have default version and several other versions. The default version is marked with (D). For example:

python/2.7.13_anaconda       (D)

The default version can be loaded via its short name: . Non default version(s) require use of their full name. For example:

module load python

will load the default 2.7.13_anaconda version of python interpreter.To load non-default 3.7.6 the user must type

module load python/3.7.6_anaconda 

The module load command can be used to load several application environments at once:

module load package1 package2 ...

For documentation on “Modules”:

man module

For help enter:

module help

To see a list of currently loaded “Modules” run:

module list

To see a complete list of all modules available on the system run:

module avail

To show content of a module enter:

module show <module_name> 

To change from one application to another ( example. default versions of gnu and intel compiler):

module swap gcc intel

To go back to an initial set of modules:

module reset

Using LMOD commands

To get a list of all modules available

module spider

To get information about a specific module

module spider python

Modules for the advanced user

A “Modules” example for advanced users who need to change their environment.

The HPC Center supports a number of different compilers, libraries, and utilities. In addition, at any given time different versions of the software may be installed. “Modules” is employed to define a default environment, which generally satisfies the needs of most users and eliminates the need for the user to create the environment. From time to time, a user may have a specific requirement that differs from the default environment.

In this example, the user wishes to use a version of the NETCDF library on the HPC Center’s Cray Xe6 (SALK) that is compiled with the Portland Group, Inc. (PGI) compiler instead of the installed default version, which was compiled with the Cray compiler. The approach to do this is:

• Run module list to see what modules are loaded by default.
• Determine what modules should be unloaded.
• Determine what modules should be loaded.
• Add the needed modules, i.e., module load

Useful Modules Commands

Modules summary.png