Modules HowTo

For a more robust listing of modules, please use the module search on our Portal https://portal.rc.fas.harvard.edu/apps/modules

NOTE: This documentation describes the new lmod module system on the cluster
that was introduced Summer 2014. See this page for usage instructions for details.

About modules

On the Odyssey cluster, we want a variety of apps available, including different versions of the same app and apps that are incompatible. We accomplish this by using environment modules. When you first login to the cluster, you're presented with a very basic software environment. You then make apps available by loading the modules for them. The modules update shell environment variables so that the system can find and use the apps of your choice. Modules replace the need for separate scripts like setup.sh and setup.csh for different shell types.

Our implementation of environment modules uses Lmod. That page has some excellent documentation, such as the user guide. Below is a condensed version and FASRC-specific information.

If you're transitioning from our older, legacy modules system, please see this page.

Available modules

To see what apps are available to load, run the command:

module avail

This only shows what is immediately available to load. Upon loading some modules, more modules may become available. Specifically, loading a compiler implementation or MPI implementation will make available all the apps built with/against those apps. For example, you can run module load gcc openmpi, and many more apps will show as available.

To see every single possible module you could use, run the command:

module spider

The output will be organized by what modules you have to load in order to make the different groups available.

Note that these commands deliver their output on stderr. If you want to search the output for keywords using grep, redirect stderr to stdout, e.g.:

module spider 2>&1 | grep KEYWORD

To see a description of any particular MODULE, use the help or whatis command:

module whatis MODULE

Using modules

To load a module named MODULE, run the command:

module load MODULE

Note that most modules names are of the form NAME/VERSION. Specifying just NAME (without the /VERSION), will automatically load the latest version. Loading a module may automatically load other modules it depends on.

To see what modules you have loaded, run:

module list

To unload a module, run:

module unload MODULE

To unload all modules currently loaded, run:

module purge

CC BY-NC 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Permissions beyond the scope of this license may be available at Attribution.