Environment Management with the Module Command
Our clusters provide a number of software packages to users of the system via the module
command.
Link to section 'Environment Management with the Module Command' of 'Environment Management with the Module Command' Environment Management with the Module Command
The module command is the preferred method to manage your processing environment. With this command, you may load applications and compilers along with their libraries and paths. Modules are packages that you load and unload as needed.
Please use the module command and do not manually configure your environment, as staff may make changes to the specifics of various packages. If you use the module command to manage your environment, these changes will not be noticeable.
Link to section 'Hierarchy' of 'Environment Management with the Module Command' Hierarchy
Many modules have dependencies on other modules. For example, a particular openmpi module requires a specific version of the Intel compiler to be loaded. Often, these dependencies are not clear to users of the module, and there are many modules which may conflict. Arranging modules in a hierarchical fashion makes this dependency clear. This arrangement also helps make the software stack easy to understand - your view of the modules will not be cluttered with a bunch of conflicting packages.
Your default module view on ${resource.name} will include a set of compilers and a set of basic software that has no dependencies (such as Matlab and Fluent). To make software available that depends on a compiler, you must first load the compiler, and then software which depends on it becomes available to you. In this way, all software you see when doing module avail is completely compatible with each other.
Link to section 'Using the Hierarchy' of 'Environment Management with the Module Command' Using the Hierarchy
Your default module view on ${resource.name} will include a set of compilers and a set of basic software that has no dependencies (such as Matlab and Fluent).
To see what modules are available on this system by default:
$ module avail
To see which versions of a specific compiler are available on this system:
$ module avail gcc
$ module avail intel
To continue further into the hierarchy of modules, you will need to choose a compiler. As an example, if you are planning on using the Intel compiler you will first want to load
the Intel compiler:
$ module load intel
With intel
loaded, you can repeat the avail
command, and at the bottom of the output you will see the section of additional software that the intel module provides:
$ module avail
Several of these new packages also provide additional software packages, such as MPI libraries. You can repeat the last two steps with one of the MPI packages such as openmpi
and you will have a few more software packages available to you.
If you are looking for a specific software package and do not see it in your default view, the module command provides a search function for searching the entire hierarchy tree of modules without the need for you to manually load
and avail
on every module.
Link to section 'Load / Unload a Module' of 'Environment Management with the Module Command' Load / Unload a Module
All modules consist of both a name and a version number. When loading a module, you may use only the name to load the default version, or you may specify which version you wish to load.
For each cluster, RCAC makes a recommendation regarding the set of compiler, math library, and MPI library for parallel code. To load the recommended set:
$ module load rcac
To verify what you loaded:
$ module list
To load the default version of a specific compiler, choose one of the following commands:
$ module load gcc
$ module load intel
When running a job, you must use the job submission file to load on the compute node(s) any relevant modules. Loading modules on the front end before submitting your job makes the software available to your session on the front-end, but not to your job submission script environment. You must load the necessary modules in your job submission script.
To unload a compiler or software package you loaded previously:
$ module unload gcc
$ module unload intel
$ module unload matlab
To unload all currently loaded modules and reset your environment:
$ module purge
Link to section 'Show Module Details' of 'Environment Management with the Module Command' Show Module Details
To learn more about what a module does to your environment, you may use the module show command.
$ module show matlab
For more information about Lmod: