Skip to main content

Module System

A large number of popular software packages are installed on Palmetto and can be used without any setup or configuration. These include:

  • Compilers (such as gcc, Intel, and PGI)
  • Libraries (such as OpenMPI, HDF5, Boost)
  • Programming languages (such as Python, MATLAB, R)
  • Scientific applications (such as LAMMPS, Paraview, ANSYS)
  • Others (e.g., Git, PostgreSQL, Singularity)

These packages are available as modules on Palmetto. The following commands can be used to inspect, activate and deactivate modules:

CommandPurpose
module availList all packages available (on current system)
module avail packageList all packages with package in the name
module add package/versionAdd a package to your current shell environment
module listList packages you have loaded
module rm package/versionRemove a currently loaded package
module purgeRemove all currently loaded packages

For example, to see what versions of Matlab are installed, you can use the command:

module avail matlab

To load the GCC (v4.8.1), CUDA Toolkit (v6.5.14) and OpenMPI (v1.8.4) modules, you can use the command:

module add gcc/4.8.1 cuda-toolkit/6.5.14 openmpi/1.8.4

Then, check the version of gcc:

$ gcc --version

gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Some modules when loaded, implicitly load other modules as well. If you use some modules to compile/install some software, then you will probably have to load them when running that software as well, otherwise you may see errors about missing libraries/headers. Modules do not remain loaded when you log out and log back in, i.e., they are active only for the current session - so you will need to load them for every session.

As an exercise, examine the environment variables PATH, LIBRARY_PATH, etc., before and after loading some module:

echo $PATH
module add anaconda3/2019.10-gcc/8.3.1
echo $PATH

You can also look at the modulefiles in /software/ModuleFiles to understand what happens when you add a module.