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 :#

  1. cmake - 3.18.6
    • A meta build system that uses scripts to generate build files for specific
      environment(eg. makefiles on Unix machines).
  2. 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.
  3. 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.
  4. 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.
  5. fftw - 3.3.8
    • A library for computing the Discrete Fourier Transforms(DFTs).
  6. 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.
  7. scala 2.13.6
    • The scala programming language.
    • Managing packages :
      • coursier can be installed and used by the user. No need for sudo.
  8. 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, in stata_err.log.
      You can name your output and error filer according to your program/ preferences in the PBS script.
  9. 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.
  10. **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.
  11. automake - 1.14
    • A tool that automatically generates makefiles compliant with the GNU Coding Standards.
  12. 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).
  13. jq - 1.6
    • A command line tool used for extracting data from JSON documents.
  14. emsdk - 3.1.9
    • A compiler for compiling C/C++ to WebAssembly, primarily for execution on web browsers.
  15. go - 1.18.3
    • The GO programming language.
  16. jdk - 18.0.1.1
    • A bundle of software development tools for building application, applets etc. in the Java Programming language.
  17. python - 2.7/3.8
    • Stand-alone installations of Python 2.7 and Python 3.8 with no ties from Anaconda.
  18. libblas - 3.10.0
    • Implementation of the BLAS specifiacations that prescribe a set of low-level routines for performing common linear algebra operations.
  19. 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.

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.