5. Software Modules
HPC systems differ from desktop/laptop computers in how software is installed. In a desktop/laptop you install software in a pre-defined centralized location where all users can access it. But in a large system hosting a multitude of users it is not practical to have a single version of “python” installed. Some users may need access to the latest version, while others have hard dependencies on an earlier version. So in an HPC system software is installed as independent modules which users must explicitly load into their shell environment.
5.1. Commands
When you login your shell environment is empty of all software modules and environment is set on a per shell instance. So if you open a new terminal on a login node the environment you may have set in another terminal will not be propagated. You can control and monitor the contents of your software modules environment with the following commands:
Command |
Description |
---|---|
|
check what software packages are available |
|
load a module |
|
unload a module |
|
check which modules are currently loaded in your environment |
|
remove all loaded modules from your environment |
|
see exactly what effect loading the module will have with your environment |
|
Find out more about a software package |
|
A module file may include more detailed help for the software package |
Attention
Never add module load
into your .bashrc file.
Tip
Use module purge
before loading a new module environment to run an application.
5.2. Examples
Get list of all available modules:
module avail
Get list of all the available versions of a module:
module avail python
--- /share/apps/HPC/modules/ALL ---
python/2.7.11 python/3.5.1
Load a specific module:
# Only once after login or as required
module purge
module load python/3.5.1
Note
You can use the miniconda on HPC for hassle-free, independent Python environment. Access Anaconda setup guide here.