Training Courses

From TAMUQ Research Computing User Documentation Wiki
Jump to navigation Jump to search

Introduction to Linux

Due to limited understanding of the linux environment and operating system, new users often find it daunting to conduct their computational work on our HPC system. We offer this course in order to prepare users to make effective use of our flagship HPC system called "raad2". The course includes a considerable amount of material beyond the mere lists of command summaries usually offered in introductory tutorials.

The following content is speard out across three sequential sessions, each delivered on a separate day:

  1. Getting started with linux
  2. The linux command format
  3. How to consult man pages
  4. Commonly used unix commands and their syntax
  5. Filesystem concepts
  6. Unix process concepts
  7. Command shells and scripting
  8. Command line shortcuts
  9. Variables, quoting, functions
  10. I/O re-direction
  11. Managing the environment with Modules

Bash shell programming can also be included in the course for more advanced user needs upon demand.

Introduction to Supercomputing on Raad2

This course includes an introduction to the basic operating environment on "raad2", our flagship Cray HPC system. We introduce the user to the concept of cluster and supercomputer architectures, focusing on our raad2 system in more detail. Attendees shall learn how to remotely access the system, how to transfer data, and how to launch, monitor and control compute jobs using the Slurm workload manager. The use of Slurm for serial and parallel workloads, as well as batch and interactive modes of usage will be discussed. Hands-on components will be part of the session, and attendees are expected to have an account on raad2 prior to attending. Attendees must also have basic knowledge of the Linux operating system and environment.

Introduction to GPU Computing on Raad2

This is a one day course intended to educate users about the capabilities of GPU computing in the context of high performance computing. The raad2 HPC system at TAMUQ has multiple Nvidia V100 GPU nodes capable of running "traditional" HPC as well as AI workloads. Attendees shall learn to port and optimize their existing codes to the GPU nodes. Users must have working knowledge of Linux and should have attended the "Introduction to Supercomputing on Raad2" course described earlier.

Key concepts covered in the course include:

  1. Introduction to GPUs
  2. Potential of GPU Computing in HPC
  3. GPU computing at TAMUQ
  4. Introduction to CUDA
    • Compiling and running CUDA code on raad2
  5. DL Frameworks support with GPU
    • Tensorflow
    • PyTorch
    • MXNet
  6. MATLAB GPU Computing toolbox
  7. Examples of HPC applications with GPU support
    • NAMD
    • Gromacs
    • VASP
  8. GPU computing with Singularity containers
    • Overview of Nvidia GPU Cloud (NGC)
    • How to download and run a GPU application from NGC

Introduction to Python

This 2 day course aims to introduce Python programming to the novice user. Python is a widely used general-purpose and high-level programming language that offers a simple syntax and a powerful set of libraries. It is becoming increasingly popular in many scientific domains, and especially for data exploration. This course covers data types, control flow, data structures, graphical user interfaces, basic scientific computing and visualization, and much more. The content difficulty may be characterized as basic & intermediate, but the course does not require prior programming experience.

Python for Machine Learning

This 1 day course introduces the basics of machine learning concepts using the Python programming language. It provides a general overview of machine learning topics such as supervised vs unsupervised learning, and the application of each algorithm. It offers hands-on exercises in topics such as regression, classification, clustering, etc. Attendees are required to have a working knowledge of Python programming, which is provided by the Introduction to Python course described above.