Software

Overview:

  • Teaching: 10 min
  • Exercises: 0 min

Questions

  • How do I access software?
  • What libraries are available?
  • How can I access different applications?
  • What tools are there to help me?
  • What application should I choose on each instance?

Objectives

  • Know that software on Nimbus is managed with module and understand how to use it
  • Know that software is collected into groups on different instances
  • Know that software shouldnt be run on the login nodes

module

On Nimbus module is used to manage different libraries and pieces of software. Unlike you own machine where you likely have one set of up packages each running with the latest versions, on Nimbus there are many different applications each with different versions and libraries that they rely on. Tools like module ensure researchers can access the versions of applications and libraries they want and allow the service to be managed more easily. It also means that the correct dependencies, typically libraries that are used to compile applications, can be loaded automatically making life easier for users.

You can check what modules are loaded when you first log-in to Nimbus:

module list

storage

You can also run this command at any time to check which modules you have loaded or removed. By default only gcc-9.2.0, mpi/openmpi, mkl/mkl-2021.1 are loaded. gcc provides the standard serial gnu compiler suite, openmpi is the contains the openmMPI MPI implementation with parallel mpi libraries and compiler wrappers and mkl is Intel's Math Kernel Library.

You can see what modules are available with

module avail

storage

The software modules will be updated as we build, test and broaden the software stack. Different modules are available depending on the instance type you wish to use. A combined list of all available modules built on the system is presented on the log-in node.

The modules available in

File path
/usr/share/Modules/modulefiles
/apps/x86_64/modules/all
/apps/modulefiles

have not been compiled specifically for a particular compute instance, and are available and can be used on all instances.

However the modules in

/apps/modules/

are seperated out by build toolchain and are built for a specific instance. You can check if these modules are available on the instance of your choice with the following command:

module check [instance_type] [module_name]

where [instance_type] and [module_name] are the instance name and module you wish to check, e.g.:

$ module check fsv2 OpenFOAM
 The following potential matches are available on the fsv2 instance:
 match: OpenFOAM/v1812-foss-2020a
 match: OpenFOAM/v2012-foss-2020a
 match: OpenFOAM/9-foss-2021a
 To load one of them include: `module load [module name]` in your run script e.g.:
 module load OpenFOAM/v1812-foss-2020a

The [module_name] you pass to this comand doesn't have to be exact (but the closer the argument you pass to the command is to the actual module name the better), and it will present you with a list of potential matches for the instance you are interested in. These modules cannot be loaded and used on the login-node, and rather should be included in your run-script e.g.:

module purge
module load OpenFOAM/v1812-foss-2020a

Software Install Requests

You can request Software installs on the system by contacting Research Computing.