Environment Modules#
We use environment modules to effectively manage different environments different projects may need.
* module avail
: Check available Modules
* module list
: Check loaded Modules
* module load <module name>
: Load the module
* module unload <module name>
: Unload the module
* module purge
: Unload all the modules
List of available modules :#
- cmake - 3.18.6
- A meta build system that uses scripts to generate build files for specific
environment(eg. makefiles on Unix machines).
- A meta build system that uses scripts to generate build files for specific
- gcc - 6.5.0/7.5.0/8.3.0/9.1.0/10.1.0/11.2.0/12.0
- A set of compilers and development tools available for various operating systems, used for
compiling code, linking with any dependencies, converting the code to assembly, and
preparing executables. One must ensure that they have imported the correct version of gcc required for their job.
- A set of compilers and development tools available for various operating systems, used for
- cuda - 10.2/11.0/11.2
- An API that allows software to use certain types of GPUs for general purpose processing. CUDA is a software layer that gives
direct access to GPU's resources for executing computations.
- An API that allows software to use certain types of GPUs for general purpose processing. CUDA is a software layer that gives
- openmpi - 3.1.3/3.1.6/4.1.¾.1.3-gcc9/4.1.3-gcc10
- An open-source implementation of the Message Passing Interface(MPI) allowing multiple nodes on our HPC,
running a parallel program across distributed memory, to communicate. The HPC contains mutiple versions
of openmpi and one must ensure that they have imported the correct version of MPI required for their code
before submitting their jobs.
- An open-source implementation of the Message Passing Interface(MPI) allowing multiple nodes on our HPC,
- fftw - 3.3.8
- A library for computing the Discrete Fourier Transforms(DFTs).
- Anaconda3
- A distribution of the Python programming language bundled with dependencies for data science and scientific computing.
- On activation :
- Switches from default Python2 to Python3
- There is an extensive list of pre-installed packages:
pip list
: provides this list.- For installing your own versions of packages : Python Virtual Environments
- For using tensorflow with GPU, we recommend using conda instead of python's virtual environments to manage your dependencies - since it can allows you to manage CUDA versions too.
- scala 2.13.6
- The scala programming language.
- Managing packages :
coursier
can be installed and used by the user. No need for sudo.
- stata 17.0
- A software focused on statistical data analysis, and visualizations.
- Note : stata is installed like a compiler, therefore, you'll have to write your ".do" files containing the code, and execute it through the command line
- In order to submit your do files to the cluster, you can create a PBS script as follows:
#! /bin/bash #PBS -N stata_demo #PBS -o stata_out.log #PBS -e stata_err.log #PBS -l ncpus=20 #PBS -l walltime=00:10:00 module load compiler/stata stata do path/to/stata/do-file/stata_do_file.do
This will run a stata job on the cluster and save the output in, here,stata_out.log
and errors, here, instata_err.log
.
You can name your output and error filer according to your program/ preferences in the PBS script.
- gromacs-2021.4
- For molecular dynamics simulations, Gromacs has been complied with MPI support. After loading the module, you can run it using the
gmx_mpi
command.
- For molecular dynamics simulations, Gromacs has been complied with MPI support. After loading the module, you can run it using the
- **amber22 - cpu_mpi/gpu/parallel_cpu **
- A molecular dyamics software package simulating the family of force fields for molecular dynamics of biomolecules developed
by Peter Kollman. The HPC contains both the CPU and GPU versions of the code.
- A molecular dyamics software package simulating the family of force fields for molecular dynamics of biomolecules developed
- automake - 1.14
- A tool that automatically generates makefiles compliant with the GNU Coding Standards.
- enroot - 3.2.0
- Enroot is NVIDIA's implementation of a containerization environment that allows you to run containers defined by different containers images without
requiring root priviledges(think virtualization on HPC).
- Enroot is NVIDIA's implementation of a containerization environment that allows you to run containers defined by different containers images without
- jq - 1.6
- A command line tool used for extracting data from JSON documents.
- emsdk - 3.1.9
- A compiler for compiling C/C++ to WebAssembly, primarily for execution on web browsers.
- go - 1.18.3
- The GO programming language.
- jdk - 18.0.1.1
- A bundle of software development tools for building application, applets etc. in the Java Programming language.
- python - 2.7/3.8
- Stand-alone installations of Python 2.7 and Python 3.8 with no ties from Anaconda.
- libblas - 3.10.0
- Implementation of the BLAS specifiacations that prescribe a set of low-level routines for performing common linear algebra operations.
- liblapack - 3.10.1
- Provides routines written in Fortran 90 for solving various important Linear Algebra operations like solving simultaneous linear
equations, least-squares solutions etc.
- Provides routines written in Fortran 90 for solving various important Linear Algebra operations like solving simultaneous linear
Please note that currently we're having some difficulty with MPI across multiple nodes, therefore, your workloads are restricted to the number of cores on a single node. We are working with the vendor to fix this.