MARCC uses lmod for managing environment variables. Users are able to load and unload packages to dynamically control which versions of programs, libraries, and headers are accessible. A few packages will be loaded by default, for example a default version of the gcc compilers and the SLURM resource manager.

Using modules


In order to setup the environment needed to run your programs, you need to load modules in your SLURM scripts. To get started, you can navigate the module system from the login shell:

$ module list

will list the packages you have loaded, e.g.

  • centos-libs/6.5
  • python/2.7.9
  • matlab/R2014a
$ module avail

will list all the packages available. Some may be restricted by group.
This command may produce a long list.

$ module keyword pyth

searches for modules with “pyth” in the name or description, which will return:

  • python: python/2.7.9, python/3.4.2
$ module spider python/3.4.2


$ module whatis python/3.4.2

gives more detailed information about the module, including which other modules it may be linked to.


$ module load python/3.4.2

will load the specific module. Please note: if you do not specify a version, the default version will be loaded.

$ module unload python/3.4.2

will unload the module.

$ module save mymodules

will save your current module configuration to a file, by default in ~/.lmod.d/mymodules.

$ module restore mymodules

will restore the module configuration from a saved file. In your SLURM script, just restore saved module configuration to set up your environment.

In order to use modules to load your own software, you can write your own lua scripts, place them in ~/privatemodules and load the use.own module

$ module load use.own