Versions Compared

Key

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

Environment modules are used on HPC to allow multiple versions of any given piece of software to sit on the same OS, giving you the ability to choose a version of software.

HPC cluster nodes have some convenient aliases configured (26-Jun-2017):

...

  When viewed from an individual user point of view this may seem complex, however it is necessary in a multi-user environment.

Note:  It is possible to have two or more versions of the same module loaded, but this cause problems and should be avoided.  The reason for this is often that a major version change in software can result in significantly different syntax, so software developers maintain multiple, independent streams of their software.  All aliases defined above can be considered examples of this.

A Brief Introduction to using environment modules

...

Listing available software and versions

No Format
module avail

 

...

Information about a piece of software (example)

No Format
module help grass

Listing environment modules you have loaded

...

.

No Format
module list

 

...

Loading a specific software version (example)

No Format
module load gcc/6

Loading the default version of a piece of software (example)

No Format
module load java

 NOTE:  The default software version will generally be the safest (e.g., version distributed by RedHat).

An example of a command to switch to another version of the same software is:

No Format
module loadswitch java/1.86.0-oracle

 

If you want to change the version of software you wish to use, the module switch command can be used.  For example, lets say that you have already loaded python/2.7.13 and want to switch to python/3.6.1.  This can be done with:

No Format
module switch python/3.6.1

 

To unload a module, use the module unload command.  For example:

No Format
module unload java/1.8.0-oracle

will backout changes made to your environment from a previous module load java/1.8.0-oracle command.  To  unload (purge) all modules you have loaded, use the command:

No Format
module purgeopenjdk

Unloading a module (example)

No Format
module unload java

In some cases, you may want/need to add the version.

Unloading all modules

There will be occasions where is easier to make a fresh start, in which case you simply run the command

No Format
module purge


Information specific to JCU HPC configuration

Most module files, when loaded, will set an environment variable <SOFTWARE>_HOME which holds the installation home for the software.  For example, try

No Format
module load vcftools
echo $VCFTOOLS_HOME
ls -lR $VCFTOOLS_HOME

The most common environment variable modified by the loading of an environment variable is PATH.

Other commonly modified environment variables are: MANPATHLD_LIBRARY_PATHCLFAGSCXXFLAGS, and LDFLAGS.


Environment modules are not usually created for Python extensions.  Loading a specific python version will usually enable use of all extensions.  Note that some extensions may not be available for all versions of python.

Software that includes perl extensions will usually modify the PERLLIB and/or PERL5LIB environment variables.

For Java based software, there will often be an alias set the simplifies things for users.  For example a

No Format
module load picard

will create a picard alias that expands to java -jar $PICARD_HOME/picard.jar