Software
software library

Modules Utility

Modules provides a way of modifying ones environment to access software installed in separate locations. It is similar to the use command but provides a number of additional features. The most notable being you can add AND remove modules at will. Modules will also tell you if any software packages conflict with one another. The best source of documentation of modules is it’s man page. To view it, run “man module” on saguaro. Here are some usage examples:

Listing Modules
Listing Modules
$ module avail
--------------- /packages/Modules/modulefiles ---------------
abaqus/6.7-1                     md5deep/3.4
amber/10                         meep/1.1.1
amd_open64/4.2.4                 meep/1.1.1-mpi
ansysfluent/12.1                 mpb/1.4.2
ansysworkbench/12.1              mpb/1.4.2-mpi
ant/1.8.1                        mpiblast/1.5.0
arpack/96                        mrbayes/3.1.2
bedtools/2.9.0                   mummer/3.20
...
To get output similar to use -l run module whatis the -i argument will
$ module whatis
abaqus/6.7-1 : Abaqus CAE 6.7-1
amber/10 : AmberTools 1.2 with Amber10 with gcc icc ifort mpif90 intel-mvapich-1.0.1
amd_open64/4.2.4 : AMD Open64 SDK 4.2.4 (Not for Production use)
ansysfluent/12.1 : Ansys 12.1 Fluent
ansysworkbench/12.1 : Ansys 12.1 Workbench runwb2
ant/1.8.1 : Ant 1.8.1
arpack/96 : ARPACK / PARPACK compiled with mvapich/1.1-intel
bedtools/2.9.0 : BEDTools-2.9.0
berkeley_upc/2.6.0 : berkeley_upc-2.6.0
bfast/0.5.2 : bfast-0.5.2
...
You can search through the above list using module keyword. Adding the -i argument will make the search case insensitive.
$ module keyword -i hdf5
hdf5/1.8.6-intel-openmpi: hdf5-1.8.6 Parallel version with OpenMPI 1.4.3 and Intel Compilers v12
hdf5/1.8.6-intel-serial: hdf5-1.8.6 Serial version with Intel Compilers v12
Module Naming
In many cases, modules have been renamed to give all software packages a more consistent feel. All existing names used with the use command have been aliased to their new names. The use command will be aliased to module load. Any existing scripts that call use will not need to be updated, however, we highly recommend you do.
Loading and Unloading Modules
The module load command will add packages and any dependencies into your current working environment. The module list command will show what modules you currently have loaded.
$ module load openmpi/1.4.3-intel
$ module list
Currently Loaded Modulefiles:
  1) intel/12.0
  2) openmpi/1.4.3-intel(default)
If you omit the version the latest version will be loaded. This is usually a version indicated as the “(default)”. Otherwise, it is the highest lexicographically sorted version name.
$ module load openmpi
$ module list
Currently Loaded Modulefiles:
  1) intel/12.0
  2) openmpi/1.4.3-intel(default)
You can remove modules by running module unload. Any dependencies will be unloaded as well. The module purge command will remove all loaded modules.
$ module load git
$ module load openmpi
$ module list
Currently Loaded Modulefiles:
  1) git/1.7.2.3
  2) intel/12.0
  3) openmpi/1.4.3-intel(default)
$ module unload openmpi
$ module list
Currently Loaded Modulefiles:
  1) git/1.7.2.3
$ module load matlab/R2010b
$ module list
Currently Loaded Modulefiles:
  1) git/1.7.2.3   2) matlab/R2010b
$ module purge
$ module list
No Modulefiles Currently Loaded.
Additional Information on Modules
You may obtain additional information on software modules with the display and help commands. module display will show what a particular module modifies within your current environment. module help will output any additional help information on a module.
$ module display openmpi/1.4.3-intel
---------------------------------------------------------------------------
/packages/Modules/modulefiles/openmpi/1.4.3-intel:

module-whatis        OpenMPI 1.4.3 compiled with Intel v12
conflict             mvapich mvapich2 openmpi intel-mpi
module               load intel/12.0
prereq               intel/12.0
prepend-path         PATH /packages/intel12-openmpi-1.4.3/bin
prepend-path         MANPATH /packages/intel12-openmpi-1.4.3/share/man
prepend-path         LD_LIBRARY_PATH /packages/intel12-openmpi-1.4.3/lib
---------------------------------------------------------------------------

$ module help intel-mpi

--------------- Module Specific Help for 'intel-mpi/4.0' ------------------

Intel MPI Library 4.0.1.007 with Intel Compilers v12
TAGS: mpi
URL: http://software.intel.com/en-us/articles/intel-cluster-studio

Intel MPI uses mpirun rather than mpiexec. Additionally, you must specify the number of CPUs to run on,
it is not automatically determined. For example:

mpirun -n 16 YourMPIBinary
External Links