OS software
OPTIMUM is currently running CentOS 6 operating system software
Environment Modules
All additional software packages, installed on the cluster on the top of operating system, are available via environment modules package. The package allows you to add/remove software configure via modules. It also allows to create you private module config files.
A few basic module
commands:
module available
list all module available for usemodule show ...
to what environment changes would take effect if module(s)...
where to be loaded into environmentmodule load ...
loads module(s) in provided list...
into user's environment- e.g.
module load use.own
- e.g.
module unload ...
unloads module(s) in provided list...
from user's environment- e.g.
module unload use.own
- e.g.
module switch
toggles between different versions of loaded module- e.g.
module switch GCC GCC/5.5
will switch GCC version from currently loaded toGCC/5.5
- e.g.
For more information use man module
to read manual page for module
command.
Modules have hierarchical structure, and you can use any part of the path to load the module. The specific choice will be made based on sorting order of sub-modules as seen via module available
. E.g:
module load GCC
will load the most recent version of GCC suitemodule load GCC/5.5
will load a more specific version of the GCC suitemodule load GCC/5.5/0
will load a very specific version of the GCC suite
For permanent changes in the environment, you can add module
commands to either of your .bashrc
or .bash_profile
files. It depends on your needs which file is used best to add particular module, but .bashrc
is typically the safe bet.
See man module
for information about environment modules.
Group Modules
The custom modules maintained for particular user group, if such exist, can be activated by adding module use.group
, where group is your primary user group.
You can check your group name using command id
from shell.
Private Modules
You can create and add you own private modules. Just load use.own
module and add module config files in directory $HOME/privatemodules
.
See man modulefile
for instructions about creating module config files.
Module Dependencies / Prerequisites
For more complex software installations, some version of installed software depends on a particular version of another software package. Such prerequisites are enforced using prereq
command in module file.
To see if the module depends on another module use module show
command followed by the name of the module you intend to use. You will see prereq
statements in the body of the module followed by the name of prerequisite. Note, that the dependency structure has a tree-like hierarchy, and module prerequisites might have their own prerequisites of another module too.
To load the module with prerequisites, those prerequisite modules must be loaded first. E.g. in order to load module OpenMPI/2.1.6/GCC/5.3 you can use the either:
module load GCC/5.3 OpenMPI/2.1.6/GCC/5.3
or
module load GCC/5.3
module load OpenMPI/2.1.6/GCC/5.3
Loading the module before its prerequisites will result in a dependency error informing that prerequisite (prereq
) is missing. E.g. trying to load OpenMPI/2.1.6/GCC/5.3 before/without GCC/5.3 will generate:
$ module load OpenMPI/2.1.6/GCC/5.3
OpenMPI/2.1.6/GCC/5.3(5):ERROR:151: Module 'OpenMPI/2.1.6/GCC/5.3' depends on one of the module(s) 'GCC/5.3/0'
OpenMPI/2.1.6/GCC/5.3(5):ERROR:102: Tcl command execution failed: prereq GCC/5.3
Software Requests
Additional software can be installed at user's request via either
- OS distribution
- locally compiled software packages
- for general use
- for group use (see Group Modules section above)