Accessing Installed Software Applications

Introduction

The Linux operating system makes extensive use of the "working environment", which is a collection of individual environment variables.  An environment variable is a named object in the Linux shell that contains information used by one or more applications; two of the most used such variables are $HOME, which defines a user's home directory name, and $PATH, which represents a list paths to different executables.  A large number of environment variables are already defined when a Linux shell is open but the environment can be customised, either by defining new environment variables relevant to certain applications (e.g. software license variables) or by modifying existing ones (e.g. adding a new path to $PATH).

module is a Linux utility, which is used to manage of working environment in preparation for running the applications installed on the ARC systems.  By loading the module for a certain installed application, the environment variables that are relevant for that application are automatically defined or modified.

The ARC/HTC software environment comprises a mixture of commercial applications, software built using the EasyBuild framework and software built using our own local build recipes. As with ARCUS-B/HTC we use the environment modules system (via the module command) to load applications into the environment on ARC/HTC.

However. because the EasyBuild framework adds many new module components into the module list - the best way to search for an application you require is by using the module spider command. For example, to search for the GROMACS application:

module spider gromacs

------------------------------------------------------------------------------------------------------------------------------
  GROMACS:
------------------------------------------------------------------------------------------------------------------------------
    Description:
      GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for
      systems with hundreds to millions of particles. This is a CPU only build, containing both MPI and threadMPI builds.

     Versions:
        GROMACS/2020-fosscuda-2019b
        GROMACS/2020.4-foss-2020a-PLUMED-2.6.2
        GROMACS/2020.4-foss-2020a

 Please note, module spider is NOT case-sensitive for searching, so:

module spider GROMACS
module spider gromacs
module spider Gromacs

... are all equivalent. However, when loading module using module load you must use the correct case e.g.

module load GROMACS/2020.4-foss-2020a

You can also build your own software in your home or data directories using one of the compilers provided (which are also available through the environment modules system). Typically the compiler toolchains, including maths libraries and MPI can be loaded using the modules named foss (e.g. foss/2020a) for free open-source software (i.e. GCC) or intel (e.g. intel/2020a) for the Intel compiler suite.

If no version is specified, the default version of the software is loaded (usually the latest version):

module load GROMACS
module list GROMACS

Currently Loaded Modules Matching: GROMACS
  1) GROMACS/2020.4-foss-2020a

Specific versions, other than the default can be loaded by specifying the version:

module load GROMACS/2020.4-foss-2020a-PLUMED-2.6.2
module list GROMACS

Currently Loaded Modules Matching: GROMACS
  1) GROMACS/2020.4-foss-2020a-PLUMED-2.6.2

 

A module can be "unloaded" with the unload option, for example:

module unload MATLAB/2020b