Difference between revisions of "Modules (Lmod)"
m (Pzv2 moved page Modules (lmod) to Modules (Lmod) without leaving a redirect: Fix case in title) |
(Finished intro, added Basic Usage, and added References) |
||
Line 1: | Line 1: | ||
− | Some of the CAC's [[Private Clusters]] are managed with [https://github.com/openhpc/ohpc/wiki OpenHPC], which includes the use of | + | [http://modules.sourceforge.net/ Environment Modules] are designed to provide a flexible development environment. Some of the CAC's [[Private Clusters]] are managed with [https://github.com/openhpc/ohpc/wiki OpenHPC], which includes the use of modules via [https://github.com/TACC/Lmod Lmod]. Lmod is an environment module system developed by [https://www.tacc.utexas.edu/ TACC] which provides you with a very easy way to configure your environment for compiling, linking, and running applications using a variety of different compilers and a variety of external libraries. |
+ | Some of the information on this page has been adapted from the [https://cvw.cac.cornell.edu/ Cornell Virtual Workshop] topic on the [https://cvw.cac.cornell.edu/Environment Stampede2 Environment], specifically [https://cvw.cac.cornell.edu/Environment/module_intro The Module Utility]. | ||
+ | |||
+ | __TOC__ | ||
− | + | == Basic Usage == | |
+ | Generally, the module utility allows you to configure your environment to prioritize the compiler you want, the libraries you need to link against, and any runtime dependencies you may have. It also helps you to run selected pre-built applications in the correct, fully-configured environment. | ||
− | + | === Some Commands === | |
+ | * <code>module</code> with no options set will get you a listing of the available options for module. | ||
+ | * <code>module avail</code> to find out what's available via the module system. This displays all available modules that you can load. | ||
+ | * <code>module list</code> to list all of the current modules that you have loaded. | ||
+ | ** It's good to know what you already have loaded in your environment, as some of these modules may conflict with each other. | ||
+ | ** The caveat here is that this doesn't tell you anything about environment settings that have been changed outside of the module command. So if you have attempted to manually configure or add a different compiler, it won't show up in this list. The moral of this is to be aware of potential conflicts when you manually add paths or introduce environment settings in other shell configuration files. | ||
+ | * <code>module spider</code> - list all modules, even those not available to load | ||
+ | * <code>module load <module></code> add/load a module | ||
+ | * <code>module unload <module></code> unload a module | ||
== Finding Modules == | == Finding Modules == | ||
Line 22: | Line 34: | ||
[https://lmod.readthedocs.io/en/latest/020_advanced.html Reference] | [https://lmod.readthedocs.io/en/latest/020_advanced.html Reference] | ||
+ | |||
+ | |||
+ | == References == | ||
+ | |||
+ | * [https://openhpc.community/development/integration-conventions/ OpenHPC Integration Conventions] |
Revision as of 15:18, 31 May 2019
Environment Modules are designed to provide a flexible development environment. Some of the CAC's Private Clusters are managed with OpenHPC, which includes the use of modules via Lmod. Lmod is an environment module system developed by TACC which provides you with a very easy way to configure your environment for compiling, linking, and running applications using a variety of different compilers and a variety of external libraries.
Some of the information on this page has been adapted from the Cornell Virtual Workshop topic on the Stampede2 Environment, specifically The Module Utility.
Basic Usage
Generally, the module utility allows you to configure your environment to prioritize the compiler you want, the libraries you need to link against, and any runtime dependencies you may have. It also helps you to run selected pre-built applications in the correct, fully-configured environment.
Some Commands
module
with no options set will get you a listing of the available options for module.module avail
to find out what's available via the module system. This displays all available modules that you can load.module list
to list all of the current modules that you have loaded.- It's good to know what you already have loaded in your environment, as some of these modules may conflict with each other.
- The caveat here is that this doesn't tell you anything about environment settings that have been changed outside of the module command. So if you have attempted to manually configure or add a different compiler, it won't show up in this list. The moral of this is to be aware of potential conflicts when you manually add paths or introduce environment settings in other shell configuration files.
module spider
- list all modules, even those not available to loadmodule load <module>
add/load a modulemodule unload <module>
unload a module
Finding Modules
Module Information
Loading Modules
Personal Modulefiles