Navigating the Modules System¶
At PACE, all Coda systems operate on the same software stack, which is made accessible to users in the use of Lmod, developed by Texas Advanced Computing Center. Lmod is a Lua-based (the L in Lmod) modules system, which supports the hierarchical software module trees. This feature is used extensively by PACE to only expose software supported under a coherent set of MPI implementations and compilers at one time. However, in most cases, as a user, you may just want to explore modules, load modules, and also save them for running jobs. Please have a look at the command summary table below for most common commands.
Lmod Command Table¶
||List the modules that are currently in use|
||Get help for modules|
||Get help for software (provided with some)|
||General software search, no argument shows all software from A-Z|
||General software listing in the current scope|
||Load specific software|
||Unload specific software|
||See what the module evaluates to for the current shell environment|
||Completely unload modules|
Create Private Modules¶
The modules system allows users to create and use modules in private directories. The following steps outline how to create private modules:
- Make the directory for storing personal modules
- Create an empty module inside that directory
cp /etc/modulefiles/empty ~/privatemodules/empty
- Load the system-module that allows personal module use
module load use.own
- Check that private modules are now supported
privatemodulessection should list the "empty" module
- Create your own modules
- Look at the module files in
/etc/modulefiles/for examples of how to create modules.
- User-defined environment variable can be added using
setenv VAR /where/to/find/it
- Look at the module files in
- What happened to
.pacemodules? It is no longer supported. We are moving to using commands completely supported by Lmod, so that if a user should go to another external system, there will be no surprises. Instead, consider using Lmod's module collections:
||Save the modules to a collection (no collection name is the default)|
||Restore the modules in a collection (no collection name is the default)|
How do I start over with module collections? Simply delete the folder or files in
Regarding module collections, why not just put everything in my
.bash_profileor my shell profile? A user is always free to do this. However, separate management of modules might be better for software reproducibility. Consider this example, a user develops software using
gcc/10.1.0. Then for that specific development, one can stash their modules underneath a collection like
module save mySoftwareCollectionand load that collection with
module restore mySoftwareCollection.
Do I really need the pace module? If you are an advanced user, and you know what you need on the cluster, then no, it is not needed. However, we can support you best if you work closely with the modules supported by the
pacemodule, since there are far too many combinations of MPI and compiler to support.
PACE systems that were using the operating system Red Hat Enterprise Linux (RHEL) 6, used another modules system, called Environment Modules. Moving to Lmod enabled improvements such as module hierarchy, extensive support for module collections, and strong support for user/community modules.