Difference between revisions of "Modules (Lmod)"

From CAC Documentation wiki
Jump to navigation Jump to search
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] via [https://github.com/TACC/Lmod Lmod].  Lmod  
+
[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__
  
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].
+
== 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.
  
__TOC__
+
=== 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 load
  • module load <module> add/load a module
  • module unload <module> unload a module

Finding Modules

Module Information

Loading Modules

Personal Modulefiles

Reference


References