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 use
  • module show ... to what environment changes would take effect if module(s) ... where to be loaded into environment
  • module load ... loads module(s) in provided list ... into user's environment
    • e.g. module load use.own
  • module unload ... unloads module(s) in provided list ... from user's environment
    • e.g. module unload use.own
  • module switch toggles between different versions of loaded module
    • e.g. module switch GCC GCC/5.5 will switch GCC version from currently loaded to GCC/5.5

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 suite
  • module load GCC/5.5 will load a more specific version of the GCC suite
  • module 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)