FurtherTopics/Further Modules
Back to Using Modules Quickstart
Contents
Additional Module Commands
module show
To find out what a module file does, run module show modulename. This will show you brief information about what the module will do (this information is being updated for existing modules to show more relevant information), along with how the module will update your environment:
[username@login01 ~]$ module show abyss/1.5.2/gcc-5.2.0 ------------------------------------------------------------------- /trinity/clustervision/CentOS/7/modulefiles/abyss/1.5.2/gcc-5.2.0 module-whatis ABySS is a de novo sequence assembler intended for short paired-end reads and large genomes prepend-path PATH /trinity/clustervision/CentOS/7/apps/abyss/1.5.2/gcc-5.2.0/bin prepend-path LD_LIBRARY_PATH /trinity/clustervision/CentOS/7/apps/abyss/1.5.2/gcc-5.2.0/lib prepend-path C_INCLUDE_PATH /trinity/clustervision/CentOS/7/apps/abyss/1.5.2/gcc-5.2.0/include prepend-path PKG_CONFIG_PATH /trinity/clustervision/CentOS/7/apps/abyss/1.5.2/gcc-5.2.0/lib/pkgconfig -------------------------------------------------------------------
module whatis
To find out what modules are available with information about what each application does, run module whatis, for example (selected output):
[username@login01 ~]$ module whatis STAR/2016-10-27 : Spliced Transcripts Alignment to a Reference abyss/1.5.2/gcc-5.2.0: ABySS is a de novo sequence assembler intended for short paired-end reads and large genomes crop/1.33/gcc-6.3.0 : Crop clustering approach to find common taxonomic units in large datasets discovardenovo/52488 : DISCOVAR de novo – large genome assembler expat/gcc/2.2.0 : Expat XML parser ssw/2016-08-08 : SSW (NASA SolarSoft) test-modules : Adds modules under development to your module avail list
Note: This information is currently being updated for existing modules.
Module Files
Modulefile actions
Typically modulefiles instruct the module command to alter or set shell environment variables such as paths and flags, to provide access to executables or libraries.
[username@login01 ~]$ module show openmpi/1.10.5/gcc-6.3.0 ------------------------------------------------------------------- /trinity/clustervision/CentOS/7/modulefiles/openmpi/1.10.5/gcc-6.3.0: module-whatis loads the openmpi/1.10.5/gcc-6.3.0 environment module load gcc/6.3.0 conflict mpich conflict openmpi conflict mvapich2 conflict intel prepend-path PATH /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/bin prepend-path LD_LIBRARY_PATH /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/lib prepend-path LIBRARY_PATH /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/lib prepend-path INCLUDE /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/include prepend-path C_INCLUDE_PATH /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/include prepend-path MANPATH /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/share/man setenv MPI_HOME /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0 setenv MPI_RUN /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0/bin/mpirun setenv OMPI_HOME /trinity/clustervision/CentOS/7/apps/openmpi/1.10.5/gcc-6.3.0 -------------------------------------------------------------------
Other common options set in a module file include the following:
- Paths such as LIBRARY_PATH, CPATH, LD_RUN_PATH
- Compiler flags such as CFLAGS, CPPFLAGS, FCFLAGS and LDFLAGS
- Application-specific paths or options such as MPI_HOME or MPI_RUN
- Manual page location via the MANPATH
- Other modules to load to meet dependencies
- Any conflicting modules that can't be loaded together
- License file locations, for example for Intel Compiler
Modulefile naming convention
Most modulefiles take the form applicationname/version, for example gcc/5.2.0' for the GNU Compiler Collection version 5.2.0. There are also other versions of GCC, for example gcc/5.2.0, gcc/6.3.0 and gcc/7.3.0. A similar example is matlab/2016a
However, due to the specific combinations of some of the tools required to build certain applications which may be relevant to those using the application, a new naming convention is being introduced. These modulefiles will take the form of application/version/ followed by information about the compiler module used to build the application (and possibly the version of MPI), for example:
- crop/1.33/gcc-6.3.0
- openmpi/1.10.5/gcc-5.2.0
- openmpi/1.10.5/gcc-6.3.0
- openmpi/1.10.5/intel-2017
If a piece of software doesn't have a specific version number, for example when retrieved from GitHub, then the version will often be replaced by the date the application was built, for example sparsehash/2016-12-21/gcc-4.9.3
Test modulefiles
While applications are being installed and tested, they may be put in a test area and not directly available to users. This is to stop people from using modules that may not be correctly configured or are subject to change while testing the installations. To see the modules that are in testing you need to run module add test-modules before running module avail
Find out more about test modules
Module Tips and Tricks
- Loading a module will be active for that session only
- Multiple modules can be loaded in one command, for example module add gcc/5.2.0 sparsehash/2016-12-21/gcc-5.2.0
- module add commands should be included in job submission scripts
- The module add command support tab completion
- You can create private modules in your own home directory
- The module add commands are recorded to track application usage
Back to Further Topics / Back to Using Modules Quickstart / Main Page