Skip to content

Software Modules

Availability

Software modules are not available on the login nodes. You will need to be on a compute node to access them.

Software packages are available as modules and are accessible from the compute nodes of any of our three clusters. A software module is a tool used to manage software environments and dependencies. It allows you to easily load and unload different software packages, libraries, and compilers needed for computational tasks without conflicts. This ensures access to many specific tools, and even different versions of the same tools, without affecting the overall system configuration.

Module Commands

Default Versions

If multiple versions of software are available on the system, the newest is made the default. This means loading a module without specifying the version will select the most recent. We strongly recommend including version information in your module statements. This ensures that you maintain a consistent environment for your analyses in the event of a software upgrade.

Command Description
module avail
Display all the software and versions installed on the system
module avail <search_term>
Display all installed modules matching <search_term>
module list
Display the software you have loaded in your environment
module whatis <module_name>
Displays some descriptive information about a specific module
module show <module_name>
Displays system variables that are set/modified when loading module <module_name>
module load <module_name>
Load a software module in your environment
module unload <module_name>
Unload a specific software package from your environment
module swap <module_name>/<version1> <module_name>/<version2>
Switch versions of a software module
module purge
Unload all the software modules from your environment
module help
Display a help menu for the module command

Examples

Loading Modules

[netid@cpu39 ~]$ module avail python

------------------- /opt/ohpc/pub/modulefiles --------------------
   python/3.6/3.6.5     python/3.9/3.9.10
   python/3.8/3.8.2     python/3.11/3.11.4 (D)
   python/3.8/3.8.12
[netid@cpu39 ~]$ module load python/3.9
[netid@cpu39 ~]$ python3 --version
Python 3.9.10
[netid@cpu39 ~]$ module swap python/3.9 python/3.11

The following have been reloaded with a version change:
  1) python/3.9/3.9.10 => python/3.11/3.11.4

[netid@cpu39 ~]$ python3 --version
Python 3.11.4

Finding Executables and Libraries

If you're looking for the specific paths added to your environment when loading a module, you can use the command module show. For example:

[netid@cpu38 ~]$ module show gromacs
---------------------------------------------------------
   /opt/ohpc/pub/moduledeps/gnu8-openmpi3/gromacs/2021.5:
---------------------------------------------------------
whatis("Name: gromacs ")
whatis("Version: 2021.5 ")
whatis("Molecular dynamics for biophysical chemistry ")
setenv("GROMACS_BASE","/opt/ohpc/pub/apps/gromacs/2021.5")
prepend_path("PATH","/opt/ohpc/pub/apps/gromacs/2021.5/bin")
prepend_path{"CPPFLAGS","-I/opt/ohpc/pub/apps/gromacs/2021.5/include",delim=" "}
prepend_path("MANPATH","/opt/ohpc/pub/apps/gromacs/2021.5/share/man")
prepend_path("PKG_CONFIG_PATH","/opt/ohpc/pub/apps/gromacs/2021.5/lib64/pkgconfig")
prepend_path{"LDFLAGS","-L/opt/ohpc/pub/apps/gromacs/2021.5/lib64",delim=" "}
prepend_path("LD_LIBRARY_PATH","/opt/ohpc/pub/apps/gromacs/2021.5/lib64")
unload("gnu8")
load("gnu8")
help([[ Adds gromacs to your environment
]])
These paths will allow you to determine the locations of the executables, libraries, header files, etc. available to you after loading the software.

Compilers

Puma, Ocelote, and El Gato all run CentOS7 and have the following compilers available:

Compiler Version Module Command
Intel 2020.1
module load intel/2020.1
Intel 2020.4
module load intel/2020.4
gcc 5.4.0
module load gnu/5.4.0
gcc 7.3.0
module load gnu7/7.3.0
gcc 8.3.0
module load gnu8/8.3.0 # Loaded by default

Software Install Requests

If you need to use a software package and it is not installed on the system, we can install it for you, provided it meets the criteria outlined in our software policies. Software can be requested by using our HPC software install request Form. There is no expected time frame for how long it takes to install software, as there are many variables that determine this. If you haven't heard back within a week, it may be appropriate to follow up.

For software that doesn't meet the criteria outlined in our policies and doesn't fall into the unsupported software category, it may be possible for you to install it locally. We have instructions documented in our user installations section.