Numerous compilers, libraries, and applications are installed on the ARCC clusters. Since each has its own set-up requirements, a system known as the "environment modules system" is used to manage much of the software packages.
The ARCC has many different versions of different software so that we can provide a broad range of software for our users. Unfortunately, this can also make it very complicated for the users. The way we address this issue is by providing modules for the users to load. This also allows us to add and remove modules as software gets added and removed, and provides the users with an easy-to-use mechanism for using all the various software.
Before using a compiler, library, or application, be sure to load the appropriate module(s).
Using modules is performed using a series of commands, which are shown below.
What Modules are Loaded
First, you can see which modules you already have loaded with:
By default it should show:
[username@euser2 ~]$ module list No Modulefiles Currently Loaded.
However, you have one or more modules loaded, it will display which ones are loaded. For example, say we had loaded the module for gcc 4.9.2:
[username@euser2 ~]$ module list 1) gcc/gcc-4.9.2
What Modules are Available
In order to see which modules are available to load, use:
This should output something similar to:
[username@euser2 ~]$ module avail -------------------------------------------------------- /appmodules ---------------------------------------------------$ abaqus/abaqus libctl/libctl-3.2.2-gcc-4.9.2 arpack/arpack-96-mvapich2-2.0.1-gcc-4.9.2 libctl/libctl-3.2.2-ic-2013 arpack/arpack-96-mvapich2-2.0.1-ic-2013 libgeotiff/libgeotiff-1.4.0-gcc-4.9.2 arpack/arpack-96-mvapich2-2.0.1-ic-2015 libgeotiff/libgeotiff-1.4.0-ic-2013 arpack/arpack-96-openmpi-1.8.3-gcc-4.9.2 libgeotiff/libgeotiff-1.4.0-ic-2015 arpack/arpack-96-openmpi-1.8.3-ic-2013 libmatheval/libmatheval-1.1.11-gcc-4.9.2 arpack/arpack-96-openmpi-1.8.3-ic-2015 libmatheval/libmatheval-1.1.11-ic-2013 atlas/atlas-3.10.2-gcc-4.9.2 libmatheval/libmatheval-1.1.11-ic-2015 atlas/atlas-3.10.2-ic-2013 matlab/matlab-R2014a atlas/atlas-3.10.2-ic-2015 moab/moab-7.2.9 ...
If you'd like to know more about a particular module, you can use:
module whatis full_module_name
For example, if you wanted to see more information about one of our Python modules:
[username@euser2 ~]$ module whatis python/python-2.7.8-gcc-4.9.2 python/python-2.7.8-gcc-4.9.2: This module loads the environmental variables for Python 2.7.8 compiled with GCC 4.9.2 The module is also configured with the following Python Modules: Numpy Cython Nose Six LibPNG matplotlib MDAnalysis Pandas Py2cairoPygobject Sphinx Theano Mpi4Py
How to Load and Unload Modules
You can load a module with:
module load full_module_name
Note: If you load a module that is dependent on other modules, it will load those dependencies as well.
[username@euser2 ~]$ module load python/python-2.7.8-gcc-4.9.2 [username@euser2 ~]$ module list Currently Loaded Modulefiles: 1) gcc/gcc-4.9.2 2) openmpi/openmpi-1.8.3-gcc-4.9.2 3) python/python-2.7.8-gcc-4.9.2
Of course, you can also unload a module:
module unload full_module_name
or unload all modules currently loaded with: