Software

Software is installed on a shared directory of the Central Cluster which does not require setting up on every node on the Central Cluster. Here is the list of frequently used softwares installed:

More software packages are installed under the directory /opt/share/ and you can load them using commands of Environment Modules.

Environment Modules

Environment Modules is a tool for load and unload any software dynamically and atomically. It is useful in managing different versions of the software module. It helps in setting up environment variables for using different software.

To browse the available software, you should use the command module avail:

% module avail
------------------------------------------------------------------------------------- /usr/share/Modules/modulefiles --------------------------------------------------------------------------------------
ATLAS/CERN           cuda/11.0(default)   gcc/7.3.0            hdf5/1.6.10          intel/2020u1         kraken/2.0.8         openmpi/intel/3.1.0  python/3.7           szip/2.1.1
cmake/3.12.0-rc2     cuda/9.2             gcc/9.1.0            intel/2018u2         julia/1.0.0          matlab/R2018a        pcre2/10.31          python/3.8           zlib/1.2.11
cmake/3.18.2         gcc/10.2.0(default)  hdf5/1.10.2          intel/2019u3         julia/1.5.1          matlab/R2019a        python/2.7           R/gcc/3.5.3
cuda/10.2            gcc/4.9.4            hdf5/1.12.0(default) intel/2019u4         kraken/1.1.1         mpich/intel/3.2      python/3.6           R/gcc/3.6.3

To use any software with a particular version, you should load the module using the command module load, to view the loaded module using module list as following:

% module load gcc/7.3.0
% module list
Currently Loaded Modulefiles:
  1) gcc/7.3.0
By default, the lastest version will be load if version is omitted in the load command:
% module load gcc
% module list
Currently Loaded Modulefiles:
  1) gcc/9.1.0
To switch between different version, you should use module switch command like this:
% module load gcc/7.3.0
% module list
Currently Loaded Modulefiles:
  1) gcc/7.3.0
% module switch gcc/9.1.0
% module list
Currently Loaded Modulefiles:
  1) gcc/9.1.0
You are able to switch the module using module switch command also:
% module list
Currently Loaded Modulefiles:
  1) gcc/9.1.0
% module switch gcc intel
% module list
Currently Loaded Modulefiles:
  1) intel/2020u1
To end using a module, you may clear the module environment variables using command module unload or you can clear all the environment variables related using module clear as follow:
% module unload gcc
%module clear
Are you sure you want to clear all loaded modules!? [n] y
            

Python

Virtual environments

A cooperatively isolated runtime environment that allows Python users and applications to install and upgrade Python distribution packages without interfering with the behaviour of other Python applications running on the same system. Virtual environments are only support with python 3.

Creating Virtual Environment

User can create multiple virtual environments with different version of Python and install different Python distribution packages to suit the corresponding use case. Follow the step below to create virtual environment:

  1. Select the Python version for the virtual environment
  2. Decide the location of the virtual environment (usually in the home directory)
  3. Create the virtual environment
Here is an example to create a virtual environment using Python 3.8 in a directory MyVenv/Python38 under user’s home directory:
% module load python/3.8
% python3 -m venv ~/MyVenv/Python38

Activate the virtual environment

After the virtual environment is created, use the following command to activate the virtual environment:

% source ~/MyVenv/Python38/bin/activate
(Python38) % 

Deactivate the virtual environment

To deactive the virtual environment, use the command deactivate as follow:

(version38) % deactivate
% 

For more details, please refer to python official document.

R

Find the available versions of R

% module ava R
Load version 4.0 of R
% module load R/4.0
Load the latest version of R
% module load R
Unload R
% module unload R
Install package
The below show you how to install lattice as an example. First, load R, and start R. Followed by package installation, answer "yes" for the warning:
% module load R/4.0
% R
> install.packages("lattice", repos="http://cran.r-project.org")
Warning in install.packages("lattice", repos = "http://cran.r-project.org") :
  'lib = "/lustre/opt_share/R/4.0.3/lib64/R/library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) yes
When prompted for creating a personal library, confirm the installation by answering "yes":
Would you like to create a personal library
‘~/R/x86_64-pc-linux-gnu-library/4.0’
to install packages into? (yes/No/cancel) yes

HDF5

To compile programs required HDF5 library, you should load HDF5 with module load command and the install path of HDF5 can access with environment variable $HDF5_DIR.

% module load hdf5/1.12.0
% echo $HDF5_DIR
/opt/share/hdf5/1.12.0