Software Modules¶
Availability
Software modules are not available on the login nodes. You will need to be on a compute node to access them.
Cluster Differences
Ocelote and El Gato both run CentOS 7 as their operating system and share the same system libraries and modules. These two clusters can generally be used interchangably. Puma uses Rocky Linux 9 as its operating system and has different system libraries and modules than Ocelote and El Gato. This means workflows may not be transferrable between Puma and the other two clusters. Take note of which cluster you're using to prevent software failures.
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 |
---|---|
|
Display all the software and versions installed on the system |
|
Display all installed modules matching <search_term> |
|
Display the software you have loaded in your environment |
|
Displays some descriptive information about a specific module |
|
Displays system variables that are set/modified when loading module <module_name> |
|
Load a software module in your environment |
|
Unload a specific software package from your environment |
|
Switch versions of a software module |
|
Unload all the software modules from your environment |
|
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
]])
Compilers¶
Puma¶
Compiler | Version | Module Command |
---|---|---|
gcc | 12.2.0 |
|
gcc | 13.2.0 |
|
intel | 2023.2.1 |
|
intel | 2024.0.0 |
|
intel | 2024.1.2 |
|
Ocelote and El Gato¶
Compiler | Version | Module Command |
---|---|---|
gcc | 5.4.0 |
|
gcc | 7.3.0 |
|
gcc | 8.3.0 |
|
Intel | 2020.1 |
|
Intel | 2020.4 |
|
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.