Modules (Lmod)

From CAC Documentation wiki
Revision as of 14:18, 31 May 2019 by Pzv2 (talk | contribs) (Finished intro, added Basic Usage, and added References)
Jump to navigation Jump to search

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