Using modules on cyclone

From gfi
Jump to: navigation, search

Using modules on cyclone

This page documents how to use Modulefiles on the Abel (HPC for UiO) and Colossus (HPC for TSD) clusters. Same procedure applies on cyclone. For some specific documentation on available modules refer to Using cyclone.

To simplify setting up environments for compilers, MPI-versions and some installed applications, the clusters have the Environment Modules package installed. This provides means for dynamic modification of a user's environment via modulefiles.

Each modulefile contains the information needed to configure the shell for an environment. Typically, a modulefile modifies environment variables like PATH, MANPATH, LD_LIBRARY_PATH, CPATH and PKG_CONFIG_PATH to give access to an application or library.

Modulefiles can be used from most shells, as well as Perl and Python. Modulefiles can be loaded/unloaded on the command line or within your scripts by typing:

module load modulefile

module unload modulefile

(On Colossus, the module commands can only be used in job scripts.) You can also ask for a specific version of a modulefile:

module load modulefile/version

For the purpose of reproducability, we encourage users to load specific versions of modulefiles. Also, we recommend using

module purge

prior to any module load commands in job scripts, to prevent inheriting environment variables set by module commands in the shell used when submitting the job.

The available modulefiles can be listed by module avail. Example output:

$ module avail 
------------------------ /usr/share/Modules/modulefiles -------------------------
dot         module-cvs  module-info modules     null        use.own

--------------------------- /cluster/etc/modulefiles ----------------------------
454apps/2.8(default)             mcmcphase/2.0(default)
R/2.15.1(default)                microbiomeutil/20110519(default)
R/2.15.1.shlib                   migrate/3.3.2(default)
abyss/1.3.4(default)             mothur/1.26.0(default)
adf/2010.02b(default)            mrbayes/3.2.1(default)
adf/2012.01b                     muscle/3.8.31(default)
ampliconnoise/1.25(default)      ncl/2.1.18(default)
beagle/1.0(default)              newbler/2.8(default)
[...]

You can also specify a name:

$ module avail blast
--------------------------- /cluster/etc/modulefiles ----------------------------
blast/2.2.26(default)  blast+/2.2.26(default)

You will get a list of current loaded modulefiles by

$ module list
Currently Loaded Modulefiles:
 1) intel/2011.10   2) R/2.15.1

A help text exists for most of the modulefiles; to view it, type

module help modulefile

To view exactly what a modulefile is doing to your environment, type

module show modulefile

For further documentation, please refer to the Environment Modules homepage

Personalize default modulefiles

You may add loading of modulefiles to your .bash_profile file to make sure your favorite modulefile is always loaded when logging in. For instance, to always have the intel modulefile load on login, add:

module load intel

to the .bash_profile file.